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

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

Синтаксис

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;
#if ...
      UINT Reserved : 20;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 25;
#elif
      UINT Reserved : 27;
#else
      UINT Reserved : 30;
#endif
    };
    UINT Value;
  };
} DXGK_VIDSCHCAPS;

Члены

MultiEngineAware

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

Задание этого элемента эквивалентно установке первого бита 32-разрядного элемента Value (0x00000001).

VSyncPowerSaveAware

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

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

Задание этого элемента эквивалентно установке второго бита 32-разрядного элемента Value (0x00000002).

Поддерживается начиная с Windows Server 2008 и Windows Vista с пакетом обновления 1 (SP1).

PreemptionAware

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

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

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

Примечание

Если параметр PreemptionAware имеет значение 1, члену MultiEngineAware также должно быть присвоено значение 1. Если параметр PreemptionAware имеет значение 1, а MultiEngineAware равен нулю, операционная система остановит процесс инициализации драйвера и вернет код сбоя.

Задание этого элемента эквивалентно установке третьего бита 32-разрядного элемента Value (0x00000004).

Поддерживается начиная с Windows 8.

NoDmaPatching

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

Примечание

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

Если параметр NoDmaPatching имеет значение 1 (TRUE), драйвер отключает обнаружение утечки, а поведение разбиения буфера DMA будет таким же, как и в Windows 7.

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

Примечание

Если параметр NoDmaPatching имеет значение 1, то для членов PreemptionAware и MultiEngineAware также должно быть задано значение 1. Если параметр NoDmaPatching имеет значение 1, а PreemptionAware или MultiEngineAware равны нулю, операционная система остановит процесс инициализации драйвера и вернет код сбоя.

Задание этого элемента эквивалентно установке четвертого бита 32-разрядного элемента Value (0x0000008).

Поддерживается начиная с Windows 8.

CancelCommandAware

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

Если параметр CancelCommandAware имеет значение 1 (TRUE), драйвер поддерживает очистку ресурсов, связанных с отмененным пакетом DMA. Если свойство CancelCommandAware равно нулю (FALSE), драйвер не поддерживает очистку ресурсов.

Примечание

Если cancelCommandAware имеет значение 1, члену MultiEngineAware также должно быть присвоено значение 1. Если cancelCommandAware имеет значение 1, а MultiEngineAware равно нулю, операционная система возвращает код сбоя.

Задание этого элемента эквивалентно установке пятого бита 32-разрядного элемента Value (0x0000010).

Поддерживается начиная с Windows 8.

No64BitAtomics

Значение Значение
TRUE Указывает, что GPU может обновлять только 32-разрядные значения атомарным образом. В этом случае ОС будет обрабатывать вариант обхода ограждения автоматически, однако она налагает ограничение на то, что незавершенные значения забора ожидания и сигнала не могут быть больше UINT_MAX/2, кроме последнего значения сигнального забора.
Ложь. Указывает, что GPU может обновлять 64-разрядные значения атомарно, как видимые ЦП.

Поддерживается начиная с Windows 10.

LowIrqlPreemptCommand

HwQueuePacketCap

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

NativeGpuFence

Reserved

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

Value

Член объединения, который DXGK_VIDSCHCAPS содержит, который может содержать 32-разрядное значение, определяющее возможности планирования GPU, которые может поддерживать драйвер.

Требования

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

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

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDetext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender