설명자 테이블 개요

각 설명자 테이블에는 하나 이상의 형식인 SRV, UAV, CBV 및 샘플러의 설명자가 저장됩니다. 설명자 테이블은 메모리 할당이 아닙니다. 설명자 힙에 대한 오프셋 및 길이일 뿐입니다.

설명자 테이블 참조

그래픽 파이프라인은 루트 서명을 통해 인덱스별로 설명자 테이블로 참조하여 리소스에 대한 액세스 권한을 얻습니다.

설명자 테이블은 실제로 설명자 힙의 하위 범위입니다. 설명자 힙은 설명자 컬렉션에 대한 기본 메모리 할당을 나타냅니다. 메모리 할당은 설명자 힙을 만드는 속성이므로 설명자 테이블을 하나만 정의하면 하드웨어에 대한 힙의 지역을 식별하는 것만큼 저렴합니다. API 레벨에서 설명자 테이블을 만들거나 삭제할 필요가 없습니다. 설명자 테이블은 참조될 때마다 드라이버에 대해 힙의 오프셋 및 크기로만 파악됩니다.

앱의 셰이더가 즉시(재질 데이터에 의해 구동될 수 있음) 사용 가능한 설명자(종종 질감 참조)의 방대한 세트에서 자유롭게 선택해야 하는 경우 앱에서 매우 큰 설명자 테이블을 정의할 수 있습니다.

루트 서명은 힙에 대한 참조, 테이블의 시작 위치(힙 시작부터 오프셋) 및 테이블의 길이(항목 수 단위)를 사용하여 설명자 테이블 항목을 참합니다. 아래 이미지는 루트 서명의 설명자 테이블 포인터와 힙의 전체 텍스처 또는 버퍼 데이터를 참조하는 설명자 힙 내의 설명자(텍스처의 경우 기본 힙)와 같은 개념을 보여 줍니다.

설명자 테이블