Proporcionar transiciones de estado sin problemas en WDDM 1.2 y versiones posteriores
A partir de Windows 8, varias características ayudan a minimizar o eliminar flashes de pantalla y parpadeos durante el proceso de arranque, durante las transiciones desde estados de menor potencia y durante las transiciones de vuelta al control del sistema operativo en las actualizaciones de controladores o comprobaciones de errores del sistema. Además, el firmware del sistema en Windows 8 y equipos posteriores debe detectar la resolución nativa y el tiempo del panel de pantalla integrado en el momento de encender y entregar esta información al sistema operativo. Los controladores de miniporte de pantalla de Windows Display Driver Model (WDDM) 1.2 y versiones posteriores deben admitir este comportamiento.
Versión mínima de WDDM | 1.2 |
Versión mínima de Windows | 8 |
Implementación del controlador: gráficos completos y solo mostrar | Mandatory |
Requisitos y pruebas de WHCK | System.Client.Firmware.UEFI.GOP.Display Device.Graphics... PnpStopStartSupport Device.Graphics... DisplayOutputControl |
Transición del firmware al sistema operativo
Todos los sistemas Windows 8 destinados a las SKU de cliente deben admitir el Protocolo de salida de gráficos (GOP) unified Extensible Firmware Interface (UEFI). Durante la fase de arranque, el GOP establece el tiempo nativo y la resolución nativa en el panel de visualización integrado del sistema. Cuando el sistema operativo está listo para asumir la propiedad de la pantalla, el GOP entrega un búfer de fotogramas que se puede usar para examinar la pantalla. En este momento, el sistema operativo no intenta restablecer los tiempos de visualización o la resolución, sino simplemente usa el búfer de fotogramas proporcionado, lo que elimina un flash de pantalla.
Requisitos de certificación de hardware
Para obtener información sobre los requisitos que deben cumplir los dispositivos de hardware al implementar esta característica, consulte la documentación de WHCK pertinente sobre System.Client.Firmware.UEFI.GOP.Display.
Transición del sistema operativo al controlador
Cuando el sistema operativo entrega la propiedad de la pantalla al controlador WDDM después de un arranque, inicia un inicio de Plug and Play (PnP) del dispositivo llamando a la función DxgkDdiStartDevice. Como alternativa, después de reanudar desde la hibernación, el sistema operativo inicia el dispositivo llamando a la función DxgkDdiSetPowerState con el parámetro DeviceUid establecido en DISPLAY_ADAPTER_HW_ID (definido en Video.h). En este momento, normalmente la pantalla está en blanco (se representa como negra) mientras el controlador de gráficos WDDM toma el control.
El controlador puede llamar a la función DxgkCbAcquirePostDisplayOwnership (disponible a partir de Windows 8) para consultar el sistema operativo para obtener el estado exacto del búfer de fotogramas actual y el modo de visualización establecido por el firmware y el cargador de arranque. Con la información de la estructura de DXGK_DISPLAY_INFORMATION recuperada por esta función, es posible que el controlador mantenga activo el controlador de pantalla y no provoque una nueva sincronización del monitor. Dado que el controlador también tiene información detallada sobre el búfer de fotogramas, es posible realizar una transición más fluida.
En Plug and Play (PnP) se proporcionan más detalles sobre el inicio de PnP en WDDM 1.2 y versiones posteriores.
Transición del controlador al sistema operativo
El sistema operativo puede solicitar una detención PnP del dispositivo de visualización llamando a la función DxgkDdiStopDevice . En este momento, normalmente la pantalla está en blanco (se representa como negra) mientras el sistema operativo toma el control de pantalla. El sistema operativo puede llamar a la función DxgkDdiStopDeviceAndReleasePostDisplayOwnership (disponible a partir de Windows 8) que requiere que el controlador WDDM configure un búfer de fotogramas configurado para el examen. El sistema operativo puede representarse en este búfer de fotogramas mientras está en control de la pantalla, lo que permite realizar una transición fluida.
Se proporcionan más detalles sobre la detención de PnP, incluidos escenarios adicionales, en Plug and Play (PnP) en WDDM 1.2 y versiones posteriores.
Requisitos de certificación de hardware
Para obtener más información sobre este entrega, consulte la documentación de WHCK pertinente en Device.Graphics... PnpStopStartSupport.
Transición al sistema operativo sin deshabilitar el controlador
A veces, el sistema operativo experimenta un error irrecuperable y tiene que emitir una comprobación de errores del sistema. Cuando esto sucede, hay ciertos casos en los que el sistema operativo tiene que tomar el control de la pantalla, pero no tiene la capacidad de detener el controlador WDDM. Se requieren controladores WDDM 1.2 y versiones posteriores para implementar las funciones DxgkDdiSystemDisplayEnable y DxgkDdiSystemDisplayWrite , que permiten al sistema operativo pasar sin problemas a un estado en el que puede mostrar la pantalla de error mientras mantiene la interfaz gráfica en una alta resolución y profundidad de color. Esta transición elimina una experiencia de usuario jarra.
Requisitos de certificación de hardware
Para obtener información sobre los requisitos que deben cumplir los dispositivos de hardware al implementar esta característica, consulte la documentación de WHCK pertinente en Device.Graphics... DisplayOutputControl.
cambios en el modo de firmware de Windows 8
Estos son los cambios en el modo de visualización del firmware antes de que el firmware entregó el control al sistema operativo:
Controladores WDDM 1.2 y versiones posteriores (DXGKDDI_INTERFACE_VERSION>= DXGKDDI_INTERFACE_VERSION_WIN8)
Para eliminar aún más los flashes de pantalla, a partir de Windows 8, no se llama a las solicitudes de cambio de modo Int10 en el firmware para los controladores WDDM 1.2 y versiones posteriores.
Además, si se produce un cambio de modo mientras se desactiva el monitor, el sistema operativo llama a la función DxgkDdiCommitVidPn una sola vez, con el parámetro pCommitVidPnArg establecido en el valor que tendría si se activara el monitor y el miembro PathPoweredOff de pCommitVidPnArg-Flags> establecido en TRUE.
Controladores WDDM 1.0 y 1.1 (DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN8<)
En el caso de los controladores WDDM 1.0 y 1.1 que se ejecutan en Windows 8, durante el proceso de arranque o al reanudarse desde la hibernación, se realizan llamadas al modo VGA int10 0x12 que establecen la resolución de visualización en la alta resolución nativa del monitor. Antes de Windows 8, un modo VGA Int10 0x12 llamada establece la resolución de pantalla en 640 x 480 píxeles, en 16 bits por píxel, sin cursor parpadeante, para mostrar la imagen de la pantalla de presentación del sistema operativo.
Sin embargo, para los controladores WDDM 1.0 y 1.1 que indican que no admiten el modo de alta resolución, a partir de Windows 8 un arranque en modo VGA 0x12 establece la resolución de pantalla en 640 x 480 píxeles, a 16 bits por píxel, sin cursor de parpadeo. Cuando el sistema se reanuda desde la hibernación, la resolución de pantalla se establecerá en la alta resolución nativa del monitor.
Además, si se produce un cambio de modo mientras el monitor está desactivado, El sistema operativo llama a la función DxgkDdiCommitVidPn como se describió anteriormente para los controladores WDDM 1.2, además de llamar a DxgkDdiCommitVidPn una segunda vez con una red de presentación de vídeo vacía (VidPN) en pCommitVidPnArg-hFunctionalVidPn> y ninguno de los valores de marca establecidos en pCommitVidPnArg-Flags.>
Esta secuencia de llamada de dos partes también se produce cuando el sistema se reanuda después de la hibernación y la generación de sincronización de supervisión es permanecer habilitado. En este caso, el controlador no debe realizar ninguna acción cuando recibe la segunda llamada a DxgkDdiCommitVidPn.