Diese beiden Artikel weisen darauf hin, dass der Off-Screen-Frontpuffer Teil des Windows Vista/7-Treibermodells (WDDM) ist.
http://www.opengl.org/pipeline/article/vol003_7/
Auch das Ausschalten des DWM wird diese Probleme wahrscheinlich nicht beheben, da der Off-Screen-Frontpuffer eine Anforderung des Treibermodells selbst ist.
Es ist ausführlich dokumentiert, dass der Desktop Window Manager (DWM) die Frontpuffer für die Darstellung auf dem Bildschirm zusammensetzt.
Meine Frage ist folgende: Wenn die Off-Screen-Frontpuffer verwendet werden, unabhängig davon, ob DWM aktiviert ist oder nicht, was führt dann die Kompositionsoperation aus, wenn DWM aktiviert ist?deaktiviert?
Ich suche auch nach guten Referenzen zum Verhalten von Windows 7, wenn DWM deaktiviert ist. Wird einfach auf das Stapelfenstermodell von XP zurückgegriffen?
Antwort1
Das Stapelfenstermodell ist verschwunden. Vista und höher verwenden ein zusammengesetztes Desktopmodell
Ich erinnere mich an diese Diskussionen, als Vista zum ersten Mal auf den Markt kam. Ich werde mein Bestes geben. Sie sollten diese Themen mit Vista statt mit Windows 7 googeln.
Es ist ausführlich dokumentiert, dass der Desktop Window Manager (DWM) die Frontpuffer für die Darstellung auf dem Bildschirm zusammensetzt.
Meine Frage ist folgende: Wenn die Off-Screen-Frontpuffer verwendet werden, unabhängig davon, ob DWM aktiviert ist oder nicht, was macht die Komposition, wenn DWM deaktiviert ist?
Sie können es selbst sehen. Schalten Sie Aero aus und wechseln Sie zu Basic. Sie laufen jetzt ohne DWM. Boom, kein DWM. Aber was passiert, wenn Sie versuchen, in den Speicher der Grafikkarte zu schreiben? Meistens werden Sie zu den Offscreen-Puffer umgeleitet, es sei denn, Sie sind ein erfahrener Programmierer. In diesem Fall würden Sie diese Frage nicht stellen. Und Sie wüssten, was passiert
Der Grund, warum der Off-Screen-Frontpuffer immer noch verwendet wird, ist, dass Treiber keine Kontrolle mehr über die Frontpuffer haben. Der Frontpuffer wird virtualisiert. Dies betrifft GDIUNDDirectX. Der Grund für einen virtuellen Speichermanager ist, dass Sie nicht mehr direkt in den physischen Speicher schreiben dürfen. Aus diesem Grund ist ein Offscreen-Puffer erforderlich.
Das meiste davon habe ich gelernt, als ich WPF lernte, da das DWM in vielerlei Hinsicht einfach eine gigantische WPF-Anwendung ist. Beide verwenden DirectX und MIL, um ihre jeweiligen Arbeitsbereiche zusammenzustellen. Ich würde mit einigen Technet-Artikeln zu Vista und WPF beginnen. Die Änderungen am DVM und DDK unter Windows 7 sind geringfügig und betreffen Ihre Frage nicht wirklich.
Ich hoffe, das ist alles verständlich.