Registriert: Do Jul 23, 2009 04:33 Beiträge: 157
Programmiersprache: Turbo Delphi Pro
Hallo, Gibt es eine einfache Möglichkeit, abzufragen ob das Programm im Softwaremodus läuft? Und gibt es eine einfache Möglichkeit den Treiber in den Softwaremodus zu zwingen (um zwischen Hardware und Softwaremodus zu vergleichen und Rückschlüsse darauf zu ziehen wie das Programm auf Rechnern abläuft in denen der SW-Modus zur Anwendung kommt).
Schonmal im Voraus Danke
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen. (Koreanisches Sprichwort)
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Auf beide Fragen ein klares Nein.
Ausser im Shader über den Shaderlog kann man nicht feststellen ob, bzw. was in OpenGL via Hardware bzw. Software läuft. Auf alter Hardware werden viele aktuelle Extensions angeboten die dort aber nur emuliert werden, und es gibt keine Möglichkeit das in Erfahrung zu bringen.
Einen Softwarerenderer sowie den Referenzrenderer in D3D gibts in OpenGL auch nicht. Hier könnte man den Umweg über die Mesa DLLs gehen.
Oder man deinstalliert den Treiber mal, startet im abgesicherten Modus oder in einer Virtual Box ohne 3D-Hardware-Unterstützung. Die letzte Methode finde ich gar nicht so dämlich.
_________________ Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut. Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’. Und du schaust mich an und fragst ob ich das kann. Und ich denk, ich werd' mich ändern irgendwann. _________________Farin Urlaub - Bewegungslos
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ne, da sind die Mesa-DLLs die bessere Alternative. Die sind ja ein kompletter Softwarerenderer mit so gut wie allen aktuellen Features, und dazu muss man nur die DLLs ins Anwendungsverzeichnis packen, ohne VM oder so.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Solltest du als treiberkennung "Opengl1.2 Microsoft" oder so ähnlich war es bekommen hast du den Windows OpenGL softwaredriver erwischt. Sonnst sollte da je nach graka dann der Hersteller der Karte und die OGL version zu finden sein. Bei Mesa steht da glaube aktuell "OpenGL2.1 Mesa". Wann du in den Softwaremode schaltest ist vor OpenGL3 eigentlich nicht zu bestimmen, man könnte vieleicht mal probieren dll hooks zu machen und den callstack zu tracen aber Aufwand der vergeben sein könnte. Ab OpenGL3 ist das einfach, kein Software Fallback dank neuer Context flags ^^.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Do Jul 23, 2009 04:33 Beiträge: 157
Programmiersprache: Turbo Delphi Pro
Ja ne die Frage war nicht ohne Grund ob es eine einfache Lösung gibt, weil auf kompliziertes rumzokkeln hab ich da jetzt auch wieder keinen Bock, so wichtig ist es dann auch wieder nicht. Aber VirtualBox werd ich mal testen, und dann fiel mir noch ein dass meine ATI unter Linux nicht richtig läuft, sprich da müsste ich auch Softwaretreiber haben, mal sehen vielleicht test ichs damit mal ^^
Trotzdem danke für die Bemühungen. Für später ist der Wink mit dem Mesa-Treiber sicher lich ne gute Lösung.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen. (Koreanisches Sprichwort)
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
VirtualBox. Nur leider lässt sich da nicht mehr vernünftig debuggen. Du kannst in den erweiterten Einstellungen der Anzeige auch die Hardwarebeschleunigung runter drehen. Ab einem gewissen Grad wird OpenGL immer auf die Implementation innerhalb von Windows umgeleitet. Und debuggen kann man auch noch.
Die einfachtse Methode ist ChoosePixelFormat selbst durchzuführen (GetPixelFormat + SetPixelFormat = Einfach alle PixelFormate der jeweiligen Grafikkarte durchschauen) und sich das beste Format herauszusuchen und das. Dabei ist es immer möglich ein Format ohne Hardwarebschleunigung zu finden.
Registriert: Sa Aug 18, 2007 18:47 Beiträge: 694 Wohnort: Köln
Programmiersprache: Java
Das passt vielleicht jetzt nicht so ganz ins Thema, da wohl Windows gemeint ist. Unter OS X gibt es eine App namens OpenGL Shader Builder. Dort kann man explizit wählen welchen Renderer man nutzen möchte.
_________________ Es werde Licht. glEnable(GL_LIGHTING); Und es ward Licht.
Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.