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


структура DXGK_VIDSCHCAPS (d3dkmddi.h)

Структура DXGK_VIDSCHCAPS имеет флаги битового поля, которые определяют возможности планирования GPU, которые может поддерживать драйвер мини-порта (KMD) режима ядра.

Синтаксис

typedef struct _DXGK_VIDSCHCAPS {
  union {
    struct {
      UINT MultiEngineAware : 1;
      UINT VSyncPowerSaveAware : 1;
      UINT PreemptionAware : 1;
      UINT NoDmaPatching : 1;
      UINT CancelCommandAware : 1;
      UINT No64BitAtomics : 1;
      UINT LowIrqlPreemptCommand : 1;
      UINT HwQueuePacketCap : 4;
      UINT NativeGpuFence : 1;
      UINT OptimizedNativeFenceSignaledInterrupt : 1;
#if ...
      UINT Reserved : 19;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 25;
#elif
      UINT Reserved : 27;
#else
      UINT Reserved : 30;
#endif
    };
    UINT Value;
  };
} DXGK_VIDSCHCAPS;

Члены

MultiEngineAware

Значение UINT, указывающее, поддерживает ли драйвер создание и уничтожение контекста устройства (с помощью функций DxgkDdiCreateContext и DxgkDdiDesphereContext ) и использование контекста устройства (с помощью функций DxgkDdiPresent и DxgkDdiRender ). Если драйвер не поддерживает создание контекста, при каждом вызове драйвера, который передает дескриптор контексту, подсистема графического ядра Microsoft DirectX заменяет дескриптор контекста дескриптором устройства.

VSyncPowerSaveAware

Значение UINT, указывающее, поддерживает ли драйвер функции энергосбережения вертикальной синхронизации.

Если для VSyncPowerSaveAware задано значение 1 (TRUE), ОС может сэкономить питание, отключив и включив прерывание вертикальной синхронизации, возникающее при использовании некоторых приложений. Если VSyncPowerSaveAware имеет значение 0 (FALSE), ОС никогда не отключит прерывание вертикальной синхронизации для приложений, которые могут вызвать прерывание вертикальной синхронизации. Поддерживается начиная с Windows Server 2008 и Windows Vista с пакетом обновления 1 (SP1).

PreemptionAware

Значение UINT, указывающее, поддерживает ли драйвер политику вытеснения GPU Windows 8 и более поздних версий Windows. При использовании этой политики ОС всегда выдает запросы на вытеснение к GPU, прежде чем инициировать процесс обнаружения и восстановления времени ожидания (TDR). Поддерживается начиная с Windows 8.

Если параметр PreemptionAware имеет значение 1 (TRUE), драйвер поддерживает политику вытеснения Windows 8 и более поздних версий Windows. Обратите внимание, что если параметр PreemptionAware имеет значение 1, то члену MultiEngineAware также должно быть присвоено значение 1. Если параметр PreemptionAware имеет значение 1, а параметр MultiEngineAware имеет значение 0, ОС остановит процесс инициализации драйвера и возвратит код сбоя.

Если параметр PreemptionAware имеет значение 0 (FALSE), драйвер поддерживает политику вытеснения в Windows 7. При использовании этой политики ОС может не выдавать запросы на вытеснение, в то время как потенциально длительные операции выполняются на GPU. В результате эти запросы GPU не вытесняются до запуска процесса TDR. Это может привести к повторному сбросу gpu процесса TDR, что может привести к системной stop-ошибке.

NoDmaPatching

Значение UINT, указывающее, отключает ли драйвер обнаружение утечек для буферов DMA, разделенных на несколько частей. Это обнаружение выполняется после вызова функции DxgkDdiPatch драйвера для назначения или исправления физических адресов для каждой части буфера DMA. Поддерживается начиная с Windows 8.

Устройства отображения, поддерживающие виртуальные адреса, могут перепрограммировать виртуальный адрес в новое расположение видеопамяти без необходимости исправлять значение адреса буфера DMA. Для таких типов устройств отображения драйвер должен задать для параметра NoDmaPatching значение 1.

Если параметр NoDmaPatching имеет значение 1 (TRUE), драйвер отключает обнаружение утечек, а поведение буфера DMA выполняется так же, как и в Windows 7. Обратите внимание, что если параметр NoDmaPatching имеет значение 1, элементы PreemptionAware и MultiEngineAware также должны иметь значение 1. Если для параметра NoDmaPatching задано значение 1, а для PreemptionAware или MultiEngineAware задано значение 0, ОС остановит процесс инициализации драйвера и вернет код сбоя.

Если параметр NoDmaPatching имеет значение 0 (FALSE), драйвер включает обнаружение утечек для исправленных адресов буфера DMA. Ос выполняет обнаружение утечек перед вызовом функции DxgkDdiPatch драйвера.

CancelCommandAware

Значение UINT, указывающее, поддерживает ли драйвер очистку внутренних ресурсов (с помощью функции DxgkDdiCancelCommand ) после удаления команды из очереди оборудования. Поддерживается начиная с Windows 8.

Если для cancelCommandAware задано значение 1 (TRUE), драйвер поддерживает очистку ресурсов, связанных с отмененным пакетом DMA. Обратите внимание, что если cancelCommandAware имеет значение 1, для элемента MultiEngineAware также должно быть установлено значение 1. Если для CancelCommandAware задано значение 1, а для MultiEngineAware задано значение 0, ОС возвращает код сбоя.

Если для cancelCommandAware задано значение 0 (FALSE), драйвер не поддерживает очистку ресурсов.

No64BitAtomics

Если для параметра No64BitAtomics задано значение 1 (TRUE), драйвер указывает, что GPU может обновлять только 32-разрядные значения атомарно. В этом случае ОПЕРАЦИОННая система обработает вариант обхода ограждения автоматически, однако будет наложено ограничение на то, что ожидающие и сигнальные значения ограждения не могут быть больше UINT_MAX/2, кроме последнего сигнального значения ограждения. Поддерживается начиная с Windows 10.

Если для No64BitAtomics задано значение 0 (FALSE), драйвер указывает, что GPU может обновлять 64-разрядные значения атомарно, как видимые ЦП.

LowIrqlPreemptCommand

HwQueuePacketCap

Максимальное число пакетов DMA, которые можно поместить в очередь на узел.

NativeGpuFence

Если ОС включила функцию DXGK_FEATURE_NATIVE_FENCE , драйвер может объявить о поддержке собственных функций ограждения GPU во время инициализации адаптера, установив для бита NativeGpuFence значение 1. Эта возможность предоставляется в пользовательском режиме через соответствующий бит D3DKMT_WDDM_3_1_CAPS::NativeGpuFenceSupported . Дополнительные сведения см. в разделе Собственные объекты ограждения GPU. Доступно начиная с Windows 11 версии 22H2 (WDDM 3.1).

OptimizedNativeFenceSignaledInterrupt

Драйвер задает значение TRUE, если при сигнальном прерывании GPU может указать в DXGKARGCB_NOTIFY_INTERRUPT_DATA::NativeFenceSignaled только дескриптор KMD запущенной очереди HWQueue. Дополнительные сведения см. в разделе Собственные объекты ограждения GPU. Доступно начиная с Windows 11 версии 22H2 (WDDM 3.1).

Reserved

Этот элемент зарезервирован и должен иметь нулевое значение.

Value

Альтернативный способ доступа к флагам битовых полей в объединении.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Верхняя часть d3dkmddi.h (включая D3dkmddi.h)

См. также раздел

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDetextContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender