D3D12_FEATURE_DATA_D3D12_OPTIONS 结构用于检查硬件支持的一些 D3D12 选项和特性。以下是该结构的定义:
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;
  BOOL ResourceHeapTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS;

结构的成员如下:

  •  DoublePrecisionFloatShaderOps: 表示硬件是否支持双精度浮点着色器操作。


  •  OutputMergerLogicOp: 表示硬件是否支持输出合并逻辑操作。


  •  MinPrecisionSupport: 一个枚举类型的值,表示硬件对最小精度的支持情况。


  •  TiledResourcesTier: 一个枚举类型的值,表示硬件对平铺资源的支持等级。


  •  ResourceBindingTier: 一个枚举类型的值,表示硬件对资源绑定的支持等级。


  •  PSSpecifiedStencilRefSupported: 表示硬件是否支持像素着色器中指定模板引用值。


  •  TypedUAVLoadAdditionalFormats: 表示硬件是否支持加载附加格式的类型化 UAV。


  •  ROVsSupported: 表示硬件是否支持可选的裸眼输出(ROVs)。


  •  ConservativeRasterizationTier: 一个枚举类型的值,表示硬件对保守光栅化的支持等级。


  •  MaxGPUVirtualAddressBitsPerResource: 表示每个资源的最大 GPU 虚拟地址位数。


  •  StandardSwizzle64KBSupported: 表示硬件是否支持标准的 64KB swizzle 操作。


  •  CrossNodeSharingTier: 一个枚举类型的值,表示硬件对跨节点共享资源的支持等级。


  •  CrossAdapterRowMajorTextureSupported: 表示硬件是否支持跨适配器的行主纹理。


  •  VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation: 表示硬件是否支持从任何喂养光栅化器的着色器中产生的视口和渲染目标数组索引,而无需几何着色器模拟。


  •  ResourceHeapTier: 表示硬件对资源堆的支持等级。


这个结构允许应用程序查询硬件对于一些 D3D12 功能和选项的支持情况,以便在程序运行时适应硬件的性能和特性。如果需要更详细的信息,建议查阅 Microsoft 的官方文档或最新版本的 Direct3D 12 头文件(D3d12.h)中的注释。


转载请注明出处:http://www.pingtaimeng.com/article/detail/25930/Win32 API/D3d12.h/D3D12_FEATURE_DATA_D3D12_OPTIONS