D3D12_ROOT_SIGNATURE_FLAGS 열거형(d3d12.h)

루트 서명 레이아웃에 대한 옵션을 지정합니다.

Syntax

typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
  D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
  D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
  D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
  D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
} ;

상수

 
D3D12_ROOT_SIGNATURE_FLAG_NONE
값: 0
기본 동작을 나타냅니다.
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT
값: 0x1
앱은 입력 어셈블러를 사용하도록 옵트인합니다(꼭짓점 버퍼 바인딩 집합을 정의하는 입력 레이아웃 필요). 이 플래그를 생략하면 일부 하드웨어에 하나의 루트 인수 공간이 저장될 수 있습니다. 최적화가 미미하지만 입력 어셈블러가 필요하지 않은 경우 이 플래그를 생략합니다.
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS
값: 0x2
루트 서명에 대한 꼭짓점 셰이더 액세스를 거부합니다.
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS
값: 0x4
루트 서명에 대한 헐 셰이더 액세스를 거부합니다.
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS
값: 0x8
루트 서명에 대한 도메인 셰이더 액세스를 거부합니다.
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS
값: 0x10
루트 서명에 대한 기하 도형 셰이더 액세스를 거부합니다.
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS
값: 0x20
루트 서명에 대한 픽셀 셰이더 액세스를 거부합니다.
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT
값: 0x40
앱이 스트림 출력을 사용하도록 옵트인하고 있습니다. 이 플래그를 생략하면 일부 하드웨어에 하나의 루트 인수 공간이 저장될 수 있습니다. 최적화가 미미하지만 스트림 출력이 필요하지 않은 경우 이 플래그를 생략합니다.
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE
값: 0x80
루트 서명은 레이트레이싱 셰이더와 함께 셰이더 테이블의 셰이더 레코드에서 공급되는 리소스 바인딩을 정의하는 데 사용됩니다. 이 플래그는 그래픽 파이프라인과 관련된 다른 루트 서명 플래그와 결합할 수 없습니다. 플래그가 없으면 루트 서명을 그래픽 또는 컴퓨팅과 함께 사용할 수 있습니다. 여기서 컴퓨팅 버전은 레이트레이싱의 전역 루트 서명과도 공유됩니다.
D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS
값: 0x100
루트 서명에 대한 증폭 셰이더 액세스를 거부합니다.
D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS
값: 0x200
루트 서명에 대한 메시 셰이더 액세스를 거부합니다.
D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED
값: 0x400
셰이더는 ResourceDescriptorHeap 기본 제공 변수를 사용하여 CBV/SRV/UAV 설명자 힙을 직접 인덱싱할 수 있습니다.
D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED
값: 0x800
셰이더는 SamplerDescriptorHeap 기본 제공 변수를 사용하여 샘플러 설명자 힙을 직접 인덱싱할 수 있습니다.

설명

이 열거형은 D3D12_ROOT_SIGNATURE_DESC 구조체에 사용됩니다.

셰이더 단계에 대한 액세스를 거부하는 값은 일부 하드웨어에서 사소한 최적화입니다. 예를 들어 D3D12_SHADER_VISIBILITY_ALL 플래그가 루트 서명을 모든 셰이더 단계로 브로드캐스트하도록 설정된 경우 액세스를 거부하면 이를 재정의하고 하드웨어에 일부 작업을 저장할 수 있습니다. 또는 셰이더가 너무 간단해서 루트 서명 리소스가 필요하지 않은 경우 여기에서도 액세스를 거부할 수 있습니다.

요구 사항

   
머리글 d3d12.h

추가 정보

핵심 열거형

루트 서명 만들기

D3D12_ROOT_SIGNATURE_DESC