D3D11_QUERY_DESC 结构是Direct3D 11中用于描述查询(Query)的结构,用于创建查询对象时指定查询的类型和其他相关参数。

以下是 D3D11_QUERY_DESC 结构的定义:
typedef struct D3D11_QUERY_DESC {
  D3D11_QUERY Query;
  UINT MiscFlags;
} D3D11_QUERY_DESC;

这个结构包含了两个成员:

  •  Query: 一个枚举值,指定查询的类型。这可以是如下值之一:

  - D3D11_QUERY_EVENT: 用于在GPU完成前序的命令列表时发出信号。
  - D3D11_QUERY_OCCLUSION: 用于测量经过的像素数量。
  - D3D11_QUERY_TIMESTAMP: 用于获取GPU时间戳。
  - D3D11_QUERY_TIMESTAMP_DISJOINT: 用于检测GPU时间戳计数是否在某个时间间隔内不连续。
  - D3D11_QUERY_PIPELINE_STATISTICS: 用于获取关于图形管道统计信息的数据。
  - D3D11_QUERY_OCCLUSION_PREDICATE: 在测量经过的像素数量时,同时返回一个布尔值,指示像素数量是否大于指定的阈值。
  - D3D11_QUERY_SO_STATISTICS: 用于获取与流输出统计信息相关的数据。
  - D3D11_QUERY_SO_OVERFLOW_PREDICATE: 在流输出统计时,同时返回一个布尔值,指示是否发生了溢出。

  •  MiscFlags: 一组标志,用于指定查询的其他参数。这些标志的含义取决于查询的类型。


通过使用这个结构,您可以在创建查询对象时指定查询的类型和其他相关参数。例如,您可以使用这个结构创建一个用于测量GPU时间戳的查询对象,然后在适当的时候使用 ID3D11DeviceContext::GetData 方法来获取时间戳的值。


转载请注明出处:http://www.zyzy.cn/article/detail/25683/Win32 API/D3d11.h/D3D11_QUERY_DESC