Fournir des transitions d’état transparentes dans WDDM 1.2 et versions ultérieures

À partir de Windows 8, plusieurs fonctionnalités permettent de réduire ou d’éliminer les clignotements et les clignotements de l’écran pendant le processus de démarrage, pendant les transitions des états d’alimentation inférieure et pendant les transitions vers le contrôle du système d’exploitation dans les mises à niveau de pilotes ou les vérifications de bogues système. En outre, le microprogramme système sur les ordinateurs Windows 8 et versions ultérieures doit détecter la résolution et le minutage natifs du panneau d’affichage intégré au moment de la mise sous tension et transmettre ces informations au système d’exploitation. Les pilotes d’affichage windows WDDM (Windows Display Driver Model) 1.2 et versions ultérieures doivent prendre en charge ce comportement.

Version minimale de WDDM 1,2
Version minimale de Windows 8
Implémentation de pilote : graphiques complets et affichage uniquement Obligatoire
Exigences et tests WHCK

System.Client.Firmware.UEFI.GOP.Display

Device.Graphics... PnpStopStartSupport

Device.Graphics... DisplayOutputControl

Transition du microprogramme au système d’exploitation

Tous les systèmes Windows 8 ciblés pour les références SKU clientes doivent prendre en charge le protocole GOP (Unified Extensible Firmware Interface) (UEFI). Pendant la phase de démarrage, le goP définit le minutage natif et la résolution native sur le panneau d’affichage intégré du système. Lorsque le système d’exploitation est prêt à prendre la propriété de l’affichage, le GOP remet une mémoire tampon d’image qui peut être utilisée pour analyser l’affichage. À ce stade, le système d’exploitation ne tente pas de réinitialiser les minutages d’affichage ou la résolution, mais utilise simplement la mémoire tampon d’image fournie, éliminant ainsi un flash d’écran.

Conditions de certification matérielle

Pour plus d’informations sur les exigences que les appareils matériels doivent respecter lorsqu’ils implémentent cette fonctionnalité, reportez-vous à la documentation WHCK pertinente sur System.Client.Firmware.UEFI.GOP.Display.

Transition du système d’exploitation au pilote

Lorsque le système d’exploitation remet la propriété de l’affichage au pilote WDDM après un démarrage, il lance un démarrage Plug-and-Play (PnP) de l’appareil en appelant la fonction DxgkDdiStartDevice. Une fois la mise en veille prolongée terminée, le système d’exploitation démarre l’appareil en appelant la fonction DxgkDdiSetPowerState avec le paramètre DeviceUid défini sur DISPLAY_ADAPTER_HW_ID (défini dans Video.h). À ce stade, l’écran est généralement vide (rendu en noir) tandis que le pilote graphique WDDM prend le contrôle.

Le pilote peut appeler la fonction DxgkCbAcquirePostDisplayOwnership (disponible à partir de Windows 8) pour interroger le système d’exploitation pour connaître l’état exact de la mémoire tampon d’image actuelle et le mode d’affichage qui a été défini par le microprogramme et le chargeur de démarrage. Avec les informations contenues dans la structure DXGK_DISPLAY_INFORMATION récupérées par cette fonction, il est possible pour le pilote de maintenir le contrôleur d’affichage actif et de ne pas provoquer une resynchronisation du moniteur. Étant donné que le pilote dispose également d’informations détaillées sur la mémoire tampon d’image, il est possible d’effectuer une transition plus fluide.

Plus d’informations sur le démarrage pnP sont fournies dans Plug-and-Play (PnP) dans WDDM 1.2 et versions ultérieures.

Transition du pilote au système d’exploitation

Le système d’exploitation peut demander un arrêt PnP de l’appareil d’affichage en appelant la fonction DxgkDdiStopDevice . À ce stade, l’écran est généralement vide (rendu en noir) pendant que le système d’exploitation prend le contrôle d’affichage. Le système d’exploitation peut appeler la fonction DxgkDdiStopDeviceAndReleasePostDisplayOwnership (disponible à partir de Windows 8) qui nécessite que le pilote WDDM configure une mémoire tampon de trame configurée pour l’analyse. Le système d’exploitation peut effectuer un rendu dans cette mémoire tampon d’image alors qu’il contrôle l’affichage, ce qui permet d’effectuer une transition en douceur.

