다음을 통해 공유


셰이더 비표시 설명자 힙

일부 설명자 힙은 설명자 테이블을 통해 셰이더에서 참조할 수 없지만, 명령 목록을 기록하기 전에 설명자 스테이징에서 앱을 지원하기 위해 또는 셰이더 비표시 힙이 필요하기 때문에 존재할 수 있습니다.

비표시 뷰

이전에 설명한 셰이더 액세스 가능 설명자 힙을 포함한 모든 설명자 힙은 애플리케이션에서 설명자 힙에 대해 선택하는 메모리 풀 및 CPU 액세스 속성에 따라 CPU 및/또는 명령 목록을 통해 조작할 수 있습니다.

셰이더 표시 설명자 힙의 경우 이 설명자 힙에 대한 셰이더 액세스를 거부하는 명백한 이유가 스테이징되는 동안 발생합니다. 그런 다음, 이 힙은 셰이더 표시로 만들어지고 명령 목록 실행 시 설명자 테이블을 통해 액세스됩니다. 그러나 셰이더 표시 힙을 스테이징하기 위한 요구 사항은 없으며, 힙을 직접 채울 수 있습니다.

기타 설명자는 명령 목록에 직접 콘텐츠를 기록하여 파이프라인에 바인딩됩니다. 이 설명자는 명령 목록 기록 시 뷰 매개 변수를 변환하는 데만 사용됩니다. 이 힙은 항상 셰이더 비표시이고 다음을 포함합니다.

  • RTV(렌더링 대상 뷰)
  • DSV(깊이 스텐실 뷰)

IBV(인덱스 버퍼 뷰), VBV(꼭짓점 버퍼 뷰) 및 SOV(스트림 출력 뷰)는 API 메서드에 직접 전달되며 특정 힙 형식이 없습니다.

명령 목록에 기록한 후(OMSetRenderTargets와 같은 호출 사용) 이 호출에 대한 설명자를 포함하는 데 사용된 메모리는 호출 후에 즉시 다시 사용할 수 있습니다.

설명자 테이블에는 앱이 실행 시 테이블 포인터를 역참조하는 것이 아니라 명령 목록 기록 시 테이블 콘텐츠를 기록하도록 선택하는 구현을 허용할 수 있는 옵션도 있습니다.

요약

셰이더 표시, CPU 쓰기 전용 비 셰이더 표시, CPU 읽기/쓰기
CBV, SRV, UAV
샘플러
RTV 아니요
DSV 아니요

 

설명자 힙