D3D12_FEATURE_DATA_D3D12_OPTIONS2 结构是用于检查硬件支持的更多 D3D12 选项和特性的一部分。以下是该结构的定义:
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
  BOOL DepthBoundsTestSupported;
  D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
  UINT CopyQueueTimestampQueriesSupported;
  D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
  D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
  BOOL BarycentricsSupported;
  D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
  UINT MaxGPUVirtualAddressBitsPerResource;
  BOOL StandardSwizzle64KBSupported;
  D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
  BOOL CrossAdapterRowMajorTextureSupported;
  BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
  D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
  BOOL PSSpecifiedStencilRefSupported;
  BOOL TypedUAVLoadAdditionalFormats;
  BOOL ROVsSupported;
  D3D12_CONSERVATIVE_RASTERIZATION_TIER1 ConservativeRasterizationTier1;
  D3D12_HEAPS_TIER Tier2TextureHeaps;
  UINT16 TileBasedRenderer;
  UINT16 UMA;
  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS2;

结构的成员如下:

  •  DepthBoundsTestSupported: 表示硬件是否支持深度边界测试。


  •  ProgrammableSamplePositionsTier: 一个枚举类型的值,表示硬件对可编程采样位置的支持等级。


  •  CopyQueueTimestampQueriesSupported: 表示硬件是否支持复制队列的时间戳查询。


  •  WriteBufferImmediateSupportFlags: 一个枚举类型的值,表示硬件对于立即写入缓冲区的支持标志。


  •  ViewInstancingTier: 一个枚举类型的值,表示硬件对视图实例化的支持等级。


  •  BarycentricsSupported: 表示硬件是否支持重心坐标插值。


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


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


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


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


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


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


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


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


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


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


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


  •  Tier2TextureHeaps: 一个枚举类型的值,表示硬件对 Tier 2 纹理堆的支持等级。


  •  TileBasedRenderer: 一个表示硬件是否为基于瓷片的渲染器的标志。


  •  UMA: 一个表示硬件是否支持统一内存体系结构(UMA)的标志。


  •  SharedResourceCompatibilityTier: 一个枚举类型的值,表示硬件对于共享资源的兼容性等级。


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


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