Поделиться через


Поддержка гибридных систем DDI и dList DLL

Поддержка ресурсов между адаптерами в гибридной системе появилась начиная с Windows 8.1 (WDDM 1.3). Доступны следующие функции, структуры и перечисления в пользовательском режиме и режиме ядра:

Функция сканирования ресурсов между адаптерами (CASO) появилась начиная с Windows Server 2022 (WDDM 2.9). Для CASO была добавлена следующая дополнительная поддержка:

Примечание

В Windows Server 2022 (WDDM 2.9) и более поздних версиях ОС драйвер отображения пользовательского режима (UMD) в гибридной системе должен поддерживать DDI pfnQueryDListForApplication2 , который заменяет pfnQueryDListForApplication1, независимо от того, реализуется ли поддержка CASO.

Настройка библиотеки DLL dList

DList — это список приложений, которым требуются общие поверхности между адаптерами для высокопроизводительной отрисовки на дискретном GPU.

Дискретный GPU UMD устанавливает отдельную небольшую библиотеку DLL dList , которая экспортирует функцию pfnQueryDListForApplication2 . Сама операционная система не определяет, на каком GPU должно работать приложение. Вместо этого среда выполнения Direct3D вызывает pfnQueryDListForApplication2 не более одного раза во время инициализации Direct3D.

Драйвер должен запрашивать актуальный список сведений о процессе, чтобы определить, требуется ли для процесса повышенная производительность дискретного GPU вместо интегрированного GPU.

Для оптимальной производительности библиотека DLL должна:

  • Размер не более 200 КБ
  • Сведите выделения к минимуму
  • Будьте в состоянии возвращать данные из pfnQueryDListForApplication2 за 4 мс.

Регистрация библиотеки DLL dList

UMD предоставляет имя небольшой библиотеки DLL dList в СВОЕМ INF-файле в разделах реестра UserModeDListDriverName и UserModeDListDriverNameWow, последняя — в записи реестра Wow64 . Ниже приведен пример INF-кода:

[Xxx_SoftwareDeviceSettings]
...
HKR,, UserModeDListDriverName,    %REG_MULTI_SZ%, dlistumd.dll
HKR,, UserModeDListDriverNameWow, %REG_MULTI_SZ%, dlistumdwow.dll