D3D12_FEATURE_DATA_D3D12_OPTIONS 结构 (d3d12.h)

介绍当前图形驱动程序中的 Direct3D 12 功能选项。

语法

typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS {
  BOOL                                  DoublePrecisionFloatShaderOps;
  BOOL                                  OutputMergerLogicOp;
  D3D12_SHADER_MIN_PRECISION_SUPPORT    MinPrecisionSupport;
  D3D12_TILED_RESOURCES_TIER            TiledResourcesTier;
  D3D12_RESOURCE_BINDING_TIER           ResourceBindingTier;
  BOOL                                  PSSpecifiedStencilRefSupported;
  BOOL                                  TypedUAVLoadAdditionalFormats;
  BOOL                                  ROVsSupported;
  D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
  UINT                                  MaxGPUVirtualAddressBitsPerResource;
  BOOL                                  StandardSwizzle64KBSupported;
  D3D12_CROSS_NODE_SHARING_TIER         CrossNodeSharingTier;
  BOOL                                  CrossAdapterRowMajorTextureSupported;
  BOOL                                  VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
  D3D12_RESOURCE_HEAP_TIER              ResourceHeapTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS;

成员

DoublePrecisionFloatShaderOps

指定是否允许对着色器操作使用 双精度 类型。 如果 为 TRUE,则允许使用双精度类型;否则 为 FALSE。 支持的操作等效于 D3D11_FEATURE_DATA_D3D11_OPTIONS 结构的 Direct3D 11 的 ExtendedDoublesShaderInstructions 成员。

若要使用任何使用 double 类型编译的 HLSL 着色器,运行时必须将 DoublePrecisionFloatShaderOps 设置为 TRUE

OutputMergerLogicOp

指定逻辑操作在混合状态下是否可用。 如果逻辑操作在混合状态下可用,运行时将此成员设置为 TRUE ,否则为 FALSE 。 对于功能级别 9.1、9.2 和 9.3,此成员为 FALSE 。 对于功能级别 10、10.1 和 11,此成员是可选的。 对于功能级别 11.1 和 12,此成员为 TRUE

MinPrecisionSupport

使用按位 OR 运算组合的 D3D12_SHADER_MIN_PRECISION_SUPPORT类型值的组合。 生成的值指定驱动程序为着色器阶段支持的最低精度级别。 值为零表示驱动程序仅支持所有着色器阶段的完整 32 位精度。

TiledResourcesTier

指定硬件和驱动程序是否支持平铺资源。 运行时将此成员设置为 D3D12_TILED_RESOURCES_TIER类型的值,该值指示硬件和驱动程序是否支持平铺资源和在哪个层级别。

ResourceBindingTier

指定硬件和驱动程序支持资源绑定的级别。 运行时将此成员设置为指示层级别的 D3D12_RESOURCE_BINDING_TIER类型值。

PSSpecifiedStencilRefSupported

指定是否支持像素着色器模具 ref。 如果 为 TRUE,则支持它;否则 为 FALSE

TypedUAVLoadAdditionalFormats

指定是否支持加载类型化无序访问视图的其他格式 (UAV) 。 如果 为 TRUE,则支持它;否则 为 FALSE

ROVsSupported

指定是否支持光 栅器顺序视图 (ROV) 。 如果 为 TRUE,则支持它们;否则 为 FALSE

ConservativeRasterizationTier

指定硬件和驱动程序支持保守光栅化的级别。 运行时将此成员设置为指示层级别的 D3D12_CONSERVATIVE_RASTERIZATION_TIER类型的值。

MaxGPUVirtualAddressBitsPerResource

请勿使用此字段;请改用 D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT 查询 (具有 MaxGPUVirtualAddressBitsPerResource 成员) 的结构,这更准确。

StandardSwizzle64KBSupported

如果硬件支持具有 64KB 标准重排模式的纹理,则为 TRUE。 支持此模式可实现零复制纹理优化,同时为纹理中的每个维度提供近等边位置。 有关纹理重排选项和限制,请参阅 D3D12_TEXTURE_LAYOUT

CrossNodeSharingTier

一个 D3D12_CROSS_NODE_SHARING_TIER 枚举常量,该常量指定具有多个节点(例如第 1 层、第 1 层或第 2 层)的适配器节点之间的共享级别。

CrossAdapterRowMajorTextureSupported

FALSE 表示设备仅支持跨适配器行主纹理的复制操作。 TRUE 表示设备支持着色器资源视图、无序访问视图和呈现跨适配器行主纹理的目标视图。 “跨适配器”是指多个适配器之间的 (甚至从不同的 IHV) 。

VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation

在没有几何着色器仿真的情况下,是否支持来自任何着色器馈送光栅器的视区 (VP) 和呈现目标 (RT) 数组索引。 比较 D3D11_FEATURE_DATA_D3D11_OPTIONS3 结构的 VPAndRTArrayIndexFromAnyShaderFeedingRasterizer 成员。 在 ID3D12ShaderReflection::GetRequiresFlags 中,请参阅 #define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER。

ResourceHeapTier

指定硬件和驱动程序要求与资源类型相关的堆归属的级别。 运行时将此成员设置为 D3D12_RESOURCE_HEAP_TIER 枚举常量。

注解

请参阅 D3D12_FEATURE

要求

要求
Header d3d12.h

另请参阅

传统型光栅化

核心结构

D3D12_FEATURE

光栅器有序视图