다음을 통해 공유


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

추가 정보

셰이더 구조체