Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per risparmiare energia su un computer, il driver di visualizzazione in modalità kernel può ridurre il numero di interruzioni di aggiornamento della sincronizzazione verticale (VSync) del monitor che si verificano.
Processori e piattaforme più recenti spesso funzionano con il sistema operativo per risparmiare energia quando il sistema informatico è inattiva. Tuttavia, l'attività periodica del sistema, ad esempio l'attivazione di interrupt, provoca un picco di utilizzo dell'alimentazione e può impedire al sistema informatico di immettere stati di sospensione temporanei che potrebbero risparmiare energia.
A partire da Windows Vista con Service Pack 1 (SP1) e Windows Server 2008, il sistema operativo può disattivare il conteggio periodico degli interrupt VSync quando lo schermo non viene aggiornato da nuove attività grafiche o del mouse. Controllando l'intervallo di interrupt del VSync, il driver può risparmiare energia considerevole.
Puoi sfruttare questa funzionalità ricompilando i driver WDDM (Windows Display Driver Model) usando Windows Server 2008 o versioni successive di Windows Driver Kit (WDK).
Windows Vista con le modifiche del driver SP1 per il controllo VSync
Affinché i driver possano sfruttare questa funzionalità, devono supportare il membro VSyncPowerSaveAware nella struttura DXGK_VIDSCHCAPS introdotta in Windows Vista con SP1. I driver esistenti che seguono WDDM devono essere ricompilati con il membro VSyncPowerSaveAware usando Windows Server 2008 o versioni successive di WDK.
Un sistema Windows Vista con SP1 o versione successiva con un driver che segue il WDDM e che supporta questa funzionalità disattiva la funzionalità di conteggio dell'interrupt VSync se non si verifica alcuna attività GPU per 10 periodi continui di 1/Vsync, dove VSync è la frequenza di aggiornamento del monitoraggio. Se la frequenza VSync è di 60 millisecondi (Hz), l'interrupt VSync si verifica una volta ogni 16 millisecondi. Pertanto, in assenza di un aggiornamento dello schermo, l'interrupt VSync viene disattivato dopo 160 millisecondi. Se l'attività GPU riprende, l'interrupt VSync viene riattivato per aggiornare la schermata.
Display-Only Requisiti VSync per Windows 8 e versioni successive
In Windows 8 e versioni successive del sistema operativo Windows, è facoltativo per un driver di sola visualizzazione in modalità kernel (KMDOD) per supportare la funzionalità VSync, come indicato di seguito:
Il driver di sola visualizzazione supporta il controllo VSync
Se KMDOD supporta la funzionalità di controllo VSync, deve implementare entrambe le funzioni DxgkDdiControlInterrupt e DxgkDdiGetScanLine e deve fornire puntatori di funzione validi a entrambe queste funzioni nella struttura KMDDOD_INITIALIZATION_DATA .
In questo caso, il KMDOD deve implementare anche le funzioni DxgkDdiInterruptRoutine e DxgkDdiDpcRoutine per segnalare gli interrupt VSync al sistema operativo.
Inoltre, i valori dei membri PixelRate, hSyncFreq e vSyncFreq della struttura DISPLAYCONFIG_VIDEO_SIGNAL_INFO non possono essere D3DKMDT_FREQUENCY_NOTSPECIFIED.
Il driver di sola visualizzazione non supporta il controllo VSync
Se il KMDOD non supporta la funzionalità di controllo VSync, non deve implementare le funzioni DxgkDdiControlInterrupt o DxgkDdiGetScanLine e non deve fornire puntatori di funzione validi a una di queste funzioni nella struttura KMDDOD_INITIALIZATION_DATA .
In questo caso, il sottosistema del kernel della grafica di Microsoft DirectX simula i valori delle interruzioni VSync e delle linee di scansione in base alla modalità corrente e al momento dell'ultimo VSync simulato.
Inoltre, i valori dei membri PixelRate, hSyncFreq e vSyncFreq della struttura DISPLAYCONFIG_VIDEO_SIGNAL_INFO devono essere impostati su D3DKMDT_FREQUENCY_NOTSPECIFIED.
Se queste condizioni non vengono soddisfatte, il sottosistema kernel della grafica DirectX non caricherà il KMDOD.
Controllo Registro di sistema
Per Windows Vista con SP1 e versioni successive dei sistemi operativi Windows, il timeout di inattività VSync predefinito è di 10 periodi VSync. Facoltativamente, a scopo di test, il timeout può essere controllato usando le impostazioni del Registro di sistema.
Importante
Per evitare problemi di compatibilità delle applicazioni, non modificare l'impostazione predefinita del Registro di sistema nei driver di produzione.
Percorso chiave:
RTL_REGISTRY_CONTROL\GraphicsDrivers\Scheduler
Percorso completo:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Scheduler]
Valore chiave:
VsyncIdleTimeout
ValueType:
REG_DWORD
Valore:
10 = valore predefinito
Valore
0 = disabilitare il controllo VSync (produce lo stesso comportamento di Windows Vista)