루트 서명

루트 서명은 그래픽 파이프라인에 바인딩된 리소스 종류를 정의합니다.

섹션 내용

항목 설명
루트 서명 개요
루트 서명은 앱에서 구성되고 명령 목록을 셰이더에 필요한 리소스에 연결합니다. 그래픽 명령 목록에는 그래픽 및 컴퓨팅 루트 서명이 둘 다 포함됩니다. 컴퓨팅 명령 목록에는 하나의 컴퓨팅 루트 서명만 있습니다. 이 루트 서명은 서로 독립적입니다.
루트 서명 사용
루트 서명은 설명자 테이블(레이아웃 포함), 루트 상수 및 루트 설명자의 임의로 정렬된 컬렉션 정의입니다. 각 항목에는 최대 제한에 대한 비용이 있으므로, 애플리케이션은 루트 서명에 포함될 각 항목 유형 수를 균형 있게 조절할 수 있습니다.
루트 서명 만들기
루트 서명은 중첩 구조를 포함하는 복합 데이터 구조입니다. 루트 서명은 아래 데이터 구조 정의(멤버 초기화에 도움이 되는 메서드 포함)를 사용하여 프로그래밍 방식으로 정의할 수 있습니다. 또는 HLSL(High Level Shading Language)으로 작성할 수 있으므로 컴파일러가 레이아웃이 셰이더와 호환된다는 유효성을 조기에 검사할 수 있다는 장점이 있습니다.
루트 서명 제한
루트 서명은 주요 리소스이며 고려할 엄격한 제한과 비용이 있습니다.
루트 서명에서 직접 상수 사용
애플리케이션은 루트 서명에서 루트 상수를 각각 32비트 값 세트로 정의할 수 있습니다. 루트 상수는 HLSL(High Level Shading Language)의 상수 버퍼로 표시됩니다. 기록을 위해 상수 버퍼는 4x32비트 값 세트로 표시됩니다.
루트 서명에서 직접 설명자 사용
애플리케이션은 설명자 힙을 거치지 않도록 루트 서명에 직접 설명자를 배치할 수 있습니다. 이 설명자는 루트 서명에서 많은 공간을 차지하므로(루트 서명 제한 섹션 참조) 애플리케이션은 설명자를 적게 사용해야 합니다.
루트 서명 예제
다음 섹션에서는 비어 있음부터 완전 가득 참까지 복잡성이 다양한 루트 서명을 보여 줍니다.
HLSL의 루트 서명 지정
C++ 코드에서 루트 서명을 지정하는 대신 HLSL 셰이더 모델 5.1에서 루트 서명을 지정할 수 있습니다.
루트 서명 버전 1.1
루트 서명 버전 1.1의 목적은 설명자 힙의 설명자가 변경되지 않거나 데이터 설명자 지점이 변경되지 않을 때 드라이버에 애플리케이션을 나타내는 것입니다. 이렇게 하면 일정 시간 동안 설명자 또는 설명자가 가리키는 메모리가 정적인지 알 수 있도록 드라이버를 최적화할 수 있습니다.

ID3D12RootSignature

ID3D12RootSignatureDeserializer

리소스 바인딩