D3D12_HEAP_TYPE 열거형(d3d12.h)
힙의 유형을 지정합니다. 상주하는 경우 힙은 특정 CPU 캐시 속성이 있는 특정 실제 메모리 풀에 상주합니다.
통사론
typedef enum D3D12_HEAP_TYPE {
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4,
D3D12_HEAP_TYPE_GPU_UPLOAD
} ;
상수
D3D12_HEAP_TYPE_DEFAULT 값: 1 기본 힙을 지정합니다. 이 힙 형식은 GPU에 대한 대역폭이 가장 많지만 CPU 액세스를 제공할 수 없습니다. GPU는 이 풀에서 메모리를 읽고 쓸 수 있으며 리소스 전환 장벽이 변경될 수 있습니다. 대부분의 힙 및 리소스는 여기에 있을 것으로 예상되며 일반적으로 업로드 힙의 리소스를 통해 채워집니다. |
D3D12_HEAP_TYPE_UPLOAD 값: 2 업로드에 사용되는 힙을 지정합니다. 이 힙 형식은 GPU에 업로드하기 위해 최적화된 CPU 액세스 권한을 가지고 있지만 GPU에 대한 최대 대역폭은 경험하지 않습니다. 이 힙 형식은 CPU-쓰기-한 번, GPU-읽기-한 번 데이터에 가장 적합합니다. 그러나 GPU-read-once는 필요 이상으로 엄격합니다. GPU-read-once-once-or-from-cache는 데이터에 허용되는 사용 사례입니다. 그러나 GPU 캐시 디자인과 크기가 다르기 때문에 이러한 사용량은 판단하기 어렵습니다. 의심스러운 경우 GPU 읽기-한 번 정의를 고수하거나 데이터를 _DEFAULT 힙에 복사하는 것과 _UPLOAD 힙에서 데이터를 읽는 것 사이의 많은 GPU의 차이를 프로파일링합니다. 이 힙의 리소스는 D3D12_RESOURCE_STATE_GENERIC_READ 사용하여 만들어야 하며 이 리소스에서 벗어날 수 없습니다. 이러한 힙의 CPU 주소는 일반적으로 CPU 읽기에 효율적이지 않습니다. 다음은 _UPLOAD 힙에 대한 일반적인 사용법입니다.
다음은 _UPLOAD 힙에 적합하지 않을 수 있습니다.
|
D3D12_HEAP_TYPE_READBACK 값: 3 다시 읽기에 사용되는 힙을 지정합니다. 이 힙 유형에는 GPU에서 데이터를 다시 읽기 위해 최적화된 CPU 액세스 권한이 있지만 GPU에 대한 최대 대역폭은 발생하지 않습니다. 이 힙 형식은 GPU 쓰기가 가능한 CPU 읽기 가능한 데이터에 가장 적합합니다. CPU 캐시 동작은 쓰기 저장이며 여러 하위 캐시 줄 CPU 읽기에 유용합니다. 이 힙의 리소스는 D3D12_RESOURCE_STATE_COPY_DEST 사용하여 만들어야 하며 이 리소스에서 벗어날 수 없습니다. |
D3D12_HEAP_TYPE_CUSTOM 값: 4 사용자 지정 힙을 지정합니다. 애플리케이션은 메모리 풀 및 CPU 캐시 속성을 직접 지정할 수 있습니다. 이 속성은 UMA 최적화, 다중 엔진, 다중 어댑터 또는 기타 특수한 경우에 유용할 수 있습니다. 이를 위해 애플리케이션은 올바른 선택을 위해 어댑터 아키텍처를 이해해야 합니다. 자세한 내용은 를 참조하세요. D3D12_FEATURE_ARCHITECTURE D3D12_FEATURE_DATA_ARCHITECTURE및 GetCustomHeapProperties |
발언
이 열거형은 다음 API 항목에서 사용됩니다.
- D3D12_HEAP_DESC
- D3D12_HEAP_PROPERTIES
-
getCustomHeapProperties
추상화된 힙 유형은 다음과 같습니다.
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
버퍼와 달리 텍스처는 UPLOAD 또는 READBACK 힙 유형일 수 없습니다.
요구 사항
요구 | 값 |
---|---|
헤더 | d3d12.h |