glutSwapBuffers wartet zu lange
-
Hallo,
meine OpenGL-Anwendung nutzt Double-Buffering mit glutSwapBuffers.
Mir ist aufgefallen, dass glutSwapBuffers zu lange wartet und dadurch die Framerate von 60 auf 30 Frames abfällt.Ich habe gelesen, dass glutSwapBuffer von der vertikalen Frequenz des Monitors abhängt und den Wechsel nur in einem solchen Takt ausführt. Wenn also mein Rendervorgang 6ms braucht, würde glutSwapBuffer weitere 10ms warten um die 60Hz einzuhalten.
Jetzt hab ich mal die Zeiten gestoppt und oberes trifft auch ungefähr ein. Sobald meine Anwendung aber einwenig mehr rendern muss was ~9ms braucht, dann wartet das glutSwapBuffer ganze ~23ms !!! Also bis zum übernächsten Bild... was aber nicht sein müsste.
Hat einer ne Idee woran das liegen könnte? Oder ist mein Verständnis falsch?
-
Schalte mal die vertikale Syncronisation im Grafiktreiber ab und beobachte was passiert:
http://de.wikipedia.org/wiki/Vertikale_Synchronisation
bzw. besser ist:
http://en.wikipedia.org/wiki/Analog_television#Vertical_synchronization
-
Was und wie rendert deine Anwendung denn so alles, was genau bedeutet "ein wenig mehr"?
-
storm009 schrieb:
Jetzt hab ich mal die Zeiten gestoppt und oberes trifft auch ungefähr ein. Sobald meine Anwendung aber einwenig mehr rendern muss was ~9ms braucht,
wie misst du das, und sprichst du hier von cpu oder gpu zeit?
-
Wenn du OpenGL etwas Rendern lässt, wird es nicht sofort getan, es sei denn du rufst
glFinish
auf.