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::Begin 和 ID3D11DeviceContext::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::Begin 和 ID3D11DeviceContext::End 之间流式传输的基元数。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_SO_STATISTICS 结构。 |
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 确定流 0 输出缓冲区是否在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::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::Begin 和 ID3D11DeviceContext::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::Begin 和 ID3D11DeviceContext::End 之间溢出。 ID3D11DeviceContext::GetData 返回 BOOL - TRUE 表示存在溢出, FALSE 表示没有溢出。 如果流输出写入多个缓冲区,并且其中一个缓冲区溢出,则它将停止写入所有输出缓冲区。 当 Direct3D 检测到溢出时,可防止发生溢出 - 不会损坏任何内存。 此谓词可与SO_STATISTICS查询结合使用,以便在发生溢出时,SO_STATISTIC查询会让应用程序知道需要多少内存来防止溢出。 |
D3D11_QUERY_SO_STATISTICS_STREAM3 获取流 3 的流输出统计信息,例如 在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之间流式传输的基元数。 ID3D11DeviceContext::GetData 将返回 D3D11_QUERY_DATA_SO_STATISTICS 结构。 |
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 确定流 3 输出缓冲区是否在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之间溢出。 ID3D11DeviceContext::GetData 返回 BOOL - TRUE 表示存在溢出, FALSE 表示没有溢出。 如果流输出写入多个缓冲区,并且其中一个缓冲区溢出,则它将停止写入所有输出缓冲区。 当 Direct3D 检测到溢出时,可防止发生溢出 - 不会损坏任何内存。 此谓词可与SO_STATISTICS查询结合使用,以便在发生溢出时,SO_STATISTIC查询会让应用程序知道需要多少内存来防止溢出。 |
注解
使用 ID3D11Device::CreateQuery 创建查询。
要求
要求 | 值 |
---|---|
Header | d3d11.h |