다음을 통해 공유


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, ThreadGroupCountYThreadGroupCountZ)는 실행할 스레드 그룹 수를 나타냅니다. 각 스레드 그룹에는 컴파일된 컴퓨팅 셰이더에서 정의한 것과 동일한 수의 스레드가 포함됩니다. 스레드 그룹은 3차원 그리드로 구성됩니다. 컴파일된 컴퓨팅 셰이더가 실행하는 총 스레드 그룹 수는 다음 계산에 따라 결정됩니다.

ThreadGroupCountX * ThreadGroupCountY * ThreadGroupCountZ

특히 스레드 그룹 매개 변수의 값이 0이면 Dispatch 함수는 아무 작업도 수행하지 않습니다.

D3DDDIERR_DEVICEREMOVED 경우를 제외하고 드라이버에 오류가 발생하지 않아야 합니다. 따라서 드라이버가 pfnSetErrorCb 함수를 호출할 때 D3DDDIERR_DEVICEREMOVED 경우를 제외하고 오류를 전달하는 경우 Direct3D 런타임은 오류가 중요하다고 결정합니다. 디바이스가 제거되더라도 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 필요가 없습니다. 그러나 디바이스 제거가 디스패치 작업을 방해하는 경우(일반적으로 발생하지 않아야 하는) 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 디스패치는 Windows 7 운영 체제부터 지원됩니다.
대상 플랫폼 데스크톱
머리글 d3d10umddi.h(D3d10umddi.h 포함)

추가 정보

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb