Compartilhar via


estrutura DXGKARG_CREATEHWQUEUE (d3dkmddi.h)

A estrutura DXGKARG_CREATEHWQUEUE é usada com DxgkDdiCreateHwQueue para criar uma fila de hardware.

Sintaxe

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

Membros

hHwQueue

[entrada/saída] Na entrada, identificador do Dxgkrnlpara a fila de hardware. Na saída, o identificador do driver para a fila de hardware.

Flags

[in] Uma estrutura D3DDDI_CREATEHWQUEUEFLAGS que contém os sinalizadores de criação da fila.

PrivateDriverDataSize

[in] Tamanho em bytes dos dados do driver privado que pPrivateDriverData aponta para.

pPrivateDriverData

[entrada/saída] Ponteiro para os dados do driver privado que foram passados pela função de pfnCreateHwContextCb do driver no modo de usuário. Como pPrivateDriverData é um parâmetro interno, o KMD também pode retornar dados privados ao UMD.

hHwQueueProgressFence

[in] Manipule para o objeto de sincronização de GPU criado pelo sistema operacional para essa fila de hardware. A cerca de progresso é usada para sincronizar a conclusão do buffer de DMA nessa fila de hardware. Consulte Comentários.

HwQueueProgressFenceCPUVirtualAddress

[in] Endereço virtual da CPU no modo kernel que pode ser usado para ler o valor sinalizado no momento da cerca de progresso da fila de hardware.

HwQueueProgressFenceGPUVirtualAddress

[in] Endereço virtual gpu que pode ser usado para ler ou gravar o valor da cerca de progresso da fila de hardware. O valor da cerca de progresso da fila deve aumentar monotonicamente a cada novo envio para a fila de hardware. As instruções de GPU para atualizar a cerca de progresso da fila devem ser inseridas pelo driver de modo de usuário no final do buffer de DMA que está sendo rastreado.

Observações

Para hwqueues de envio de kernel, o sistema operacional alocará a cerca de progresso como um tipo de cerca nativa em GPUs que dão suporte a cercas nativas. Quando o sinalizador NativeProgressFence for definido, o DxgkDdiCreateHwQueue do KMD deverá ler o campo hHwQueueNativeProgressFence correspondente que especifica o identificador do driver para o objeto de cerca nativo criado anteriormente em DxgkDdiCreateNativeFence . Se o sinalizador NativeProgressFence for FALSE, a cerca de progresso desse HWQueue será um objeto de cerca monitorado regular e o KMD deverá ler o campo herdado hHwQueueProgressFence como antes.

Ao criar uma cerca nativa para um HWQueue, o sistema operacional também definirá D3DKMT_CREATEHWQUEUE::Flags.NativeProgressFence como TRUE, de modo que o runtime também esteja ciente de que a cerca de progresso do HWQueue foi alocada como uma cerca nativa.

Para hwqueues de envio de usuário, o SISTEMA Operacional alocará sua cerca de progresso como uma cerca nativa em DxgkDdiCreateHwQueueForUserModeSubmission() por definição.

Observação sobre a compatibilidade do driver: Dxgkrnl gravará apenas no campo hHwQueueNativeProgressFence em drivers que dão suporte ao limite de NativeGpuFence. Isso garante que o sistema operacional faça referência apenas a esse campo em drivers futuros e em desenvolvimento compilados com esse cabeçalho atualizado. O KMD só lerá este campo se DXGKARG_CREATEHWQUEUE. Flags.NativeProgressFence é TRUE. Isso garante que o KMD faça referência apenas a esse campo nos builds mais recentes do sistema operacional que dão suporte à cerca de progresso nativa e a esse cabeçalho atualizado.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10, versão 1703 (WDDM 2.2)
cabeçalho d3dkmddi.h

Consulte também

DxgkDdiCreateHwQueue