Ahorro de energía con control VSync
Para ahorrar energía en un equipo, el controlador de pantalla en modo kernel puede reducir el número de interrupciones de actualización del monitor VSync que se producen.
Los procesadores y plataformas más recientes suelen trabajar con el sistema operativo para ahorrar energía cuando el sistema informático está inactivo. Sin embargo, la actividad periódica del sistema, como la activación de interrupciones, provoca un uso máximo de energía y puede impedir que el sistema informático entre en estados transitorios de suspensión que ahorrarían energía.
A partir de Windows Vista con Service Pack 1 (SP1) y Windows Server 2008, el sistema operativo puede desactivar el recuento periódico de interrupciones de VSync cuando la pantalla no se actualiza desde nuevos gráficos o actividad del mouse. Al controlar el intervalo de interrupción de VSync, el controlador puede ahorrar energía significativa.
Puedes aprovechar esta característica recompilando controladores de Windows Display Driver Model (WDDM) mediante Windows Server 2008 o versiones posteriores del Kit de controladores de Windows (WDK).
Para que los controladores aprovechen esta característica, deben admitir el miembro VSyncPowerSaveAware en la estructura DXGK_VIDSCHCAPS que se introdujo en Windows Vista con SP1. Los controladores existentes que siguen al WDDM deben volver a compilarse con el miembro VSyncPowerSaveAware mediante Windows Server 2008 o versiones posteriores de WDK.
Un sistema de Windows Vista con SP1 o posterior con un controlador que siga el WDDM y que admita esta característica desactivará la característica de recuento de la interrupción de VSync si no se produce ninguna actividad de GPU durante 10 períodos continuos de 1/Vsync, donde VSync es la frecuencia de actualización del monitor. Si la velocidad de VSync es de 60 hercios (Hz), la interrupción de VSync se produce una vez cada 16 milisegundos. Por lo tanto, en ausencia de una actualización de pantalla, la interrupción de VSync se desactiva después de 160 milisegundos. Si se reanuda la actividad de GPU, la interrupción de VSync se vuelve a activar para actualizar la pantalla.
En Windows 8 y versiones posteriores del sistema operativo Windows, es opcional que un controlador de solo visualización en modo kernel (KMDOD) admita la funcionalidad VSync, como se indica a continuación:
El controlador de solo pantalla admite el control VSync
Si el KMDOD admite la característica de control VSync, debe implementar las funciones DxgkDdiControlInterrupt y DxgkDdiGetScanLine y debe proporcionar punteros de función válidos a ambas funciones en la estructura de KMDDOD_INITIALIZATION_DATA .
En este caso, el KMDOD también debe implementar las funciones DxgkDdiInterruptRoutine y DxgkDdiDpcRoutine para notificar interrupciones de VSync al sistema operativo.
Además, los valores de los miembros PixelRate, hSyncFreq y vSyncFreq de la estructura DISPLAYCONFIG_VIDEO_SIGNAL_INFO no pueden ser D3DKMDT_FREQUENCY_NOTSPECIFIED.
El controlador de solo pantalla no admite el control VSync
Si el KMDOD no admite la característica de control VSync, no debe implementar las funciones DxgkDdiControlInterrupt o DxgkDdiGetScanLine y no debe proporcionar punteros de función válidos a ninguna de estas funciones en la estructura KMDDOD_INITIALIZATION_DATA .
En este caso, el subsistema del kernel de gráficos de Microsoft DirectX simula valores de interrupciones y líneas de examen de VSync en función del modo actual y la hora de la última VSync simulada.
Además, los valores de los miembros PixelRate, hSyncFreq y vSyncFreq de la estructura DISPLAYCONFIG_VIDEO_SIGNAL_INFO deben establecerse en D3DKMDT_FREQUENCY_NOTSPECIFIED.
Si no se cumplen estas condiciones, el subsistema del kernel de gráficos de DirectX no cargará el KMDOD.
Para Windows Vista con SP1 y versiones posteriores de los sistemas operativos Windows, el tiempo de espera de inactividad de VSync predeterminado es de 10 períodos de inactividad de VSync. Opcionalmente, con fines de prueba, el tiempo de espera se puede controlar mediante la configuración del Registro.
Importante
Para evitar problemas de compatibilidad de aplicaciones, no cambie la configuración predeterminada del Registro en los controladores de producción.
Ruta de acceso de la clave:
RTL_REGISTRY_CONTROL\GraphicsDrivers\Scheduler
Ruta de acceso completa:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Scheduler]
Valor de clave:
VsyncIdleTimeout
ValueType:
REG_DWORD
Valor:
10 = valor predeterminado
Valor:
0 = deshabilitar el control VSync (genera el mismo comportamiento que Windows Vista)