D3D12_FEATURE_DATA_ROOT_SIGNATURE 是 Direct3D 12 中的一个结构,用于查询硬件设备对于根签名(Root Signature)的支持情况。以下是该结构的定义:
typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE {
  const void       *pSignature;
  UINT             NodeMask;
  D3D_ROOT_SIGNATURE_VERSION HighestVersion;
  void             *pBlobOut;
  SIZE_T           BlobOutSizeInBytes;
  HRESULT          *pHResult;
} D3D12_FEATURE_DATA_ROOT_SIGNATURE;

结构成员的含义如下:

  •  pSignature: 一个指向根签名的指针。

  •  NodeMask: 表示硬件设备的节点掩码。

  •  HighestVersion: 表示请求的最高根签名版本。

  •  pBlobOut: 输出参数,指向存储查询结果的缓冲区的指针。

  •  BlobOutSizeInBytes: 指定输出缓冲区的大小。

  •  pHResult: 一个指向 HRESULT 的指针,用于存储操作的结果。


你可以使用这个结构来查询硬件设备对于给定根签名的支持情况,例如:
D3D12_FEATURE_DATA_ROOT_SIGNATURE rootSignatureSupport = {};
rootSignatureSupport.pSignature = pRootSignature; // 指向你要查询的根签名的指针
rootSignatureSupport.NodeMask = 0; // 节点掩码,一般为 0
rootSignatureSupport.HighestVersion = D3D_ROOT_SIGNATURE_VERSION_1_0; // 请求的最高根签名版本
rootSignatureSupport.pBlobOut = nullptr; // 用于存储查询结果的缓冲区
rootSignatureSupport.BlobOutSizeInBytes = 0; // 输出缓冲区的大小
rootSignatureSupport.pHResult = nullptr; // 存储操作结果的指针

HRESULT hr = pDevice->CheckFeatureSupport(D3D12_FEATURE_ROOT_SIGNATURE, &rootSignatureSupport, sizeof(rootSignatureSupport));

if (SUCCEEDED(hr)) {
    // 查询成功,你可以检查输出缓冲区中的数据来获取有关根签名支持的详细信息
    // 具体的处理取决于你的根签名查询的目的
} else {
    // 查询失败,处理错误...
}

这个结构对于了解硬件设备对于给定根签名版本和特定根签名的支持情况非常有用。


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