Compartir a través de


estructura DXGKARG_CREATEHWQUEUE (d3dkmddi.h)

La estructura DXGKARG_CREATEHWQUEUE se usa con dxgkDdiCreateHwQueue para crear una cola de hardware.

Sintaxis

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

Miembros

hHwQueue

[in/out] En la entrada, Dxgkrnlidentificador de la cola de hardware. En la salida, el controlador controla la cola de hardware.

Flags

[in] Estructura D3DDDI_CREATEHWQUEUEFLAGS que contiene las marcas de creación de colas.

PrivateDriverDataSize

[in] Tamaño en bytes de los datos del controlador privado a los que pPrivateDriverData apunta.

pPrivateDriverData

[in/out] Puntero a los datos del controlador privado que pasó el controlador en modo de usuario función pfnCreateHwContextCb. Dado que pPrivateDriverData es un parámetro de salida, KMD también puede devolver datos privados al UMD.

hHwQueueProgressFence

[in] Controle el objeto de sincronización de GPU creado por el sistema operativo para esta cola de hardware. La barrera de progreso se usa para sincronizar la finalización del búfer DMA en esta cola de hardware. Vea comentarios.

HwQueueProgressFenceCPUVirtualAddress

[in] Dirección virtual de CPU en modo kernel que se puede usar para leer el valor actualmente señalado de la barrera de progreso de la cola de hardware.

HwQueueProgressFenceGPUVirtualAddress

[in] Dirección virtual de GPU que se puede usar para leer o escribir el valor de la barrera de progreso de la cola de hardware. El valor de barrera de progreso de la cola debe aumentar de forma monotónica con cada nuevo envío a la cola de hardware. Las instrucciones de GPU para actualizar la barrera de progreso de la cola deben insertarse mediante el controlador en modo de usuario al final del búfer DMA que se está realizando el seguimiento.

Observaciones

Para el envío de kernel HWQueues, el sistema operativo asignará la barrera de progreso como un tipo de barrera nativa en GPU que admiten barreras nativas. Cuando se establece la marca nativeProgressFence , el DxgkDdiCreateHwQueue debe leer el hHwQueueNativeProgressFence de KMD que especifica el identificador del controlador para el objeto de barrera nativo creado anteriormente en DxgkDdiCreateNativeFence. Si la marca NativeProgressFence es FALSE, esta barrera de progreso de HWQueue es un objeto de barrera supervisado normal y KMD debe leer el campo heredado hHwQueueProgressFence como antes.

Al crear una barrera nativa para un HWQueue, el sistema operativo también establecerá D3DKMT_CREATEHWQUEUE::Flags.NativeProgressFence en TRUE, de modo que el tiempo de ejecución también tenga en cuenta que la barrera de progreso de HWQueue se asignó como una barrera nativa.

Para el envío de usuarios HWQueues, el sistema operativo asignará su barrera de progreso como una barrera nativa en DxgkDdiCreateHwQueueForUserModeSubmission() por definición.

Nota sobre la compatibilidad del controlador: Dxgkrnl solo escribirá en el campo hHwQueueNativeProgressFence en controladores que admiten el límite NativeGpuFence. Esto garantiza que el sistema operativo solo hará referencia a este campo en los controladores en desarrollo y futuros compilados con este encabezado actualizado. KMD solo leerá este campo si DXGKARG_CREATEHWQUEUE. Flags.NativeProgressFence es TRUE. Esto garantiza que KMD solo haga referencia a este campo en las compilaciones más recientes del sistema operativo que admiten la barrera de progreso nativa y este encabezado actualizado.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10, versión 1703 (WDDM 2.2)
encabezado de d3dkmddi.h

Consulte también

DxgkDdiCreateHwQueue