struttura DXGKARG_CREATEHWQUEUE (d3dkmddi.h)

La struttura DXGKARG_CREATEHWQUEUE viene usata con DxgkDdiCreateHwQueue per creare una coda hardware.

Sintassi

typedef struct _DXGKARG_CREATEHWQUEUE {
  HANDLE                    hHwQueue;
  D3DDDI_CREATEHWQUEUEFLAGS Flags;
  UINT                      PrivateDriverDataSize;
  VOID                      *pPrivateDriverData;
  D3DKMT_HANDLE             hHwQueueProgressFence;
  VOID                      *HwQueueProgressFenceCPUVirtualAddress;
  D3DGPU_VIRTUAL_ADDRESS    HwQueueProgressFenceGPUVirtualAddress;
} DXGKARG_CREATEHWQUEUE;

Membri

hHwQueue

[in/out] All'input, Dxgkrnlhandle alla coda hardware. In caso di output, l'handle del driver viene gestito nella coda hardware.

Flags

[in] Struttura D3DDDI_CREATEHWQUEUEFLAGS contenente i flag di creazione della coda.

PrivateDriverDataSize

[in] Dimensioni in byte dei dati del driver privato a cui pPrivateDriverData punta.

pPrivateDriverData

[in/out] Puntatore ai dati del driver privato passati dalla funzione di pfnCreateHwContextCb del driver in modalità utente. Poiché pPrivateDriverData è un parametro in uscita, il KmD può anche restituire dati privati alla messaggistica unificata.

hHwQueueProgressFence

[in] Handle per l'oggetto di sincronizzazione GPU creato dal sistema operativo per questa coda hardware. Il limite di stato viene usato per sincronizzare il completamento del buffer DMA in questa coda hardware. Vedere la sezione Osservazioni.

HwQueueProgressFenceCPUVirtualAddress

[in] Indirizzo virtuale DELLA CPU in modalità kernel che può essere usato per leggere il valore attualmente segnalato del limite di stato della coda hardware.

HwQueueProgressFenceGPUVirtualAddress

[in] Indirizzo virtuale GPU che può essere usato per leggere o scrivere il valore del limite di stato della coda hardware. Il valore di isolamento dello stato della coda deve aumentare in modo monotonico con ogni nuovo invio alla coda hardware. Le istruzioni GPU per aggiornare il limite di stato della coda devono essere inserite dal driver in modalità utente alla fine del buffer DMA monitorato.

Osservazioni

Per gli HWQueue per l'invio del kernel, il sistema operativo allocherà lo stato di avanzamento come tipo di isolamento nativo nelle GPU che supportano recinzioni native. Quando viene impostato il flag di NativeProgressFence , il campo DxgkDdiCreateHwQueue deve leggere il corrispondente hHwQueueNativeProgressFence che specifica l'handle del driver per l'oggetto recinto nativo creato in precedenza in DxgkDdiCreateNativeFence. Se il flag NativeProgressFence è FALSE, questo recinto di stato di HWQueue è un normale oggetto recinto monitorato e kmD deve leggere il legacy hHwQueueProgressFence campo come prima.

Quando si crea un recinto nativo per un oggetto HWQueue, il sistema operativo imposta anche D3DKMT_CREATEHWQUEUE::Flags.NativeProgressFence su TRUE, in modo che il runtime sia anche consapevole che lo stato di avanzamento di HWQueue è stato allocato come limite nativo.

Per l'invio degli utenti HWQueues, il sistema operativo allocherà lo stato di avanzamento come limite nativo in DxgkDdiCreateHwQueueForUserModeSubmission() per definizione.

Nota sulla compatibilità dei driver: dxgkrnl scriverà solo nel campo hHwQueueNativeProgressFence sui driver che supportano il limite NativeGpuFence . In questo modo, il sistema operativo farà riferimento solo a questo campo sui driver in fase di sviluppo e futuri compilati con questa intestazione aggiornata. KmD leggerà questo campo solo se DXGKARG_CREATEHWQUEUE. Flags.NativeProgressFence è TRUE. In questo modo, il kmD fa riferimento solo a questo campo nelle build più recenti del sistema operativo che supportano il limite di avanzamento nativo e questa intestazione aggiornata.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 1703 (WDDM 2.2)
intestazione d3dkmddi.h

Vedere anche

DxgkDdiCreateHwQueue