summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2019-01-11 13:22:57 -0800
committerKenneth Graunke <[email protected]>2019-01-15 11:43:04 -0800
commitf967273fb442de8281f8248e8c8bff5b13ab89e4 (patch)
tree9c2c43acaa2fc7f0bbbb86b1d138807fd694d608 /src/mesa/state_tracker
parente760be08b45dd2d56058d7afc9048b99241fd1de (diff)
st/mesa: Rearrange PIPE_QUERY_PIPELINE_STATISTICS result fetching.
This just changes the order of the switch statements, so we only look at target if the query type is PIPE_QUERY_PIPELINE_STATISTICS. The next commit will introduce a new SINGLE query type which can be used for the same GL query types, and it won't want this processing. Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r--src/mesa/state_tracker/st_cb_queryobj.c88
1 files changed, 45 insertions, 43 deletions
diff --git a/src/mesa/state_tracker/st_cb_queryobj.c b/src/mesa/state_tracker/st_cb_queryobj.c
index 82f53243336..9c551da005f 100644
--- a/src/mesa/state_tracker/st_cb_queryobj.c
+++ b/src/mesa/state_tracker/st_cb_queryobj.c
@@ -226,53 +226,55 @@ get_query_result(struct pipe_context *pipe,
if (!pipe->get_query_result(pipe, stq->pq, wait, &data))
return FALSE;
- switch (stq->base.Target) {
- case GL_VERTICES_SUBMITTED_ARB:
- stq->base.Result = data.pipeline_statistics.ia_vertices;
- break;
- case GL_PRIMITIVES_SUBMITTED_ARB:
- stq->base.Result = data.pipeline_statistics.ia_primitives;
- break;
- case GL_VERTEX_SHADER_INVOCATIONS_ARB:
- stq->base.Result = data.pipeline_statistics.vs_invocations;
- break;
- case GL_TESS_CONTROL_SHADER_PATCHES_ARB:
- stq->base.Result = data.pipeline_statistics.hs_invocations;
- break;
- case GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB:
- stq->base.Result = data.pipeline_statistics.ds_invocations;
- break;
- case GL_GEOMETRY_SHADER_INVOCATIONS:
- stq->base.Result = data.pipeline_statistics.gs_invocations;
- break;
- case GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB:
- stq->base.Result = data.pipeline_statistics.gs_primitives;
- break;
- case GL_FRAGMENT_SHADER_INVOCATIONS_ARB:
- stq->base.Result = data.pipeline_statistics.ps_invocations;
- break;
- case GL_COMPUTE_SHADER_INVOCATIONS_ARB:
- stq->base.Result = data.pipeline_statistics.cs_invocations;
- break;
- case GL_CLIPPING_INPUT_PRIMITIVES_ARB:
- stq->base.Result = data.pipeline_statistics.c_invocations;
- break;
- case GL_CLIPPING_OUTPUT_PRIMITIVES_ARB:
- stq->base.Result = data.pipeline_statistics.c_primitives;
- break;
- default:
- switch (stq->type) {
- case PIPE_QUERY_OCCLUSION_PREDICATE:
- case PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE:
- case PIPE_QUERY_SO_OVERFLOW_PREDICATE:
- case PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE:
- stq->base.Result = !!data.b;
+ switch (stq->type) {
+ case PIPE_QUERY_PIPELINE_STATISTICS:
+ switch (stq->base.Target) {
+ case GL_VERTICES_SUBMITTED_ARB:
+ stq->base.Result = data.pipeline_statistics.ia_vertices;
break;
- default:
- stq->base.Result = data.u64;
+ case GL_PRIMITIVES_SUBMITTED_ARB:
+ stq->base.Result = data.pipeline_statistics.ia_primitives;
+ break;
+ case GL_VERTEX_SHADER_INVOCATIONS_ARB:
+ stq->base.Result = data.pipeline_statistics.vs_invocations;
+ break;
+ case GL_TESS_CONTROL_SHADER_PATCHES_ARB:
+ stq->base.Result = data.pipeline_statistics.hs_invocations;
+ break;
+ case GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB:
+ stq->base.Result = data.pipeline_statistics.ds_invocations;
+ break;
+ case GL_GEOMETRY_SHADER_INVOCATIONS:
+ stq->base.Result = data.pipeline_statistics.gs_invocations;
+ break;
+ case GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB:
+ stq->base.Result = data.pipeline_statistics.gs_primitives;
break;
+ case GL_FRAGMENT_SHADER_INVOCATIONS_ARB:
+ stq->base.Result = data.pipeline_statistics.ps_invocations;
+ break;
+ case GL_COMPUTE_SHADER_INVOCATIONS_ARB:
+ stq->base.Result = data.pipeline_statistics.cs_invocations;
+ break;
+ case GL_CLIPPING_INPUT_PRIMITIVES_ARB:
+ stq->base.Result = data.pipeline_statistics.c_invocations;
+ break;
+ case GL_CLIPPING_OUTPUT_PRIMITIVES_ARB:
+ stq->base.Result = data.pipeline_statistics.c_primitives;
+ break;
+ default:
+ unreachable("invalid pipeline statistics counter");
}
break;
+ case PIPE_QUERY_OCCLUSION_PREDICATE:
+ case PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE:
+ case PIPE_QUERY_SO_OVERFLOW_PREDICATE:
+ case PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE:
+ stq->base.Result = !!data.b;
+ break;
+ default:
+ stq->base.Result = data.u64;
+ break;
}
if (stq->base.Target == GL_TIME_ELAPSED &&