하드웨어 기능 지원 확인
이 섹션에서는 API 호출을 사용하여 Direct3D 기능 수준 하드웨어에 대한 형식 지원에 검사 방법을 설명합니다.
D3D11의 경우 ID3D11Device::CheckFormatSupport 를 사용하여 이전 섹션의 정보를 프로그래밍 방식으로 확인합니다. D3D12의 경우 ID3D12::CheckFeatureSupport를 사용합니다.
대상 서식 지정 | D3D12 | D3D11 |
---|---|---|
Buffer | D3D12_FORMAT_SUPPORT1_BUFFER(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_BUFFER(D3D11_FORMAT_SUPPORT) |
입력 어셈블러 꼭짓점 버퍼 | D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER(D3D11_FORMAT_SUPPORT) |
입력 어셈블러 인덱스 버퍼 | D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER(D3D11_FORMAT_SUPPORT) |
스트림 출력 버퍼 | D3D12_FORMAT_SUPPORT1_SO_BUFFER(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_SO_BUFFER(D3D11_FORMAT_SUPPORT) |
Texture1D | D3D12_FORMAT_SUPPORT1_TEXTURE1D(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_TEXTURE1D(D3D11_FORMAT_SUPPORT) |
Texture2D | D3D12_FORMAT_SUPPORT1_TEXTURE2D(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_TEXTURE2D(D3D11_FORMAT_SUPPORT) |
Texture3D | D3D12_FORMAT_SUPPORT1_TEXTURE3D(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_TEXTURE3D(D3D11_FORMAT_SUPPORT) |
TextureCUBE | D3D12_FORMAT_SUPPORT1_TEXTURECUBE(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_TEXTURECUBE(D3D11_FORMAT_SUPPORT) |
셰이더 ld | D3D12_FORMAT_SUPPORT1_SHADER_LOAD(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_SHADER_LOAD(D3D11_FORMAT_SUPPORT) |
셰이더 샘플(모든 필터) | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_SHADER_SAMPLE(D3D11_FORMAT_SUPPORT) |
셰이더 sample_c(비교 필터) | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON(D3D11_FORMAT_SUPPORT) |
셰이더 샘플(모노 1_bit_filter) | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT(D3D11_FORMAT_SUPPORT) |
셰이더 gather4 | D3D12_FORMAT_SUPPORT1_SHADER_GATHER(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_SHADER_GATHER(D3D11_FORMAT_SUPPORT) |
셰이더 gather4_c | D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON(D3D11_FORMAT_SUPPORT) |
밉 맵 | D3D12_FORMAT_SUPPORT1_MIP(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_MIP(D3D11_FORMAT_SUPPORT) |
Mipmap 자동 생성 |
참고: D3D12에는 더 이상 전용 Mipmap 생성 기능이 없습니다. 애플리케이션은 셰이더를 사용하여 자체 구현해야 합니다. |
D3D11_FORMAT_SUPPORT_MIP_AUTOGEN(D3D11_FORMAT_SUPPORT) |
RenderTarget | D3D12_FORMAT_SUPPORT1_RENDER_TARGET(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_RENDER_TARGET(D3D11_FORMAT_SUPPORT) |
Blendable RenderTarget | D3D12_FORMAT_SUPPORT1_BLENDABLE(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_BLENDABLE(D3D11_FORMAT_SUPPORT) |
출력 병합기 논리 작업 | D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP | D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP(D3D11_FORMAT_SUPPORT2) |
깊이/스텐실 대상 | D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_DEPTH_STENCIL(D3D11_FORMAT_SUPPORT) |
원시 UAV 및 SRV | ||
구조적 UAV 및 SRV | ||
형식화된 UAV | D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW(D3D11_FORMAT_SUPPORT) |
UAV 형식 저장소 | D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE(D3D11_FORMAT_SUPPORT2) |
UAV 형식 로드 | D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD(D3D11_FORMAT_SUPPORT2) |
UAV 원자성 추가 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD(D3D11_FORMAT_SUPPORT2) |
UAV 원자 비트 연산 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS(D3D11_FORMAT_SUPPORT2) |
UAV Atomic Cmp&Store/Cmp&Exch | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE(D3D11_FORMAT_SUPPORT2) |
UAV 원자성 교환 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE(D3D11_FORMAT_SUPPORT2) |
UAV Atomic Signed Min/Max | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX(D3D11_FORMAT_SUPPORT2) |
UAV Atomic Unsigned Min/Max | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX(D3D11_FORMAT_SUPPORT2) |
CPU 잠금 가능 |
참고: 단일 형식만 cpu 액세스(420_OPAQUE)를 배제합니다. |
D3D11_FORMAT_SUPPORT_CPU_LOCKABLE(D3D11_FORMAT_SUPPORT) |
4x 멀티샘플 RenderTarget | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET(D3D11_FORMAT_SUPPORT) |
8x 다중 샘플 RenderTarget | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET(D3D11_FORMAT_SUPPORT) |
기타 다중 샘플 수 RT | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET(D3D11_FORMAT_SUPPORT) |
다중 샘플 해결 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE(D3D11_FORMAT_SUPPORT) |
다중 샘플 로드 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD(D3D11_FORMAT_SUPPORT) |
표시 Scan-Out | D3D12_FORMAT_SUPPORT1_DISPLAY(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_DISPLAY(D3D11_FORMAT_SUPPORT) |
비트 레이아웃 내에서 캐스팅 | D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT(D3D11_FORMAT_SUPPORT) |
비디오 디코더 지원 | D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_DECODER_OUTPUT(D3D11_FORMAT_SUPPORT) |
비디오 프로세서 입력 | D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT(D3D11_FORMAT_SUPPORT) |
비디오 프로세서 출력 | D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT(D3D11_FORMAT_SUPPORT) |
공유 리소스 |
참고: 모든 형식의 텍스처는 커밋된 리소스를 공유하거나 공유 힙에 배치할 수 있습니다. |
D3D11_FORMAT_SUPPORT2_SHAREABLE(D3D11_FORMAT_SUPPORT2) |
BackBuffer Castable Even Fully Typed | D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST(D3D12_FORMAT_SUPPORT1) |
참고: 사용할 수 있는 API가 없습니다. |
타일형 리소스 | D3D12_FORMAT_SUPPORT2_TILED(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_TILED(D3D11_FORMAT_SUPPORT2) |
비디오 인코더 | D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER(D3D12_FORMAT_SUPPORT1) | D3D11_FORMAT_SUPPORT_VIDEO_ENCODER(D3D11_FORMAT_SUPPORT) |
다중 평면 오버레이 | D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY(D3D12_FORMAT_SUPPORT2) | D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY(D3D11_FORMAT_SUPPORT2) |