Condividi tramite


DXGKARG_SUBMITCOMMANDTOHWQUEUE struttura (d3dkmddi.h)

Argomenti usati per inviare un comando alla coda hardware.

Sintassi

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;

Members

[in] hHwQueue

Coda hardware inviata a.

HwQueueProgressFenceId

ID di stato della coda hardware che verrà segnalato quando il Blt presente viene eseguito sulla GPU.

DmaBufferVirtualAddress

Indirizzo virtuale del buffer DMA da eseguire nella GPU.

DmaBufferSize

Dimensioni del buffer DMA da eseguire nella GPU.

DmaBufferPrivateDataSize

Dimensioni dei dati privati del buffer.

pDmaBufferPrivateData

Dati binari passati dalla modalità utente callback DDI pfnSubmitToHwQueueCb, per gli invii di comandi dalla modalità utente o per gli invii in modalità kernel, ad esempio Present Blt, private driver data buffer compilato da DdiPresent.

Importante

Il buffer dei dati del driver privato verrà liberato al ritorno da DxgkDdiSubmitCommandToHwQueue. Ciò è diverso da WDDM 2.0-2.3, dove la durata dei dati del driver privato viene estesa fino al completamento del buffer dei comandi nella GPU.

Flags

Questi verranno impostati su zero per i buffer dei comandi generati dal driver in modalità utente. I buffer dei comandi generati dal driver in modalità kernel DdiPresentToHwQueue avranno il flag Presente impostato su 1.

HwQueueProgressFenceGpuVa

GPU VA (accelerazione video) del recinto che verrà segnalato al completamento del buffer DMA.

HwQueueProgressFenceCpuVa

CPU in modalità kernel va del recinto che verrà segnalato al completamento del buffer DMA.

Se il nodo inviato a ha il limite RingBufferFenceRelease impostato su 0, l'aggiornamento della recinzione viene inserito dal driver in modalità utente come ultima istruzione alla fine del buffer DMA o per gli invii del kernel, in risposta alla chiamata DdiSignalMonitoredFence.

Se il nodo inviato a ha il limite RingBufferFenceRelease impostato su 1, l'aggiornamento della recinzione viene eseguito dopo che il buffer DMA non è più in uso da GPU o CPU. La meccanica esatta dell'aggiornamento della recinzione è fino alla KMD/GPU. Ad esempio, può essere eseguita dall'hardware del processore di gestione del contesto quando si ritira il buffer DMA o dal KMD.

Requisiti

Requisito Valore
Intestazione d3dkmddi.h