OpenGL Darstellungsprobleme unter Vista wenn Aero aktiv ist (Graphiktreiberabhängig )

Frogger

Grünschnabel
Hallo

Ich habe ein Problem mit zwei MFC Anwendungen (erstellt unter Microsoft Visual Studio 2005), die jeweils ein OpenGL Fenster enthalten: Auf manchen Rechnern mit Windows Vista wird das OpenGL Fenster nicht mehr richtig dargestellt sobald der Aero Modus aktiviert ist (In diesem Modus übernimmt der DWM = "Desktop Window Manager" die graphische Zusammensetzung des Desktops und das Zeichnen der Fenster). Je nach Rechner enthält das OpenGL Fenster entweder nur einen Grauton und es wird nichts gezeichnet, oder es wird sehr unregelmäßig auf Redraw Ereignisse Reagiert so dass nur in längeren Abständen einzelne Frames auftauchen, oder es müssen beim Programmstart einmalig viele Redrawereignisse stattfinden bis das Fenster anfängt die Szene korrekt zu rendern. Es gibt aber auch viele Rechner auf denen das Problem nicht auftritt.
Nach allem was ich zum Thema gelesen habe müssen die Graphikkartenhersteller über ihre Treiber dafür sorgen, dass ihre ICDs (Installable Client Driver) unter Windows Aero korrekt mit dem DWM zusammenarbeiten und somit das OpenGL Fenster gezeichnet werden kann. Tatsächlich tritt das Problem ausschließlich dann auf, wenn ein Pixelformat vom Typ ICD verwendet wird. Andererseits sind dann nicht alle OpenGL Programme betroffen, die diese ICDs ebenfalls nutzen. Der OpenGL Extensions Viewer von

http://www.realtech-vr.com/glview/

konnte zum Beispiel bisher auf allen betroffenen Systemen die ICD Formate verwenden und OpenGL Fenster zeichnen.
Ich kann auch einfachere Win32 OpenGL Fenster aus meinen Anwendungen hochpoppen lassen, und kann OpenGL in diesen Fenstern korrekt darstellen .
Nur die OpenGL Fenster die in den betroffenen Anwendungen als "Hauptfenster" verwendet werden, die dort in andere Fenster eingebettet sind, haben probleme mit der Darstellung.
Das Problem scheint komplex zu sein: Es gibt wohl konstallationen zwischen verschiedenen Varianten ein OpenGL Fenster zu implementieren /in eine Anwendung einzubauen, und einzelnen Treibern die diese Verwendungsweisen nicht richtig mit dem DWM koordinieren können. Und das obwohl durch den Treiber eine volle Aero Unterstützung vorhanden sein sollte.
Dennoch scheint es bestimmte "Best Practices" bei der Verwendung von OpenGL Fenstern zu geben, um trotz dieser "Macken" einiger Graphiktreiber auch unter Aero immer die richtige Darstellung zu bekommen.
Wenn man weiter zum Thema sucht liest man immer wieder von Fällen in denen eine OpenGL Darstellung unter Aero nicht richtig funktioniert, aber ich finde nirgends eine klare Erklärung der Ursache oder eine ausreichende allgemeingültige Lösung zum Umgang damit. Z.B. werden in den folgenden Links ähnliche Probleme genannt, die dort genannten Szenarien treffen bei mir aber teilweise nicht zu und die dort vorgeschlagenen Lösungen funktionieren bei mir auch nicht:

http://www.virtualdub.org/blog/pivot/entry.php?id=149

https://forum.codejock.com/forum_posts.asp?TID=6997&KW=splitter&PN=1

Sehr interessant ist auch ein Fall den ich mit dem OpenGL Diagnosetool "GLView" von der OpenGL Superbible hatte. Unter Folgender Kombination von Graphikkarte/Teiber konnte auch dieses Programm unter Aero nichts zeichnen:

Graphikkarte: Mobile Intel (R) 925 GM Express Chipset Family
Treiberanbieter: Intel Corporation
Treiberdatum: 28.11.2006
Treiberversion: 7.14.10.1132
Signatur: microsoft windows hardware compatibility publisher

Wie gesagt, es scheint ein allgemeines, nicht ausreichend geklärtes Phänomen zu sein, daß OpenGL unter Windows Vista mit Aero in manchen Fällen Probleme macht.

Weiß jemand mehr dazu ? Über Hinweise würde ich mich freuen.

Viele Grüße

Frogger
 
Zurück