Prise en charge de WDDM pour les moniteurs DisplayPort sur USB4

Cet article explique comment un pilote WDDM peut prendre en charge les moniteurs DisplayPort connectés via USB4 à partir de Windows 11 (WDDM 3.0).

Configuration requise

La pile graphique Windows doit savoir qu’un pilote WDDM prend en charge USB4 au moment du démarrage. Au moment du démarrage, le système peut vérifier si un pilote prend en charge toutes les exigences nécessaires et faire échouer le démarrage du pilote s’il n’offre pas cette prise en charge plutôt que de le savoir au moment de la détection de la prise à chaud.

Le pilote d’affichage en mode noyau (KMD) doit répondre aux exigences suivantes :

  1. Il doit s’agir d’un pilote WDDM 3.0 ou ultérieur.
  2. Il expose un bouchon d’adaptateur ajouté pour indiquer la prise en charge d’USB4.
  3. Toutes les cibles VidPn statiques exposées par le pilote doivent être signalées en tant que composants d’alimentation.
  4. Chaque cible dynamique USB4 connectée à la même cible statique doit être connectée au même routeur hôte ; c’est-à-dire que les membres USB4_Driver_ID de leur DXGK_CONNECTION_USB4_INFO doivent avoir la même valeur. Actuellement, la connexion d’un moniteur DisplayPort USB4 aux pilotes WDDM Display Only ou Indirect Display n’est pas prise en charge.

Ajout de la limite de pilote de prise en charge USB4

La limite SupportUsb4Targets a été ajoutée à la structure DXGK_DISPLAY_DRIVERCAPS_EXTENSION que le système interroge à partir du pilote au début. Seuls les pilotes WDDM 3.0 et versions ultérieures doivent définir cette valeur et uniquement si le pilote répond à toutes les exigences répertoriées précédemment.

Création de rapports sur les valeurs de données de configuration DisplayPort du moniteur USB4

DXGK_CONNECTION_CHANGE. MonitorConnect. MonitorConnectFlags le champ a été ajouté.

Le système d’exploitation appelle la fonction DXGKDDI_QUERYCONNECTIONCHANGE de KMD chaque fois qu’un connecteur status modification est détecté. Lorsqu’un moniteur DisplayPort a été connecté à une cible VidPn spécifiée et qu’il est connecté à un adaptateur USB4 DP-IN, le pilote doit :

  1. Définissez le DXGK_CONNECTION_CHANGE.Indicateur MonitorConnectFlags.Usb4DisplayPortMonitor pour indiquer que ce moniteur est un moniteur connecté à USB4.
  2. Renseignez les champs dans DXGKARG_QUERYCONNECTIONCHANGE.pUsb4MonitorInfo.

Toutes les cibles VidPn statiques signalées en tant que composants PoFx

Pour permettre une gestion correcte de l’alimentation entre les piles graphiques et USB, le pilote doit signaler toutes les cibles VidPn statiques en tant que composants PoFx via DxgkDdiQueryAdapterInfo quand DXGKARG_QUERYADAPTERINFO.TypeDXGKQAITYPE_NUMPOWERCOMPONENTS ou DXGKQAITYPE_POWERCOMPONENTINFO.

Toutes les cibles dynamiques créées à partir de la même cible VidPn statique

Les moniteurs USB4 connectés à des cibles VidPn dynamiques sont pris en charge, mais toutes les cibles VidPn dynamiques USB4 connectées à une cible VidPn statique doivent avoir les mêmes valeurs de USB4_Driver_ID, c’est-à-dire connectées au même routeur hôte USB4.

Test HLK système

Le pilote doit réussir le test usb4 Systems Graphics Driver Support ajouté au Kit de laboratoire matériel (HLK). Ce test vérifie que sur un ordinateur portable équipé d’usb4, tous les pilotes graphiques (iGPU et dGPU) prennent en charge les fonctionnalités USB4 s’ils exposent des cibles.