Condividi tramite


struttura DXGKARG_SUBMITCOMMANDTOHWQUEUE (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;

Membri

[in] hHwQueue

Coda hardware inviata a.

HwQueueProgressFenceId

ID limite di stato della coda hardware che verrà segnalato quando la Blt presente viene eseguita sulla GPU.

DmaBufferVirtualAddress

Indirizzo virtuale del buffer DMA da eseguire sulla GPU.

DmaBufferSize

Dimensioni del buffer DMA da eseguire sulla GPU.

DmaBufferPrivateDataSize

Dimensioni dei dati privati del buffer.

pDmaBufferPrivateData

Dati binari passati dal callback DDI in modalità utente 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. Questo valore è diverso da WDDM 2.0-2.3, in cui la durata dei dati del driver privato viene estesa fino al completamento del buffer dei comandi nella GPU.

Flags

Questi valori 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 Present 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 limite che verrà segnalato al completamento del buffer DMA.

Se il nodo inviato a ha RingBufferFenceRelease limite 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, dal driver in modalità kernel in risposta alla chiamata DdiSignalMonitoredFence.

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

Fabbisogno

Requisito Valore
intestazione d3dkmddi.h