PFND3D11DDI_DISPATCH 콜백 함수(d3d10umddi.h)
Dispatch 함수는 컴퓨팅 셰이더를 실행합니다.
구문
PFND3D11DDI_DISPATCH Pfnd3d11ddiDispatch;
void Pfnd3d11ddiDispatch(
D3D10DDI_HDEVICE unnamedParam1,
UINT unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4
)
{...}
매개 변수
unnamedParam1
hDevice [in]
디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.
unnamedParam2
ThreadGroupCountX [in]
스레드 그룹 그리드의 x 차원 크기(스레드 그룹)입니다. 최대 크기는 65535입니다.
unnamedParam3
ThreadGroupCountY [in]
스레드 그룹 그리드의 y차원 크기(스레드 그룹)입니다. 최대 크기는 65535입니다.
unnamedParam4
ThreadGroupCountZ [in]
스레드 그룹 그리드의 z 차원 크기(스레드 그룹)입니다. 최대 크기는 65535입니다.
반환 값
없음
설명
드라이버는 pfnSetErrorCb 콜백 함수를 사용하여 오류 코드를 설정할 수 있습니다.
Direct3D 런타임은 디스플레이 디바이스에서 드라이버의 Dispatch 함수를 호출하여 컴퓨팅 셰이더를 실행합니다. 컴파일된 컴퓨팅 셰이더는 스레드당 실행할 명령 집합과 그룹당 실행할 스레드 수를 정의합니다. 스레드 그룹 매개 변수(ThreadGroupCountX, ThreadGroupCountY 및 ThreadGroupCountZ)는 실행할 스레드 그룹 수를 나타냅니다. 각 스레드 그룹에는 컴파일된 컴퓨팅 셰이더에서 정의한 것과 동일한 수의 스레드가 포함됩니다. 스레드 그룹은 3차원 그리드로 구성됩니다. 컴파일된 컴퓨팅 셰이더가 실행하는 총 스레드 그룹 수는 다음 계산에 따라 결정됩니다.
ThreadGroupCountX * ThreadGroupCountY * ThreadGroupCountZ
특히 스레드 그룹 매개 변수의 값이 0이면 Dispatch 함수는 아무 작업도 수행하지 않습니다.
D3DDDIERR_DEVICEREMOVED 경우를 제외하고 드라이버에 오류가 발생하지 않아야 합니다. 따라서 드라이버가 pfnSetErrorCb 함수를 호출할 때 D3DDDIERR_DEVICEREMOVED 경우를 제외하고 오류를 전달하는 경우 Direct3D 런타임은 오류가 중요하다고 결정합니다. 디바이스가 제거되더라도 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 필요가 없습니다. 그러나 디바이스 제거가 디스패치 작업을 방해하는 경우(일반적으로 발생하지 않아야 하는) 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | 디스패치는 Windows 7 운영 체제부터 지원됩니다. |
대상 플랫폼 | 데스크톱 |
머리글 | d3d10umddi.h(D3d10umddi.h 포함) |