D3D11_QUERY 枚举 (d3d11.h)

查询类型。

语法

typedef enum D3D11_QUERY {
  D3D11_QUERY_EVENT = 0,
  D3D11_QUERY_OCCLUSION,
  D3D11_QUERY_TIMESTAMP,
  D3D11_QUERY_TIMESTAMP_DISJOINT,
  D3D11_QUERY_PIPELINE_STATISTICS,
  D3D11_QUERY_OCCLUSION_PREDICATE,
  D3D11_QUERY_SO_STATISTICS,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE,
  D3D11_QUERY_SO_STATISTICS_STREAM0,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0,
  D3D11_QUERY_SO_STATISTICS_STREAM1,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1,
  D3D11_QUERY_SO_STATISTICS_STREAM2,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2,
  D3D11_QUERY_SO_STATISTICS_STREAM3,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3
} ;

常量

 
D3D11_QUERY_EVENT
值: 0
确定 GPU 是否已完成命令处理。 GPU 完成处理命令后, ID3D11DeviceContext::GetData 将返回S_OK,pData 将指向值为 TRUE 的 BOOL。 使用此类型的查询时, ID3D11DeviceContext::Begin 处于禁用状态。
D3D11_QUERY_OCCLUSION
获取在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之间通过深度和模具测试的样本数。 ID3D11DeviceContext::GetData 返回 UINT64。 如果禁用深度或模具测试,则每个测试都将计为通过。
D3D11_QUERY_TIMESTAMP
获取一个时间戳值,其中 ID3D11DeviceContext::GetData 返回 UINT64。 仅当在D3D11_QUERY_TIMESTAMP_DISJOINT查询中间完成两个时间戳查询时,这种查询才有用。 两个时间戳的差值可用于确定已经过的时钟周期数,D3D11_QUERY_TIMESTAMP_DISJOINT查询将确定该差异是否为可靠值,并且还具有一个值,该值显示如何将刻度数转换为秒。 请参阅 D3D11_QUERY_DATA_TIMESTAMP_DISJOINT。 使用此类型的查询时, ID3D11DeviceContext::Begin 处于禁用状态。
D3D11_QUERY_TIMESTAMP_DISJOINT
确定D3D11_QUERY_TIMESTAMP是否返回可靠值,并给出处理器的频率,使你能够将经过的刻度数转换为秒。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_TIMESTAMP_DISJOINT。 每帧或更少只能调用此类型的查询一次。
D3D11_QUERY_PIPELINE_STATISTICS
获取管道统计信息,例如 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之间的像素着色器调用数。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_PIPELINE_STATISTICS
D3D11_QUERY_OCCLUSION_PREDICATE
与D3D11_QUERY_OCCLUSION类似, ID3D11DeviceContext::GetData 返回一个 BOOL,指示是否有任何样本通过深度和模具测试 - TRUE 表示至少一个通过, FALSE 表示没有通过。
D3D11_QUERY_SO_STATISTICS
获取流输出统计信息,例如 在 ID3D11DeviceContext::BeginID3D11DeviceContext::End 之间流式传输的基元数。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_SO_STATISTICS 结构。
D3D11_QUERY_SO_OVERFLOW_PREDICATE
确定 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之间是否溢出了任何流输出缓冲区。 ID3D11DeviceContext::GetData 返回 BOOL - TRUE 表示存在溢出, FALSE 表示没有溢出。 如果流输出写入多个缓冲区,并且其中一个缓冲区溢出,则它将停止写入所有输出缓冲区。 当 Direct3D 检测到溢出时,可防止发生溢出 - 不会损坏任何内存。 此谓词可与SO_STATISTICS查询结合使用,以便在发生溢出时,SO_STATISTIC查询会让应用程序知道需要多少内存来防止溢出。
D3D11_QUERY_SO_STATISTICS_STREAM0
获取流 0 的流输出统计信息,例如 ID3D11DeviceContext::BeginID3D11DeviceContext::End 之间流式传输的基元数。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_SO_STATISTICS 结构。
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0
确定流 0 输出缓冲区是否在 ID3D11DeviceContext::BeginID3D11DeviceContext::End 之间溢出。 ID3D11DeviceContext::GetData 返回 BOOL - TRUE 表示存在溢出, FALSE 表示没有溢出。 如果流输出写入多个缓冲区,并且其中一个缓冲区溢出,则它将停止写入所有输出缓冲区。 当 Direct3D 检测到溢出时,可防止发生溢出 - 不会损坏任何内存。 此谓词可与SO_STATISTICS查询结合使用,以便在发生溢出时,SO_STATISTIC查询会让应用程序知道需要多少内存来防止溢出。
D3D11_QUERY_SO_STATISTICS_STREAM1
获取流 1 的流输出统计信息,例如在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之间流式传输的基元数。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_SO_STATISTICS 结构。
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1
确定流 1 输出缓冲区是否在 ID3D11DeviceContext::BeginID3D11DeviceContext::End 之间溢出。 ID3D11DeviceContext::GetData 返回 BOOL - TRUE 表示存在溢出, FALSE 表示没有溢出。 如果流输出写入多个缓冲区,并且其中一个缓冲区溢出,则它将停止写入所有输出缓冲区。 当 Direct3D 检测到溢出时,可防止发生溢出 - 不会损坏任何内存。 此谓词可与SO_STATISTICS查询结合使用,以便在发生溢出时,SO_STATISTIC查询会让应用程序知道需要多少内存来防止溢出。
D3D11_QUERY_SO_STATISTICS_STREAM2
获取流 2 的流输出统计信息,例如在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之间流式传输的基元数。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_SO_STATISTICS 结构。
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2
确定流 2 输出缓冲区是否在 ID3D11DeviceContext::BeginID3D11DeviceContext::End 之间溢出。 ID3D11DeviceContext::GetData 返回 BOOL - TRUE 表示存在溢出, FALSE 表示没有溢出。 如果流输出写入多个缓冲区,并且其中一个缓冲区溢出,则它将停止写入所有输出缓冲区。 当 Direct3D 检测到溢出时,可防止发生溢出 - 不会损坏任何内存。 此谓词可与SO_STATISTICS查询结合使用,以便在发生溢出时,SO_STATISTIC查询会让应用程序知道需要多少内存来防止溢出。
D3D11_QUERY_SO_STATISTICS_STREAM3
获取流 3 的流输出统计信息,例如 在 ID3D11DeviceContext::BeginID3D11DeviceContext::End 之间流式传输的基元数。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_SO_STATISTICS 结构。
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3
确定流 3 输出缓冲区是否在 ID3D11DeviceContext::BeginID3D11DeviceContext::End 之间溢出。 ID3D11DeviceContext::GetData 返回 BOOL - TRUE 表示存在溢出, FALSE 表示没有溢出。 如果流输出写入多个缓冲区,并且其中一个缓冲区溢出,则它将停止写入所有输出缓冲区。 当 Direct3D 检测到溢出时,可防止发生溢出 - 不会损坏任何内存。 此谓词可与SO_STATISTICS查询结合使用,以便在发生溢出时,SO_STATISTIC查询会让应用程序知道需要多少内存来防止溢出。

注解

使用 ID3D11Device::CreateQuery 创建查询。

要求

要求
Header d3d11.h

另请参阅

核心枚举