Suporte do WDDM para monitores DisplayPort por USB4

Este artigo descreve como um driver WDDM pode dar suporte a monitores DisplayPort conectados por USB4 a partir de Windows 11 (WDDM 3.0).

Requisitos

A pilha de elementos gráficos do Windows precisa saber que um driver WDDM dá suporte a USB4 na hora de início. Na hora de início, o sistema pode verificar se um driver dá suporte a todos os requisitos necessários e iniciar o driver de falha se ele não oferecer esse suporte em vez de descobrir no momento da detecção do plug-quente.

O KMD (driver de exibição do modo kernel) deve atender aos seguintes requisitos:

  1. Deve ser um driver WDDM 3.0 ou superior.
  2. Ele expõe um limite de adaptador adicionado para indicar o suporte a USB4.
  3. Todos os destinos VidPn estáticos expostos pelo driver precisam ser relatados como componentes de energia.
  4. Cada destino dinâmico USB4 conectado ao mesmo destino estático deve estar conectado ao mesmo roteador de host; que são os membros USB4_Driver_ID do DXGK_CONNECTION_USB4_INFO devem ter o mesmo valor. Atualmente, não há suporte para a conexão de um monitor DisplayPort USB4 aos drivers WDDM somente exibição ou indireto.

Adição da tampa do driver de suporte USB4

O limite SupportUsb4Targets foi adicionado à estrutura DXGK_DISPLAY_DRIVERCAPS_EXTENSION que o sistema consulta do driver na hora de início. Somente os drivers WDDM 3.0 e posteriores devem definir esse valor e somente se o driver atender a todos os requisitos listados anteriormente.

Relatório USB4 monitor DisplayPort Valores de dados de configuração

O DXGK_CONNECTION_CHANGE. MonitorConnect. MonitorConnectFlags campo foi adicionado.

O sistema operacional chama a função DXGKDDI_QUERYCONNECTIONCHANGE do KMD sempre que um conector status alteração é detectada. Quando um monitor DisplayPort tiver sido conectado a um destino VidPn especificado e estiver conectado a um adaptador DP-IN USB4, o driver deverá:

  1. Defina o DXGK_CONNECTION_CHANGE.MonitorConnectFlags.Usb4DisplayPortMonitor sinalizador para indicar que esse monitor é um monitor conectado a USB4.
  2. Conclua os campos em DXGKARG_QUERYCONNECTIONCHANGE.pUsb4MonitorInfo.

Todos os destinos VidPn estáticos sendo relatados como componentes PoFx

Para habilitar o gerenciamento de energia correto entre os gráficos e as pilhas USB, o driver deve relatar todos os destinos VidPn estáticos como componentes PoFx por meio de DxgkDdiQueryAdapterInfo quando DXGKARG_QUERYADAPTERINFO.O tipo é DXGKQAITYPE_NUMPOWERCOMPONENTS ou DXGKQAITYPE_POWERCOMPONENTINFO.

Todos os destinos dinâmicos criados com base no mesmo destino VidPn estático

Há suporte para monitores USB4 conectados a destinos VidPn dinâmicos, mas todos os destinos VidPn dinâmicos USB4 conectados a um destino VidPn estático devem ter os mesmos valores de USB4_Driver_ID, ou seja, conectados ao mesmo roteador de host USB4.

Teste de HLK do sistema

O driver deve passar no teste suporte ao driver de elementos gráficos usb4 adicionado ao HLK (Hardware Lab Kit). Este teste verifica se em um laptop com USB4 todos os drivers gráficos (iGPU e dGPU) dão suporte à funcionalidade USB4 se eles expõem quaisquer destinos.