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


структура 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

Идентификатор забора хода выполнения аппаратной очереди, который будет сигнализировать при выполнении текущего Blt на GPU.

DmaBufferVirtualAddress

Виртуальный адрес буфера DMA, который будет выполняться на GPU.

DmaBufferSize

Размер буфера DMA, выполняемого на GPU.

DmaBufferPrivateDataSize

Размер частных данных буфера.

pDmaBufferPrivateData

Двоичные данные, передаваемые в пользовательском режиме DDI обратного вызова pfnSubmitToHwQueueCb, для отправки команд из пользовательского режима или для отправки в режиме ядра, таких как Present Blt, буфер данных частного драйвера, заполненный DdiPresent.

Важный

Буфер данных частного драйвера будет освобожден после возврата из DxgkDdiSubmitCommandToHwQueue. Это отличается от WDDM 2.0-2.3, где время существования данных частного драйвера распространяется до завершения буфера команд на GPU.

Flags

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

HwQueueProgressFenceGpuVa

GPU VA (ускорение видео) забора, который будет сигнализировать о завершении этого буфера DMA.

HwQueueProgressFenceCpuVa

ЦП режима ядра ЦП забора, который будет сигнализировать после завершения этого буфера DMA.

Если узел, отправляемый в RingBufferFenceRelease, имеет значение 0, обновление забора вставляется драйвером пользовательского режима в качестве последней инструкции в конце буфера DMA или для отправки ядра драйвером режима ядра в ответ на вызов DdiSignalMonitoredFence.

Если узел, отправляемый в RingBufferFenceRelease, ограничение имеет значение 1, обновление забора выполняется после того, как буфер DMA больше не используется GPU или ЦП. Точные механики обновления забора до KMD/GPU. Например, это можно сделать с помощью оборудования обработчика управления контекстом при выходе из буфера DMA или KMD.

Требования

Требование Ценность
заголовка d3dkmddi.h