структура DXGKARG_CREATEHWQUEUE (d3dkmddi.h)
Структура DXGKARG_CREATEHWQUEUE используется с DxgkDdiCreateHwQueue для создания очереди оборудования.
Синтаксис
typedef struct _DXGKARG_CREATEHWQUEUE {
HANDLE hHwQueue;
D3DDDI_CREATEHWQUEUEFLAGS Flags;
UINT PrivateDriverDataSize;
VOID *pPrivateDriverData;
D3DKMT_HANDLE hHwQueueProgressFence;
VOID *HwQueueProgressFenceCPUVirtualAddress;
D3DGPU_VIRTUAL_ADDRESS HwQueueProgressFenceGPUVirtualAddress;
} DXGKARG_CREATEHWQUEUE;
Члены
hHwQueue
[in/out] При входных данных Dxgkrnlв очередь оборудования. В выходных данных дескриптор драйвера в очередь оборудования.
Flags
[in] Структура D3DDDI_CREATEHWQUEUEFLAGS, содержащая флаги создания очереди.
PrivateDriverDataSize
[in] Размер в байтах данных частного драйвера, на которые pPrivateDriverData.
pPrivateDriverData
[in/out] Указатель на данные частного драйвера, передаваемые
hHwQueueProgressFence
[in] Обработка объекта синхронизации GPU, созданного ОС для этой очереди оборудования. Забор хода выполнения используется для синхронизации завершения буфера DMA в этой очереди оборудования. См. примечания.
HwQueueProgressFenceCPUVirtualAddress
[in] Виртуальный адрес ЦП в режиме ядра, который можно использовать для чтения текущего сигнального значения забора хода выполнения очереди оборудования.
HwQueueProgressFenceGPUVirtualAddress
[in] Виртуальный адрес GPU, который можно использовать для чтения или записи значения забора хода выполнения аппаратной очереди. Значение забора хода выполнения очереди должно монотонно увеличиваться при каждой новой отправке в очередь оборудования. Инструкции GPU по обновлению ограждения хода выполнения очереди должны быть вставлены драйвером пользовательского режима в конце отслеживаемого буфера DMA.
Замечания
Для отправки ядра HWQueues ОС будет выделять забор хода выполнения в качестве собственного типа забора на gpu, поддерживающих собственные ограждения. При установке флага
При создании собственного забора для HWQueue ОС также задается D3DKMT_CREATEHWQUEUE::Flags.NativeProgressFence значение TRUE, чтобы среда выполнения также знала, что забор хода выполнения HWQueue был выделен в качестве собственного забора.
Для отправки пользователем HWQueues ОС выделяет свой забор хода выполнения в качестве собственного забора в DxgkDdiCreateHwQueueForUserModeSubmission() по определению.
Примечание о совместимости драйверов: Dxgkrnl будет записываться только в поле hHwQueueNativeProgressFence на драйверах, поддерживающих NativeGpuFence. Это гарантирует, что ОС будет ссылаться только на это поле при разработке и будущих драйверах, скомпилированных с этим обновленным заголовком. KMD будет читать это поле только в том случае, если DXGKARG_CREATEHWQUEUE. Flags.NativeProgressFence имеет значение TRUE. Это гарантирует, что KMD ссылается только на это поле на последние сборки ОС, поддерживающие собственный забор хода выполнения и обновленный заголовок.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 1703 (WDDM 2.2) |
заголовка | d3dkmddi.h |