Rendering Pipeline에 리소스들이 어떻게 바인딩 될지를 정의한다.
- 일종의 템플릿.
- 리소스들이 어느 레지스터에 등록되는지를 정의한다.
- 리소스란 상수 버퍼, 텍스처, 텍스처샘플러를 뜻한다.
- 반드시 shader와 호환되어야 한다.
64개의 DWORD 제한
- 서술자 테이블: DWORD 한 개
- 루트 서술자: DWORD 두 개.
- 루트 상수: 32비트 상수당 DWORD 한 개.
최적화
- 최대한 작은 크기로
- 인수들의 크기가 클수록 스냅숏들도 커지기 때문에 변경 시 오버헤드가 커진다.
- 최대한 변경하지 않도록
- 가능한 동일한 루트 서명을 공유하는 게 좋다.
- 보통 "Super Root Signature"를 두는 것이 도움이 된다.
- 여러 Shader에서 공통적으로 사용할 수 있는 인수 셋트를 가진 커다란 시그니쳐
- 인수를 바인딩 하지 않더라도 변경을 최소화 하는것이 유리하다.
- 단, 크기가 너무 크다면 전환시 발생하는 오버헤드로 인해서 이점이 사라질수도 있다.