D3D12_FEATURE_DATA_D3D12_OPTIONS1 结构是用于检查硬件支持的更多 D3D12 选项和特性的一部分。以下是该结构的定义:
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
  BOOL WaveOps;
  UINT WaveLaneCountMin;
  UINT WaveLaneCountMax;
  UINT TotalLaneCount;
  BOOL ExpandedComputeResourceStates;
  BOOL Int64ShaderOps;
  BOOL ResourceHeapTier2;
  BOOL DepthBoundsTestSupported;
  D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
  BOOL CopyWithOverlapSupport;
  BOOL CpuPageable;
  BOOL MouseExclusiveMode;
  BOOL MouseRelativeMode;
  BOOL IndependentBlend;
  BOOL VertexPipelineUAVWritesAndAtomics;
  UINT ReservedUAVHeapSize;
  UINT ReservedTexture2DMSUAVRegisterSpace;
  UINT ReservedTexture2DMSUAVRegisterSpaceNotBoundsChecked;
  UINT ReservedRTVHeapSize;
  BOOL WriteBufferImmediateSupport;
  BOOL ViewInstancingTier;
  BOOL BarycentricsSupported;
  BOOL ConservativeRasterizationTier1;
  BOOL MaxGPUVirtualAddressBitsPerResource;
  BOOL StandardSwizzle64KBSupported;
  BOOL CrossNodeSharingTier;
  BOOL CrossAdapterRowMajorTextureSupported;
  BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
  BOOL ReservedResourceBindingTier;
  BOOL VariablePixelRateShading;
  BOOL Count4Formats;
} D3D12_FEATURE_DATA_D3D12_OPTIONS1;

结构的成员如下:

  •  WaveOps: 表示硬件是否支持波操作(Wave Operations)。


  •  WaveLaneCountMin: 支持的波的最小波长数量。


  •  WaveLaneCountMax: 支持的波的最大波长数量。


  •  TotalLaneCount: 硬件支持的总波长数量。


  •  ExpandedComputeResourceStates: 表示硬件是否支持扩展的计算资源状态。


  •  Int64ShaderOps: 表示硬件是否支持 64 位整数着色器操作。


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


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


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


  •  CopyWithOverlapSupport: 表示硬件是否支持复制重叠的资源。


  •  CpuPageable: 表示硬件是否支持 CPU pageable 堆类型。


  •  MouseExclusiveMode: 表示硬件是否支持鼠标的独占模式。


  •  MouseRelativeMode: 表示硬件是否支持鼠标的相对模式。


  •  IndependentBlend: 表示硬件是否支持独立混合。


  •  VertexPipelineUAVWritesAndAtomics: 表示硬件是否支持在顶点着色器中的 UAV 写入和原子操作。


  •  ReservedUAVHeapSize: 保留的 UAV 堆大小。


  •  ReservedTexture2DMSUAVRegisterSpace: 保留的 Texture2DMS UAV 寄存器空间。


  •  ReservedTexture2DMSUAVRegisterSpaceNotBoundsChecked: 保留的未检查边界的 Texture2DMS UAV 寄存器空间。


  •  ReservedRTVHeapSize: 保留的 RTV 堆大小。


  •  WriteBufferImmediateSupport: 表示硬件是否支持立即写入缓冲区。


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


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


  •  ConservativeRasterizationTier1: 表示硬件是否支持保守光栅化的第一支持等级。


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


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


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


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


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


  •  ReservedResourceBindingTier: 保留的资源绑定支持等级。


  •  VariablePixelRateShading: 表示硬件是否支持可变像素率阴影。


  •  Count4Formats: 表示硬件是否支持 Count4 格式。


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


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