다음을 통해 공유


셰이더 코드 처리

사용자 모드 표시 드라이버는 꼭짓점 선언과 각 개별 픽셀 및 꼭짓점 셰이더 코드 내의 토큰을 사용하여 셰이더 어셈블러를 프로그래밍합니다.

사용자 모드 표시 드라이버는 Microsoft Direct3D 런타임이 드라이버의 CreateVertexShaderFuncCreatePixelShader 함수를 각각 호출할 때 꼭짓점 및 픽셀 셰이더 코드를 받습니다. 런타임이 드라이버의 CreateVertexShaderDecl 함수를 호출할 때 사용자 모드 표시 드라이버는 꼭짓점 선언을 받습니다. 꼭짓점 선언은 D3DDDIVERTEXELEMENT 구조체의 배열로 구성됩니다. 사용자 모드 표시 드라이버는 셰이더 코드 및 꼭짓점 셰이더 선언을 하드웨어별 형식으로 변환하고 셰이더 코드와 선언을 셰이더 및 선언 핸들과 연결합니다. 런타임은 SetVertexShaderDecl, SetVertexShaderFunc 및 SetPixelShader 함수에 대한 호출 에서 생성된 핸들을 사용하여 모든 후속 그리기 작업에서 사용할 수 있도록 꼭짓점 셰이더 선언과 꼭짓점 및 픽셀 셰이더를 설정합니다.

개별 셰이더 코드의 형식 및 각 셰이더 코드를 구성하는 토큰에 대한 자세한 내용은 Direct3D 셰이더 코드를 참조하세요.

참고 애플리케이션이 꼭짓점 셰이더, 픽셀 셰이더 및 꼭짓점 선언을 만들면 각 에 대한 셰이더 코드와 선언이 엔드 토큰으로 끝납니다. Direct3D 런타임이 꼭짓점 및 픽셀 셰이더 생성 요청을 사용자 모드 디스플레이 드라이버에 전달하면 요청과 함께 제공되는 꼭짓점 및 픽셀 셰이더 코드가 엔드 토큰으로 끝납니다. 그러나 런타임이 꼭짓점 선언 만들기 요청을 통과하면 요청과 함께 제공되는 꼭짓점 선언은 엔드 토큰으로 끝나지 않습니다.