Energiesparen mit VSync Control
Um Energie auf einem Computer zu sparen, kann der Anzeigetreiber im Kernelmodus die Anzahl von VSync-Monitoraktualisierungsunterbrechungen reduzieren, die auftreten.
Neuere Prozessoren und Plattformen arbeiten häufig mit dem Betriebssystem, um Energie zu sparen, wenn sich das Computersystem im Leerlauf befindet. Regelmäßige Systemaktivitäten, z. B. das Auslösen von Unterbrechungen, verursachen jedoch spitzen Stromverbrauch und können verhindern, dass das Computersystem in vorübergehende Ruhezustände wechselt, die Energie sparen würden.
Ab Windows Vista mit Service Pack 1 (SP1) und Windows Server 2008 kann das Betriebssystem die regelmäßige VSync-Unterbrechungszählung deaktivieren, wenn der Bildschirm nicht von neuen Grafiken oder Mausaktivitäten aktualisiert wird. Durch die Steuerung des VSync-Interruptintervalls kann Ihr Treiber erhebliche Energie sparen.
Sie können dieses Feature nutzen, indem Sie WDDM-Treiber (Windows Display Driver Model) mithilfe von Windows Server 2008 oder höheren Versionen des Windows Driver Kit (WDK) neu erstellen.
Windows Vista mit SP1-Treiberänderungen für die VSync-Steuerung
Damit Treiber dieses Feature nutzen können, müssen sie das VSyncPowerSaveAware-Element in der DXGK_VIDSCHCAPS-Struktur unterstützen, die in Windows Vista mit SP1 eingeführt wurde. Vorhandene Treiber, die dem WDDM folgen, müssen mit dem VSyncPowerSaveAware-Member neu kompiliert werden, indem Windows Server 2008 oder höhere Versionen des WDK verwendet werden.
Ein Windows Vista mit SP1 oder höher mit einem Treiber, der dem WDDM folgt und dieses Feature unterstützt, deaktiviert das Zählfeature des VSync-Interrupts, wenn für 10 fortlaufende Zeiträume von 1/Vsync keine GPU-Aktivität auftritt, wobei VSync die Monitoraktualisierungsrate ist. Wenn die VSync-Rate 60 Hertz (Hz) beträgt, tritt der VSync-Interrupt einmal alle 16 Millisekunden auf. Daher wird der VSync-Interrupt bei fehlendem Bildschirmupdate nach 160 Millisekunden deaktiviert. Wenn die GPU-Aktivität fortgesetzt wird, wird der VSync-Interrupt erneut aktiviert, um den Bildschirm zu aktualisieren.
Display-Only VSync-Anforderungen für Windows 8 und höhere Versionen
In Windows 8 und höheren Versionen des Windows-Betriebssystems ist es optional, dass ein Kernelmodustreiber für die anzeigegeschützte Anzeige (KMDOD) die VSync-Funktionalität wie folgt unterstützt:
Der reine Anzeigetreiber unterstützt das VSync-Steuerelement.
Wenn das KMDOD das VSync-Steuerelementfeature unterstützt, muss es sowohl die Funktionen DxgkDdiControlInterrupt als auch DxgkDdiGetScanLine implementieren und gültige Funktionszeiger auf beide Funktionen in der KMDDOD_INITIALIZATION_DATA-Struktur bereitstellen.
In diesem Fall muss die KMDOD auch die Funktionen DxgkDdiInterruptRoutine und DxgkDdiDpcRoutine implementieren, um VSync-Interrupts an das Betriebssystem zu melden.
Darüber hinaus können die Werte der Elemente PixelRate, hSyncFreq und vSyncFreq der DISPLAYCONFIG_VIDEO_SIGNAL_INFO-Struktur nicht D3DKMDT_FREQUENCY_NOTSPECIFIED werden.
Der reine Anzeigetreiber unterstützt das VSync-Steuerelement nicht.
Wenn die KMDOD das VSync-Steuerelementfeature nicht unterstützt, darf sie weder dxgkDdiControlInterrupt noch DxgkDdiGetScanLine-Funktionen implementieren und darf keine gültigen Funktionszeiger auf eine dieser Funktionen in der KMDDOD_INITIALIZATION_DATA-Struktur bereitstellen.
In diesem Fall simuliert das Microsoft DirectX-Grafikkernsystem Werte von VSync-Interrupts und Scanlinien basierend auf dem aktuellen Modus und der Zeit der letzten simulierten VSync.
Darüber hinaus müssen die Werte der Elemente PixelRate, hSyncFreq und vSyncFreq der DISPLAYCONFIG_VIDEO_SIGNAL_INFO-Struktur auf D3DKMDT_FREQUENCY_NOTSPECIFIED festgelegt werden.
Wenn diese Bedingungen nicht erfüllt sind, lädt das DirectX-Grafikkernsubsystem die KMDOD nicht.
Registrierungssteuerung
Bei Windows Vista mit SP1 und höheren Versionen der Windows-Betriebssysteme beträgt das Standardmäßige VSync-Leerlauftimeout 10 VSync-Zeiträume. Optional kann das Timeout zu Testzwecken mithilfe von Registrierungseinstellungen gesteuert werden.
Wichtig
Um Probleme mit der Anwendungskompatibilität zu vermeiden, sollten Sie die Standardregistrierungseinstellung in Produktionstreibern nicht ändern.
Schlüsselpfad:
RTL_REGISTRY_CONTROL\GraphicsDrivers\Scheduler
Vollständiger Pfad:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Scheduler]
Schlüsselwert:
VsyncIdleTimeout
Valuetype:
REG_DWORD
Wert:
10 = Standard
Wert:
0 = Deaktivieren des VSync-Steuerelements (erzeugt das gleiche Verhalten wie Windows Vista)