다음을 통해 공유


루트 서명

루트 서명은 그래픽 파이프라인에 바인딩되는 리소스 유형을 정의합니다.

이 섹션에서는

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

ID3D12RootSignature

ID3D12RootSignatureDeserializer

리소스 바인딩