D3D12_SHADER_DESC 구조체(d3d12shader.h)
셰이더에 대해 설명합니다.
구문
typedef struct _D3D12_SHADER_DESC {
UINT Version;
LPCSTR Creator;
UINT Flags;
UINT ConstantBuffers;
UINT BoundResources;
UINT InputParameters;
UINT OutputParameters;
UINT InstructionCount;
UINT TempRegisterCount;
UINT TempArrayCount;
UINT DefCount;
UINT DclCount;
UINT TextureNormalInstructions;
UINT TextureLoadInstructions;
UINT TextureCompInstructions;
UINT TextureBiasInstructions;
UINT TextureGradientInstructions;
UINT FloatInstructionCount;
UINT IntInstructionCount;
UINT UintInstructionCount;
UINT StaticFlowControlCount;
UINT DynamicFlowControlCount;
UINT MacroInstructionCount;
UINT ArrayInstructionCount;
UINT CutInstructionCount;
UINT EmitInstructionCount;
D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
UINT GSMaxOutputVertexCount;
D3D_PRIMITIVE InputPrimitive;
UINT PatchConstantParameters;
UINT cGSInstanceCount;
UINT cControlPoints;
D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
D3D_TESSELLATOR_PARTITIONING HSPartitioning;
D3D_TESSELLATOR_DOMAIN TessellatorDomain;
UINT cBarrierInstructions;
UINT cInterlockedInstructions;
UINT cTextureStoreInstructions;
} D3D12_SHADER_DESC;
멤버
Version
셰이더 버전은 "ps_5_0"과 같은 셰이더 모델에 해당하는 인코딩된 UINT입니다. 버전 에서는 프로그램 유형, 주 버전 번호 및 부 버전 번호를 설명합니다. 프로그램 유형은 D3D12_SHADER_VERSION_TYPE 열거형 상수입니다. 버전은 다음과 같은 방식으로 디코딩됩니다.
- 프로그램 유형 = (버전 & 0xFFFF0000) >> 16
- 주 버전 = (버전 & 0x000000F0) >> 4
- 부 버전 = (버전 & 0x0000000F)
Creator
셰이더의 보낸 사람의 이름입니다.
Flags
셰이더 컴파일/구문 분석 플래그.
ConstantBuffers
셰이더 상수 버퍼의 수입니다.
BoundResources
셰이더에 바인딩된 리소스(텍스처 및 버퍼)의 수입니다.
InputParameters
입력 서명의 매개 변수 수입니다.
OutputParameters
출력 서명의 매개 변수 수입니다.
InstructionCount
컴파일된 셰이더의 중간 언어 명령 수입니다.
TempRegisterCount
컴파일된 셰이더의 임시 레지스터 수입니다.
TempArrayCount
사용되는 임시 배열의 수입니다.
DefCount
상수 정의 수입니다.
DclCount
선언 수(입력 + 출력).
TextureNormalInstructions
분류되지 않은 텍스처 명령의 수입니다.
TextureLoadInstructions
텍스처 로드 명령 수
TextureCompInstructions
텍스처 비교 지침 수
TextureBiasInstructions
텍스처 바이어스 명령 수
TextureGradientInstructions
텍스처 그라데이션 명령의 수입니다.
FloatInstructionCount
사용되는 부동 소수점 산술 명령의 수입니다.
IntInstructionCount
사용된 부호 있는 정수 산술 명령의 수입니다.
UintInstructionCount
사용되는 부호 없는 정수 산술 명령의 수입니다.
StaticFlowControlCount
사용된 정적 흐름 제어 명령의 수입니다.
DynamicFlowControlCount
사용되는 동적 흐름 제어 명령의 수입니다.
MacroInstructionCount
사용된 매크로 명령의 수입니다.
ArrayInstructionCount
사용된 배열 명령의 수입니다.
CutInstructionCount
사용된 잘라내기 명령의 수입니다.
EmitInstructionCount
사용된 내보내기 명령의 수입니다.
GSOutputTopology
기하 도형 셰이더 출력 토폴로지를 나타내는 D3D_PRIMITIVE_TOPOLOGY 형식의 값입니다.
GSMaxOutputVertexCount
기하 도형 셰이더 최대 출력 꼭짓점 수입니다.
InputPrimitive
기하 도형 셰이더 또는 헐 셰이더의 입력 기본 형식을 나타내는 D3D_PRIMITIVE 형식의 값입니다.
PatchConstantParameters
패치 상수 서명의 매개 변수 수입니다.
cGSInstanceCount
기하 도형 셰이더 인스턴스 수입니다.
cControlPoints
헐 셰이더 및 도메인 셰이더의 제어점 수입니다.
HSOutputPrimitive
테셀레이터 출력-기본 형식을 나타내는 D3D_TESSELLATOR_OUTPUT_PRIMITIVE 형식 값입니다.
HSPartitioning
테셀레이터 분할 모드를 나타내는 D3D_TESSELLATOR_PARTITIONING 형식의 값입니다.
TessellatorDomain
테셀레이터 도메인을 나타내는 D3D_TESSELLATOR_DOMAIN 형식의 값입니다.
cBarrierInstructions
컴퓨팅 셰이더의 장벽 명령 수입니다.
cInterlockedInstructions
컴퓨팅 셰이더의 연동 명령 수입니다.
cTextureStoreInstructions
컴퓨팅 셰이더의 텍스처 쓰기 수입니다.
설명
셰이더는 HLSL로 작성되고 HLSL 컴파일러에 의해 중간 언어로 컴파일됩니다. 셰이더 설명은 컴파일된 셰이더에 대한 정보를 반환합니다. 셰이더 설명을 가져오려면 ID3D12ShaderReflection::GetDesc를 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | d3d12shader.h |