리소스 바인딩
바인딩은 리소스 개체를 그래픽 파이프라인의 셰이더에 연결하는 프로세스입니다.
섹션 내용
항목 | 설명 |
---|---|
리소스 바인딩 개요 | DirectX 12에서 리소스 바인딩의 핵심은 설명자(descriptor), 설명자 테이블(descriptor table), 설명자 힙(descriptor heap) 및 루트 서명(root signature) 개념입니다. |
Direct3D 11 바인딩 모델과의 차이점 | DirectX12 바인딩에 사용된 기본 설계 결정 중 하나는 다른 관리 작업과 분리하는 것입니다. 이 결정에 따라 특정 잠재적인 위험을 관리하기 위한 요구 사항이 앱에 적용됩니다. |
설명자 | 설명자는 D3D12에서 단일 리소스에 대한 바인딩의 기본 단위입니다. |
설명자 힙 | 설명자 힙은 설명자당 하나의 할당이 있는 설명자 연속 할당의 컬렉션입니다. |
설명자 테이블 | 설명자 테이블은 논리적으로 설명자의 배열입니다. |
루트 서명 | 루트 서명은 그래픽 파이프라인에 바인딩된 리소스 종류를 정의합니다. |
쿼리 기능 | 애플리케이션은 ID3D12Device::CheckFeatureSupport 호출을 통해 리소스 바인딩 및 다양한 다른 기능의 지원 수준을 검색할 수 있습니다. |
HLSL의 리소스 바인딩 | 이 항목에서는 Direct3D 12에서 HLSL(High Level Shader Language) 셰이더 모델 5.1 을 사용하는 몇 가지 특정 기능에 대해 설명합니다. 모든 Direct3D 12 하드웨어는 셰이더 모델 5.1을 지원하므로, 이 모델에 대한 지원은 하드웨어 기능 수준에 따라 달라지지 않습니다. |
UMA 최적화: CPU 액세스 가능 텍스처 및 표준 스위즐 | UMA(통합 메모리 아키텍처) GPU는 특히 모바일 디바이스에 최적화할 때 불연속 GPU보다 몇 가지 효율성 이점을 제공합니다. GPU가 UMA일 때 리소스에 CPU 액세스 권한을 부여하면 CPU와 GPU 사이에 발생하는 복사의 양을 줄일 수 있습니다. UMA 설계에서 애플리케이션이 모든 리소스에 대한 CPU 액세스를 무조건 제공하는 것은 좋지 않지만, 적합한 리소스에 CPU 액세스를 제공하면 효율성을 개선할 수 있습니다. 개별 GPU와 달리, CPU에는 GPU가 액세스할 수 있는 모든 리소스에 대한 포인터가 기술적으로 포함될 수 있습니다. |
형식화된 순서가 지정되지 않은 액세스 보기 로드 | UAV(순서가 지정되지 않은 액세스 뷰) 형식화된 로드는 셰이더가 특정 DXGI_FORMAT 있는 UAV에서 읽을 수 있는 기능입니다. |
볼륨 타일식 리소스 | 볼륨(3D) 질감은 타일식 리소스로 사용할 수 있으며 타일 해상도는 3차원입니다. |
하위 리소스 | 리소스를 하위 리소스로 분할하는 방법 및 단일 또는 여러 하위 리소스나 하위 리소스 조각을 참조하는 방법을 설명합니다. |