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_OPTIONS 的 ExtendedDoublesShaderInstructions 成员。
D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS。 着色器要求图形驱动程序和硬件支持着色器中的 msad4 内部函数。 有关详细信息,请参阅 D3D12_FEATURE_DATA_D3D12_OPTIONS 的 SAD4ShaderInstructions 成员。
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。 着色器要求图形驱动程序和硬件支持光栅器有序视图 (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 |