다음을 통해 공유


DXGKARG_SUBMITCOMMANDTOHWQUEUE 구조체(d3dkmddi.h)

하드웨어 큐에 명령을 제출하는 데 사용되는 인수입니다.

구문

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;

멤버

[in] hHwQueue

제출되는 하드웨어 큐입니다.

HwQueueProgressFenceId

GPU에서 Present Blt가 수행될 때 신호를 받을 하드웨어 큐 진행률 펜스 ID입니다.

DmaBufferVirtualAddress

GPU에서 실행할 DMA 버퍼의 가상 주소입니다.

DmaBufferSize

GPU에서 실행할 DMA 버퍼의 크기입니다.

DmaBufferPrivateDataSize

버퍼의 프라이빗 데이터 크기입니다.

pDmaBufferPrivateData

사용자 모드 DDI 콜백 pfnSubmitToHwQueueCb, 사용자 모드의 명령 제출 또는 Present Blt, DdiPresent에서 입력한 프라이빗 드라이버 데이터 버퍼와 같은 커널 모드 제출에 대해 전달되는 이진 데이터입니다.

중요

프라이빗 드라이버 데이터 버퍼는 DxgkDdiSubmitCommandToHwQueue에서 반환될 때 해제됩니다. 이는 GPU에서 명령 버퍼가 완료될 때까지 프라이빗 드라이버 데이터 수명이 연장되는 WDDM 2.0-2.3과 다릅니다.

Flags

사용자 모드 드라이버에서 생성된 명령 버퍼에 대해 0으로 설정됩니다. 커널 모드 드라이버 DdiPresentToHwQueue에서 생성된 명령 버퍼에는 Present 플래그가 1로 설정됩니다.

HwQueueProgressFenceGpuVa

이 DMA 버퍼 완성 시 신호를 받을 펜스의 GPU VA(비디오 가속)입니다.

HwQueueProgressFenceCpuVa

이 DMA 버퍼 완료 시 신호를 받을 펜스의 커널 모드 CPU VA입니다.

제출되는 노드에 RingBufferFenceRelease 상한이 0으로 설정된 경우 DMA 버퍼 끝에 있는 마지막 명령으로 사용자 모드 드라이버에 의해 펜스 업데이트가 삽입되거나 DdiSignalMonitoredFence 호출에 대한 응답으로 커널 모드 드라이버가 커널 제출에 삽입합니다.

제출되는 노드에 RingBufferFenceRelease 상한 이 1로 설정된 경우 DMA 버퍼가 GPU 또는 CPU에서 더 이상 사용되지 않으면 펜스 업데이트가 수행됩니다. 펜스 업데이트의 정확한 메커니즘은 KMD/GPU에 달려 있습니다. 예를 들어 DMA 버퍼를 사용 중지할 때 컨텍스트 관리 프로세서 하드웨어 또는 KMD에서 수행할 수 있습니다.

요구 사항

요구 사항
헤더 d3dkmddi.h