ID3D11Device::CreateDomainShader 메서드(d3d11.h)
도메인 셰이더를 만듭니다.
구문
HRESULT CreateDomainShader(
[in] const void *pShaderBytecode,
[in] SIZE_T BytecodeLength,
[in, optional] ID3D11ClassLinkage *pClassLinkage,
[out, optional] ID3D11DomainShader **ppDomainShader
);
매개 변수
[in] pShaderBytecode
형식: const void*
컴파일된 셰이더에 대한 포인터입니다.
[in] BytecodeLength
형식: SIZE_T
컴파일된 셰이더의 크기입니다.
[in, optional] pClassLinkage
형식: ID3D11ClassLinkage*
클래스 연결 인터페이스에 대한 포인터입니다( ID3D11ClassLinkage 참조). 값은 NULL일 수 있습니다.
[out, optional] ppDomainShader
형식: ID3D11DomainShader**
ID3D11DomainShader 인터페이스에 대한 포인터의 주소입니다. NULL인 경우 다른 모든 매개 변수의 유효성이 검사되고 모든 매개 변수가 유효성 검사를 통과하면 이 API는 S_OK 대신 S_FALSE 반환합니다.
반환 값
형식: HRESULT
이 메서드는 다음 Direct3D 11 반환 코드 중 하나를 반환합니다.
설명
Windows 8 시작하는 Direct3D 11.1 런타임은 CreateDomainShader에 다음과 같은 새로운 기능을 제공합니다.
다음 셰이더 모델 5.0 지침은 Direct3D 11.0 런타임에서 픽셀 셰이더 및 컴퓨팅 셰이더에만 사용할 수 있습니다. Direct3D 11.1 런타임의 경우 모든 셰이더 단계에서 UAV(순서가 지정되지 않은 액세스 뷰)를 사용할 수 있으므로 모든 셰이더 단계에서 이러한 지침을 사용할 수 있습니다.
따라서 도메인 셰이더에서 다음 셰이더 모델 5.0 지침을 사용하는 경우 컴파일된 도메인 셰이더를 pShaderBytecode에 성공적으로 전달할 수 있습니다. 즉, CreateDomainShader 호출이 성공합니다.
모든 셰이더 단계에서 UAV를 지원하지 않는 디바이스(모든 셰이더 단계에서 UAV를 지원하기 위해 구현되지 않은 기존 드라이버 포함)에서 다음 지침을 사용하는 pShaderBytecode 에 컴파일된 셰이더를 전달하면 CreateDomainShader 가 실패합니다. 셰이더가 하드웨어에서 지원하는 UAV 슬롯 집합 이외의 UAV 슬롯을 사용하려고 하면 CreateDomainShader도 실패합니다.
- dcl_uav_typed
- dcl_uav_raw
- dcl_uav_structured
- ld_raw
- ld_structured
- ld_uav_typed
- store_raw
- store_structured
- store_uav_typed
- sync_uglobal
- 모든 원자 및 직접 원자(예: atomic_and 및 imm_atomic_and)
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d11.h |
라이브러리 | D3D11.lib |