Поддержка WDDM для мониторов DisplayPort через USB4

В этой статье описывается, как драйвер WDDM может поддерживать мониторы DisplayPort, подключенные через USB4, начиная с Windows 11 (WDDM 3.0).

Требования

Графический стек Windows должен знать, поддерживает ли драйвер WDDM USB4 на этапе запуска. При запуске система может проверить, поддерживает ли драйвер все необходимые требования, и не запускать драйвер, если он не предлагает такую поддержку, а не узнавать это во время обнаружения горячего подключения.

Драйвер отображения в режиме ядра (KMD) должен соответствовать следующим требованиям:

  1. Он должен быть драйвером WDDM 3.0 или более поздней версии.
  2. Он предоставляет добавленную крышку адаптера для указания поддержки USB4.
  3. Все статические целевые объекты VidPn, предоставляемые драйвером, должны быть сообщены как компоненты питания.
  4. Каждый динамический целевой объект USB4, подключенный к одному статическому целевому объекту, должен быть подключен к одному и тому же маршрутизатору узла; члены USB4_Driver_ID объекта DXGK_CONNECTION_USB4_INFO должны иметь одинаковое значение. В настоящее время подключение USB4 монитора DisplayPort к драйверам WDDM типа Display Only или Indirect Display не поддерживается.

Добавлена крышка драйвера поддержки USB4

Ограничение SupportUsb4Targets было добавлено в структуру DXGK_DISPLAY_DRIVERCAPS_EXTENSION , которую система запрашивает от драйвера во время начала. Только драйверы WDDM 3.0 и более поздних версий должны задать это значение и только в том случае, если драйвер соответствует всем ранее перечисленным требованиям.

Отчет о значениях данных конфигурации DisplayPort для монитора USB4

DXGK_CONNECTION_CHANGE. MonitorConnect. MonitorConnectFlags добавлено поле.

ОС вызывает функцию DXGKDDI_QUERYCONNECTIONCHANGE KMD при обнаружении изменения состояния соединителя. Если монитор DisplayPort подключен к указанному целевому объекту VidPn и подключен к адаптеру USB4 DP-IN, драйвер должен:

  1. Установите флаг DXGK_CONNECTION_CHANGE.MonitorConnectFlags.Usb4DisplayPortMonitor, указывающий, что данный монитор подключен через USB4.
  2. Заполните поля в DXGKARG_QUERYCONNECTIONCHANGE.pUsb4MonitorInfo.

Все статические целевые объекты VidPn сообщаются в качестве компонентов PoFx

Чтобы включить правильное управление питанием между графическими и USB-стеками, драйвер должен сообщать обо всех статических целях VidPn в качестве компонентов PoFx через DxgkDdiQueryAdapterInfo при DXGKARG_QUERYADAPTERINFO.ТипDXGKQAITYPE_NUMPOWERCOMPONENTS или DXGKQAITYPE_POWERCOMPONENTINFO.

Все динамические целевые объекты, созданные из одного статического целевого объекта VidPn

Мониторы USB4, подключенные к динамическим целевым объектам VidPn, поддерживаются, но все целевые объекты USB4 dynamic VidPn, подключенные к статическому целевому объекту VidPn, должны иметь одинаковые USB4_Driver_ID значения, т. е. подключены к одному маршрутизатору узла USB4.

HLK системный тест

Драйвер должен пройти тест поддержки графического драйвера USB4 Systems, добавленный в Hardware Lab Kit (HLK). Этот тест проверяет, что на ноутбуке с USB4 все графические драйверы (iGPU и dGPU) поддерживают функциональность USB4, если они реализуют какие-либо цели.