D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER 枚举是Direct3D 12中的一个枚举类型,用于表示设备对共享资源的兼容性等级。共享资源兼容性等级指示了设备是否支持使用共享资源创建多个交换链、多个命令队列或者其他一些共享资源的特性。

以下是该枚举的定义:
typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0  = 0,
  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1  = 1,
  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2  = 2,
  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_3  = 3
} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;

  •  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 表示不支持共享资源。

  •  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 表示支持部分共享资源特性。

  •  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 表示支持更多的共享资源特性。

  •  D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_3 表示支持最高级别的共享资源特性。


这个枚举通常用于检查设备的兼容性,以便在创建交换链或其他共享资源时进行适当的设置。

例如,在创建交换链时,可以使用 CheckFeatureSupport 方法来获取设备的共享资源兼容性等级:
D3D12_FEATURE_DATA_SHARED_RESOURCE_COMpatibilityTier compatibilityTier;
compatibilityTier.HardwareAdapter = // 你的硬件适配器;
HRESULT hr = device->CheckFeatureSupport(D3D12_FEATURE_SHARED_RESOURCE_COMPATIBILITY_TIER, &compatibilityTier, sizeof(compatibilityTier));

然后,你可以根据 compatibilityTier.SharedResourceCompatibilityTier 的值来决定是否支持共享资源。


转载请注明出处:http://www.zyzy.cn/article/detail/26110/Win32 API/D3d12.h/D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER