다음을 통해 공유


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_COVERAGED3D11_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

추가 정보