Plus d’informations sur l’arrêt PnP, y compris d’autres scénarios, sont fournies dans Plug-and-Play (PnP) dans WDDM 1.2 et versions ultérieures.

Conditions de certification matérielle

Pour plus d’informations sur ce transfert, reportez-vous à la documentation WHCK pertinente sur Device.Graphics... PnpStopStartSupport.

Passer au système d’exploitation sans désactiver le pilote

Parfois, le système d’exploitation rencontre une erreur irrécupérable et doit émettre un bogue système case activée. Dans certains cas, le système d’exploitation doit prendre le contrôle de l’affichage, mais n’a pas la possibilité d’arrêter le pilote WDDM. Les pilotes WDDM 1.2 et versions ultérieures sont nécessaires pour implémenter les fonctions DxgkDdiSystemDisplayEnable et DxgkDdiSystemDisplayWrite , qui permettent au système d’exploitation de passer en toute transparence à un état où il peut afficher l’écran d’erreur tout en conservant l’interface graphique à haute résolution et profondeur de couleurs. Cette transition élimine une expérience utilisateur arose.

Conditions de certification matérielle

Pour plus d’informations sur les exigences que les périphériques matériels doivent respecter lorsqu’ils implémentent cette fonctionnalité, reportez-vous à la documentation WHCK pertinente sur Device.Graphics... DisplayOutputControl.

Windows 8 modifications du mode microprogramme

Il s’agit des modifications apportées au mode d’affichage du microprogramme avant que le microprogramme ne transfère le contrôle au système d’exploitation :

Pilotes WDDM 1.2 et versions ultérieures (DXGKDDI_INTERFACE_VERSION>= DXGKDDI_INTERFACE_VERSION_WIN8)
Pour éliminer davantage les flashs d’affichage, à compter de Windows 8, les demandes de modification en mode Int10 ne sont pas appelées sur le microprogramme pour les pilotes WDDM 1.2 et versions ultérieures.

En outre, si un changement de mode se produit lorsque le moniteur est désactivé, le système d’exploitation appelle la fonction DxgkDdiCommitVidPn une seule fois, avec le paramètre pCommitVidPnArg défini sur la valeur qu’il aurait si le moniteur était activé et le membre PathPoweredOff de pCommitVidPnArg-Flags> défini sur TRUE.

Pilotes WDDM 1.0 et 1.1 (DXGKDDI_INTERFACE_VERSION<DXGKDDI_INTERFACE_VERSION_WIN8)
Pour les pilotes WDDM 1.0 et 1.1 exécutés sur Windows 8, pendant le processus de démarrage ou lors de la reprise de la mise en veille prolongée, des appels en mode VGA Int10 0x12 sont effectués qui définissent la résolution d’affichage sur la haute résolution native du moniteur. Avant Windows 8, un appel en mode VGA Int10 0x12 définissait la résolution d’affichage sur 640 x 480 pixels, à 16 bits par pixel, sans curseur clignotant, pour afficher l’image de l’écran de démarrage du système d’exploitation.

Toutefois, pour les pilotes WDDM 1.0 et 1.1 qui indiquent qu’ils ne prennent pas en charge le mode haute résolution, à partir de Windows 8 un démarrage en mode VGA 0x12 définit la résolution d’affichage sur 640 x 480 pixels, à 16 bits par pixel, sans curseur clignotant. Lorsque le système reprend après la mise en veille prolongée, la résolution d’affichage est toujours définie sur la haute résolution native du moniteur.

En outre, si un changement de mode se produit lorsque le moniteur est désactivé, le système d’exploitation appelle la fonction DxgkDdiCommitVidPn comme décrit ci-dessus pour les pilotes WDDM 1.2, et il appelle DxgkDdiCommitVidPn une deuxième fois avec un réseau vidéo présent vide (VidPN) dans pCommitVidPn-hFunctionalVidPn> , et aucune des valeurs d’indicateur définies dans pCommitVidPnArg-Flags.>

Cette séquence d’appels en deux parties se produit également lorsque le système reprend après la mise en veille prolongée et que la génération de synchronisation du moniteur doit rester activée. Dans ce cas, le pilote ne doit effectuer aucune action lorsqu’il reçoit le deuxième appel à DxgkDdiCommitVidPn.