ID3D12ShaderReflection::GetRequiresFlags 메서드(d3d12shader.h)
셰이더의 요구 사항을 나타내는 플래그 그룹을 검색합니다.
구문
UINT64 GetRequiresFlags();
반환 값
형식: UINT64
하나 이상의 셰이더 요구 사항 플래그의 조합을 포함하는 값입니다 #define
. 각 플래그는 셰이더의 요구 사항을 지정합니다. 기본값 0은 요구 사항이 없음을 의미합니다.
D3D_SHADER_REQUIRES_DOUBLES. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 이중 데이터 형식을 지원해야 합니다.
D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL. 셰이더에는 초기 깊이 스텐실이 필요합니다.
D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE. 셰이더는 모든 파이프라인 단계에서 UAV(순서가 지정되지 않은 액세스 뷰)가 필요합니다.
D3D_SHADER_REQUIRES_64_UAVS. 셰이더에는 64개의 UAV가 필요합니다.
D3D_SHADER_REQUIRES_MINIMUM_PRECISION. 셰이더는 최소 정밀도를 지원하려면 그래픽 드라이버와 하드웨어가 필요합니다. 자세한 내용은 HLSL 최소 정밀도 사용을 참조하세요.
D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS. 셰이더를 사용하려면 그래픽 드라이버 및 하드웨어 지원 확장 이중 명령이 필요합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONSExtendedDoublesShaderInstructions 멤버를 참조하세요.
D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 셰이더에서 msad4 내장 함수를 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONSSAD4ShaderInstructions 멤버를 참조하세요.
D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 Direct3D 9 섀도 지원을 지원해야 합니다.
D3D_SHADER_REQUIRES_TILED_RESOURCES. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 타일식 리소스를 지원해야 합니다.
D3D_SHADER_REQUIRES_STENCIL_REF. 셰이더에는 깊이 스텐실 테스트에 대한 참조 값이 필요합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS 구조체의 PSSpecifiedStencilRefSupported 멤버 및 ID3D12GraphicsCommandList::OMSetStencilRef를 참조하세요.
D3D_SHADER_REQUIRES_INNER_COVERAGE. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 내부 검사를 지원해야 합니다. 자세한 내용은 D3D_NAME D3D_NAME_INNER_COVERAGE 및 D3D11_NAME_INNER_COVERAGE 열거형 상수를 참조하세요.
D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 UAV(형식화되지 않은 액세스 뷰)에 대한 추가 형식 로드를 지원해야 합니다. D3D12_FEATURE_DATA_D3D12_OPTIONS 구조체의 TypedUAVLoadAdditionalFormats 멤버를 참조하세요.
D3D_SHADER_REQUIRES_ROVS. 셰이더를 사용하려면 그래픽 드라이버 및 하드웨어가 RAV(래스터라이저 정렬 보기)를 지원해야 합니다. 래스터라이저 순서가 지정된 뷰를 참조하세요.
D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 뷰포트를 지원하고 셰이더 공급 래스터라이저에서 대상 배열 인덱스 값을 렌더링해야 합니다. 자세한 내용은 멤버 VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSD3D12_FEATURE_DATA_D3D12_OPTIONS 구조체의Emulation을 참조하세요.
D3D_SHADER_REQUIRES_WAVE_OPS. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 웨이브 작업을 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS1 구조체의 WaveOps 멤버를 참조하세요.
D3D_SHADER_REQUIRES_INT64_OPS. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 64비트 정수 작업을 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS1 구조체의 Int64ShaderOps 멤버를 참조하세요.
D3D_SHADER_REQUIRES_VIEW_ID. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 SV_ViewID 사용하여 뷰 인스턴스를 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS3 구조체의 ViewInstancingTier 멤버를 참조하세요.
D3D_SHADER_REQUIRES_BARYCENTRICS. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 SV_Barycentrics 사용하여 바리센터를 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS3 구조체의 BarycentricsSupported 멤버를 참조하세요.
D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 네이티브 16비트 작업을 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS4 구조체의 Native16BitShaderOpsSupported 멤버를 참조하세요.
D3D_SHADER_REQUIRES_SHADING_RATE. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 VRS(가변 음영 속도) 기능을 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS6 구조체의 variableShadingRateTier 멤버를 참조하세요.
D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 DXR 계층 1.1을 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS5 구조체의 멤버 RaytracingTier를 참조하세요.
D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 샘플러 피드백을 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS7 구조체의 SamplerFeedbackTier 멤버를 참조하세요.
D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 형식화된 리소스에서 int64 원자를 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS9 구조체의 AtomicInt64OnTypedResourceSupported 멤버를 참조하세요.
D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 그룹 공유 메모리에서 int64 원자를 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS9 구조체의 AtomicInt64OnGroupSharedSupported 멤버를 참조하세요.
D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 메시 및 증폭 셰이더에서 파생을 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS9 구조체의 DerivativesInMeshAndAmplificationShadersSupported 멤버를 참조하세요.
D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 동적 리소스(셰이더 모델 6.6의 요구 사항) 및 ResourceDescriptorHeap 을 지원해야 합니다. 자세한 내용은 GitHub의 HLSL 동적 리소스 사양을 참조하세요.
D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 동적 리소스(셰이더 모델 6.6의 요구 사항) 및 특히 SamplerDescriptorHeap 을 지원해야 합니다. 자세한 내용은 GitHub의 HLSL 동적 리소스 사양을 참조하세요.
D3D_SHADER_REQUIRES_WAVE_MMA. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 Wave MMA를 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS9 구조체의 WaveMMATier 멤버를 참조하세요.
D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE. 셰이더를 사용하려면 그래픽 드라이버와 하드웨어가 설명자 힙 리소스에서 int64 원자를 지원해야 합니다. 자세한 내용은 D3D12_FEATURE_DATA_D3D12_OPTIONS11 구조체의 AtomicInt64OnDescriptorHeapResourceSupported 멤버를 참조하세요.
설명
헤더 파일이 셰이더 요구 사항 플래그를 정의하는 방법은 d3d12shader.h
다음과 같습니다.
#define D3D_SHADER_REQUIRES_DOUBLES 0x00000001
#define D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL 0x00000002
#define D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE 0x00000004
#define D3D_SHADER_REQUIRES_64_UAVS 0x00000008
#define D3D_SHADER_REQUIRES_MINIMUM_PRECISION 0x00000010
#define D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS 0x00000020
#define D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS 0x00000040
#define D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING 0x00000080
#define D3D_SHADER_REQUIRES_TILED_RESOURCES 0x00000100
#define D3D_SHADER_REQUIRES_STENCIL_REF 0x00000200
#define D3D_SHADER_REQUIRES_INNER_COVERAGE 0x00000400
#define D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00000800
#define D3D_SHADER_REQUIRES_ROVS 0x00001000
#define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x00002000
#define D3D_SHADER_REQUIRES_WAVE_OPS 0x00004000
#define D3D_SHADER_REQUIRES_INT64_OPS 0x00008000
#define D3D_SHADER_REQUIRES_VIEW_ID 0x00010000
#define D3D_SHADER_REQUIRES_BARYCENTRICS 0x00020000
#define D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS 0x00040000
#define D3D_SHADER_REQUIRES_SHADING_RATE 0x00080000
#define D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1 0x00100000
#define D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK 0x00200000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE 0x00400000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED 0x00800000
#define D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x01000000
#define D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x02000000
#define D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x04000000
#define D3D_SHADER_REQUIRES_WAVE_MMA 0x08000000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000
요구 사항
대상 플랫폼 | Windows |
헤더 | d3d12shader.h |