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。 着色器要求图形驱动程序和硬件支持光栅器有序视图 (ROV) 。 请参阅 光栅器有序视图

D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER。 着色器要求图形驱动程序和硬件支持视区,并从任何着色器馈送光栅器呈现目标数组索引值。 有关详细信息,请参阅 D3D12_FEATURE_DATA_D3D12_OPTIONS 结构的成员 VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation

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

另请参阅