структура DXGKARG_SUBMITCOMMANDTOHWQUEUE (d3dkmddi.h)
Аргументы, используемые для отправки команды в очередь оборудования.
Синтаксис
typedef struct _DXGKARG_SUBMITCOMMANDTOHWQUEUE {
[in] HANDLE hHwQueue;
UINT64 HwQueueProgressFenceId;
D3DGPU_VIRTUAL_ADDRESS DmaBufferVirtualAddress;
UINT DmaBufferSize;
UINT DmaBufferPrivateDataSize;
VOID *pDmaBufferPrivateData;
DXGK_SUBMITCOMMANDFLAGS Flags;
D3DGPU_VIRTUAL_ADDRESS HwQueueProgressFenceGpuVa;
VOID *HwQueueProgressFenceCpuVa;
} DXGKARG_SUBMITCOMMANDTOHWQUEUE;
Члены
[in] hHwQueue
Очередь оборудования, в которой отправляется.
HwQueueProgressFenceId
Идентификатор ограждения хода выполнения аппаратной очереди, который будет сигнализировать при выполнении запроса Present Blt на GPU.
DmaBufferVirtualAddress
Виртуальный адрес буфера DMA, который будет выполняться в GPU.
DmaBufferSize
Размер буфера DMA, выполняемого на GPU.
DmaBufferPrivateDataSize
Размер частных данных буфера.
pDmaBufferPrivateData
Двоичные данные, передаваемые обратным вызовом DDI пользовательского режима pfnSubmitToHwQueueCb, для отправки команд из пользовательского режима или для отправки в режиме ядра, например Present Blt, буфер данных частного драйвера, заполненный DdiPresent.
Важно!
Буфер данных частного драйвера будет освобожден после возврата из DxgkDdiSubmitCommandToHwQueue. Это отличается от WDDM 2.0-2.3, где время существования данных частного драйвера продлевается до завершения буфера команд на GPU.
Flags
Для буферов команд, созданных драйвером пользовательского режима, они будут равны нулю. Для буферов команд, созданных драйвером режима ядра DdiPresentToHwQueue, флаг Present будет иметь значение 1.
HwQueueProgressFenceGpuVa
GPU VA (ускорение видео) ограждения, которое будет сигнализировать о завершении буфера DMA.
HwQueueProgressFenceCpuVa
ЦП в режиме ядра для забора, который будет сигнализировать о завершении буфера DMA.
Если для узла, отправляемого в , установлено ограничение RingBufferFenceRelease равным 0, обновление ограждения вставляется драйвером пользовательского режима в качестве последней инструкции в конце буфера DMA или драйвером режима ядра в ответ на вызов DdiSignalMonitoredFence.
Если для узла, отправляемого в , установлено ограничение RingBufferFenceRelease равным 1, обновление ограждения выполняется после того, как буфер DMA больше не будет использоваться gpu или ЦП. Точная механика обновления ограждения — до KMD/GPU. Например, это можно сделать с помощью оборудования процессора управления контекстом при снятии с учета буфера DMA или KMD.
Требования
Требование | Значение |
---|---|
Заголовок | d3dkmddi.h |