Compartilhar via


estrutura DXGKARG_SUBMITCOMMANDTOHWQUEUE (d3dkmddi.h)

Argumentos usados para enviar um comando para a fila de hardware.

Sintaxe

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;

Membros

[in] hHwQueue

Fila de hardware que está sendo enviada.

HwQueueProgressFenceId

ID de limite de progresso da fila de hardware que será sinalizada quando o Blt Presente for feito na GPU.

DmaBufferVirtualAddress

O endereço virtual do buffer de DMA a ser executado na GPU.

DmaBufferSize

O tamanho do buffer de DMA a ser executado na GPU.

DmaBufferPrivateDataSize

O tamanho dos dados privados do buffer.

pDmaBufferPrivateData

Dados binários passados pelo retorno de chamada DDI do modo de usuário pfnSubmitToHwQueueCb, para envios de comando do modo de usuário ou para envios no modo kernel, como Present Blt, buffer de dados de driver privado preenchido por DdiPresent.

Importante

O buffer de dados do driver privado será liberado após o retorno de DxgkDdiSubmitCommandToHwQueue. Isso é diferente do WDDM 2.0-2.3, em que o tempo de vida dos dados do driver privado é estendido até que o buffer de comando seja concluído na GPU.

Flags

Eles serão definidos como zero para buffers de comando gerados pelo driver de modo de usuário. Os buffers de comando gerados pelo driver de modo kernel DdiPresentToHwQueue terão o sinalizador Present definido como 1.

HwQueueProgressFenceGpuVa

GPU VA (aceleração de vídeo) da cerca que será sinalizada após a conclusão desse buffer de DMA.

HwQueueProgressFenceCpuVa

VA da CPU do modo kernel da cerca que será sinalizada após a conclusão desse buffer de DMA.

Se o nó ao qual está sendo enviado tiver o limite RingBufferFenceRelease definido como 0, a atualização de limite será inserida pelo driver de modo de usuário como a última instrução no final do buffer DMA ou para envios de kernel pelo driver de modo kernel em resposta à chamada DdiSignalMonitoredFence.

Se o nó ao qual está sendo enviado tiver o limite RingBufferFenceRelease definido como 1, a atualização de limite será executada depois que o buffer de DMA não estiver mais em uso por GPU ou CPU. A mecânica exata da atualização da cerca é até o KMD/GPU. Por exemplo, isso pode ser feito pelo hardware do processador de gerenciamento de contexto ao desativar o buffer de DMA ou pelo KMD.

Requisitos

Requisito Valor
Cabeçalho d3dkmddi.h