diff options
author | Kenneth Graunke <[email protected]> | 2019-01-11 13:22:57 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-01-15 11:43:04 -0800 |
commit | f967273fb442de8281f8248e8c8bff5b13ab89e4 (patch) | |
tree | 9c2c43acaa2fc7f0bbbb86b1d138807fd694d608 /src | |
parent | e760be08b45dd2d56058d7afc9048b99241fd1de (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')
-rw-r--r-- | src/mesa/state_tracker/st_cb_queryobj.c | 88 |
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 && |