Moin,
ich porte Splatter auf OSX. Der Laptop, den ich mir von einem Freund geborgt habe, hat eine NVidia Geforce 330M eingebaut, zusätzlich zu einer namenlosen integrierten Intel-GPU. Splatter läuft darauf erstaunlich gut, aber nur im Hauptmenü. Sobald ich das Spiel starte, bricht die Framerate auf 2 bis 3 Bilder pro Sekunde ein. Und das ist seltsam, denn das Plasmagewabber im Menühintergrund ist auch ein anspruchsvoller Shader mit ungf. 20 Textursamples pro Bildschirmpixel. Wenn die GPU mit Shaderlänge oder irgendwelchen Operationen ihre Probleme hätte, müsste das auch schon im Hauptmenü sichtbar sein.
Daher vermute ich, dass ich in einem meiner Shader im Spiel irgendwas mache, was den Treiber dazu zwingt, in Software weiter zu rechnen. Ich habe irgendwo gelesen, dass die OpenGL-Treiber das so machen.
a) Stimmt das? Hat OpenGL wirklich einen vollwertigen Software Rasterizer als Fallback definiert?
b) Wenn ja, wie bekomme ich heraus, dass es passiert ist?
c) Wie bekomme ich heraus, warum der Treiber sich genötigt fühlt, auf Software umzuschalten?
Danke.
Bye, Thomas
[OpenGL] Treiber schaltet anscheinend auf Software-Rendern
- Schrompf
- Moderator
- Beiträge: 4855
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas Ziegenhagen
- Wohnort: Dresden
- Kontaktdaten:
[OpenGL] Treiber schaltet anscheinend auf Software-Rendern
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: [OpenGL] Treiber schaltet anscheinend auf Software-Rende
Ich versuchs mal :-)
a)
Ja, zumindest größtenteils. Natürlich gibt es Zusammenstellungen, die dann gar nicht funktionieren, je nach System/Implementierung
b)
Normalerweise gar nicht (außer der lahmen Framerate), aber es gibt je nach Platform verschiedene Lösungsansätze:
OSX: https://developer.apple.com/library/mac ... index.html
Windows: https://www.opengl.org/archives/resourc ... indows.htm
c)
Eigentlich über die Abfrage der richtigen Capabilities, aber da kenn ich mich leider auch nicht genau aus.
Aber vielleicht hilft dir der o.g. Link für OSX weiter, sodass du zumindest ausschließen kannst, dass es nicht am PixelFormat bzw. dem Shader liegt.
a)
Ja, zumindest größtenteils. Natürlich gibt es Zusammenstellungen, die dann gar nicht funktionieren, je nach System/Implementierung
b)
Normalerweise gar nicht (außer der lahmen Framerate), aber es gibt je nach Platform verschiedene Lösungsansätze:
OSX: https://developer.apple.com/library/mac ... index.html
Windows: https://www.opengl.org/archives/resourc ... indows.htm
c)
Eigentlich über die Abfrage der richtigen Capabilities, aber da kenn ich mich leider auch nicht genau aus.
Aber vielleicht hilft dir der o.g. Link für OSX weiter, sodass du zumindest ausschließen kannst, dass es nicht am PixelFormat bzw. dem Shader liegt.
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: [OpenGL] Treiber schaltet anscheinend auf Software-Rende
Ich würde mal schauen mal in die Ausgabe einer Extension wie ARB_debug_output(Core) schauen. Dort bekommst du viele Performance Probleme mitgeteilt.