[OpenGL] Treiber schaltet anscheinend auf Software-Rendern

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
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

Beitrag von Schrompf »

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
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
NytroX
Establishment
Beiträge: 364
Registriert: 03.10.2003, 12:47

Re: [OpenGL] Treiber schaltet anscheinend auf Software-Rende

Beitrag von NytroX »

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.
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: [OpenGL] Treiber schaltet anscheinend auf Software-Rende

Beitrag von Spiele Programmierer »

Ich würde mal schauen mal in die Ausgabe einer Extension wie ARB_debug_output(Core) schauen. Dort bekommst du viele Performance Probleme mitgeteilt.
Antworten