- 11:22:02 OpenGL reports: "stack underflow"; in ErrorHandler
DGL https://delphigl.com/forum/ |
|
@[Win32] Schach - dkS (v0.1 alpha) https://delphigl.com/forum/viewtopic.php?f=14&t=7494 |
Seite 1 von 2 |
Autor: | Lord Horazont [ So Mai 11, 2008 10:25 ] |
Betreff des Beitrags: | @[Win32] Schach - dkS (v0.1 alpha) |
Zum Projektthread Hi Fabian, Ich habe mir das gerade heruntergeladen, aber es ist für mich unspielbar. Bei jedem Rechtsklick sowie bei Linksklicks wenn eine Figur ausgewählt ist, friert das Spiel für fünf bis zehn Sekunden oder mehr ein. Mein System: NV GeForce 7600 GT AMD X2 6000+ 4GB RAM XP Pro SP2 Meine Vermutung: Du benutzt die OpenGL-Selection. Die sorgt immer wieder für Performanceprobleme auf diversen Systemen. Lösung: Lass es. Gruß Lord Horazont |
Autor: | WhiteHunter [ So Mai 11, 2008 10:40 ] |
Betreff des Beitrags: | |
Bei mir wird irgendwie auch meistens nichts ausgewählt. Erst dachte ich, das liegt an der 16:10-Auflösung, aber selbst unter den Standard-800x600 ging nix. Wären die Hänger nicht da, würd ich mich fragen, wie überhaupt gesteuert wird. ![]() Passend dazu wird in dein Logfile geschrieben: Code:
Zudem, ist es gewünscht, dass nur die halben Quads des Spielfeldes mit "Light" auf "High" gezeichnet werden? Sieht irgendwie... seltsam aus. Intel Q9300 GeForce 8800GTS 512 4GB RAM XP Home SP2 Edit: In Anlehnung an http://www.delphi-forum.de/viewtopic.php?t=83242 habe ich es mal mit Light != High probiert und siehe da, die Züge gehen schon etwas schneller von statten. Bzw. wenn sie von statten gehen. Ich muss die Maus gedrückt halten und aus dem Fenster rausfahren, damit die Spielzüge nicht nur in der Spiellogik mit den angezeigten möglichen Zügen, sondern auch durch die Figuren gemacht werden. ![]() MfG |
Autor: | Lord Horazont [ So Mai 11, 2008 19:05 ] |
Betreff des Beitrags: | |
Jep, mit allen Details auf niedrig und ohne AA funzt es bei mir auch sehr flüssig. Ist aber eben unschön so. Gruß Lord Horazont |
Autor: | Fabian W. [ Mo Mai 12, 2008 08:56 ] |
Betreff des Beitrags: | |
@Lord Horazont: Ja, dass das Spiel für kurze Zeit (halbe Sekunde) einfriert, wurde mir schon von einigen Seiten berichtet, aber das es auch bis zu 10 Sekunden dauern kann haut mich um. Ich wurde bereits von Martok aus dem delphi-forum auf eine alternative Selektions-Methode aufmerksam gemacht: http://www.saschawillems.de/?p=27 Die OpenGL-Selektion ist kein Zustand, ich werde mich in diese Richtung informieren - vlt hat ja jemand noch nen Link zu alternativen Selektionsmethoden. @WhiteHunter: o_O der Fehler verfolgt mich. Ich habe ihn zwar bisher von niemanden sonst mitgeteilt bekommen, allerdings steht er auch bei mir im Logfile und trat schon während der ersten Experimente auf. Er ist mit großer Wahrscheinlichkeit von gl3ds verursacht, sodass er hoffentlich mit dem Einbinden des stable-releases von gl3ds 3 behoben sein wird... Könntest du mir diesen Fehler nochmal genauer schildern: Zitat: Ich muss die Maus gedrückt halten und aus dem Fenster rausfahren, damit die Spielzüge nicht nur in der Spiellogik mit den angezeigten möglichen Zügen, sondern auch durch die Figuren gemacht werden. Confused
PS: @Lord Horazont: Könntest du in deinem ersten Post noch kurz einen kleinen Link zur Vorstellung des Programms anbringen? Danke! ![]() mfg |
Autor: | Lord Horazont [ Mo Mai 12, 2008 09:50 ] |
Betreff des Beitrags: | |
Ich habe gerade nochmal gemessen, auf vollen Einstellungen (Licht -> High, Textures -> High, Model -> High, Antialias aktiv, Texturefilter aktiv) bei einer Auflösung von 800x600 und 32 Bit farbtiefe dauert eine Selection ca. 20 Sekunden. @PS: Erledigt. Gruß Lord Horazont |
Autor: | WhiteHunter [ Mo Mai 12, 2008 13:45 ] |
Betreff des Beitrags: | |
Zu dem Stack underflow: Schonmal GLIntercept oder ggf. gDEBugger probiert? Edit#2: Hast du mal bedacht, dass auch der Namestack ein Underflow werfen kann? Fabian W. hat geschrieben: Könntest du mir diesen Fehler nochmal genauer schildern:
Zitat: Ich muss die Maus gedrückt halten und aus dem Fenster rausfahren, damit die Spielzüge nicht nur in der Spiellogik mit den angezeigten möglichen Zügen, sondern auch durch die Figuren gemacht werden. Confused Okay, etwas undeutig formuliert: Ich klicke auf die weiße Figur, warte 1 sec, sehe die Zugmöglichkeiten und klicke eine an, warte 1 sec, die Markierung verschwindet. Die Figur wird in 3D aber nicht bewegt. Allerdings hat sie sich für die Spiellogik schon bewegt, dh. da wo sie ursprünglich stand, kann ich die Figur nicht mehr anklicken. So kann ich theoretisch zwar gut Schach im Kopf spielen, aber dann war deine Mühe mit dem 3D-Part ja völlig umsonst. ![]() Fahre ich jetzt mit dem Cursor außerhalb deines Fensters (sogar egal ob mit gedrückter LMB oder nicht), plopp, urplötzlich bewegen sich alle Figuren auf den richtigen Platz. Edit: Und jetzt stelle ich fest, solange ich mit dem Cursor im Fenster bin, bewegt sich rein garnichts o_O. Auch nicht der Kegel, über der Figur oder die Zugmöglichkeitsdarstellung. Frei rotieren und zoomen kann ich allerdings. MfG |
Autor: | Fabian W. [ Mo Mai 12, 2008 15:30 ] |
Betreff des Beitrags: | |
@Stack: Ja, allerdings wüsste ich nicht wie ich das mit dem name-Stack hinbekommen soll, und wie gesagt, den Fehler gabs schon bevor ich den Name-Stack verwendet habe... Gibts typische Programmierfehler, die einen Stackunderflow im Name-Stack auslösen? @Bug: o_O Den Fehler kannte ich bisher auch noch nicht.^^ |
Autor: | Flash [ Mo Mai 12, 2008 23:50 ] |
Betreff des Beitrags: | |
klingt einfach danach, dass das Spiel nicht neu gezeichnet wird. Scheinbar wird im Mouse-Leave oder Mouse-Enter das neu zeichnen gemacht. |
Autor: | damadmax [ Di Mai 13, 2008 09:20 ] |
Betreff des Beitrags: | |
Habe keine Ruckler oder Pausen. Einstellungen sind alle auf Low. AA und Filter aus. 800x600x32. Fast konstant bei 80/90 FPS. System: AMD 1.1GHz 512 MB GeForce2 GTS XP Pro Sp2 Teste ich heute abend nochmal auf meinen anderen Rechnern. |
Autor: | WhiteHunter [ Di Mai 13, 2008 10:57 ] |
Betreff des Beitrags: | |
Zum Thema Stack Underflow... ich glaub das ist der Attributsstack. Ich hab dein Progg mal mit GLIntercept gestartet; das bemerkte: Zitat: GL ERROR - Function glCallList generated error GL_STACK_UNDERFLOW bzw. im Aufrufslog: Code:
In DisplayList "8" (wie in allen anderen) scheint das da das Problem zu sein, da sonst alles passt: Code:
Zumindest da beim ersten glCallList nix auf selbigem Stack draufzusein scheint. Da dann immer was gepusht wird, stellen nachfolgende Calls wohl kein Problem dar. Und der Einzige, der weiter was dazu sagen kann, wird wohl der Mensch mit dem Code sein. ![]() damadmax hat geschrieben: Habe keine Ruckler oder Pausen. Einstellungen sind alle auf Low. AA und Filter aus. 800x600x32.
Damit habe ich auch nur mein Cursorproblem. Interessant ist: Wenn ich mit Fraps die FPS anzeigen lasse, zeigt der konstant 60, dein Progg aber 360. Und dann bewegt sich alles, aber nur so nen kleines bisschen im Schneckentempo. Ebenfalls, wenn ich die Exit-Abfrage aufrufe, hängt es nur noch, wenn ich mit dem Cursor über der MessageBox bin. Besonders interessant: Mit der OpenGL.dll von GLIntercept hab ich mein Cursorproblem nicht mehr. ![]() MfG |
Autor: | damadmax [ Di Mai 13, 2008 12:39 ] |
Betreff des Beitrags: | |
Auf meinem AMD X2 64 3800+ treten die o.g. Probleme auch auf. Sobald der Mauscursor ausserhalb vom Fenster ist läufts einwandfrei. Wenn man den Prozess auf nur einen Kern beschränkt läuft es übrigens ein bischen besser. Treiberversion ist 174.74 |
Autor: | WhiteHunter [ Di Mai 13, 2008 12:43 ] |
Betreff des Beitrags: | |
damadmax hat geschrieben: Wenn man den Prozess auf nur einen Kern beschränkt läuft es übrigens ein bischen besser.
Hier ebenfalls. MfG |
Autor: | Lord Horazont [ Di Mai 13, 2008 14:33 ] |
Betreff des Beitrags: | |
Habt ihr den AMD DualCore Optimizer installiert? Aus den Logdateien kann man erkennen, dass das Schachprogramm den Performance-Counter verwendet, dessen Funktion mittels des Optimizers gefixt werden muss, falls eine Anwendung die möglichkeit hat, zwischen zwei Kernen zu "springen". Gruß Lord Horazont |
Autor: | WhiteHunter [ Di Mai 13, 2008 15:21 ] |
Betreff des Beitrags: | |
Irgendwie bezweifle ich, dass sich Intel-Prozessor und AMD-Treiber allzugut verstehen werden. MfG |
Autor: | Fabian W. [ Di Mai 13, 2008 15:38 ] |
Betreff des Beitrags: | |
Also das Problem mit der Maus scheint im df niemand zu haben. Ich werde in der nächsten Version einfach mal die Displaylisten deaktivieren, mal schaun vlt bringt's ja was. Der Mann mit dem Code wäre dann in dem Fall doch wieder noeska, dann die Displaylisten lasse ich auch von gl3ds erstellen und verwalten. Hierfür schonmal vielen Dank WhiteHunter! @Flash: Nein, ich lasse das Bild durchgängig im idle rendern... PS: Kann ich das Topic hier irgendwie beobachten, damit ich per E-Mail benachrichitgt werde, wenn neue Antworten da sind? |
Seite 1 von 2 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |