summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2018-12-14 21:09:32 -0800
committerKenneth Graunke <kenneth@whitecape.org>2019-01-15 11:43:04 -0800
commite760be08b45dd2d56058d7afc9048b99241fd1de (patch)
tree3f7e25575d2b4d80977972b61811e3f4e924b08a /src
parent4a131a13303773d8b0e4d47e917b9c52d439146a (diff)
st/mesa: Make an enum for pipeline statistics query result indices.
Gallium handles pipeline statistics queries as a single query (PIPE_QUERY_PIPELINE_STATISTICS) which returns a struct with 11 values. Sometimes it's useful to refer to each of those values individually, rather than as a group. To avoid hardcoding numbers, we define a new enum for each value. Here, the name and enum value correspond to the index in the struct pipe_query_data_pipeline_statistics result. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/include/pipe/p_defines.h17
-rw-r--r--src/mesa/state_tracker/st_cb_queryobj.c22
2 files changed, 28 insertions, 11 deletions
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
index 82c49c801e5..4480b54eb2f 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -569,6 +569,23 @@ enum pipe_query_type {
};
/**
+ * Index for PIPE_QUERY_PIPELINE_STATISTICS subqueries.
+ */
+enum pipe_statistics_query_index {
+ PIPE_STAT_QUERY_IA_VERTICES,
+ PIPE_STAT_QUERY_IA_PRIMITIVES,
+ PIPE_STAT_QUERY_VS_INVOCATIONS,
+ PIPE_STAT_QUERY_GS_INVOCATIONS,
+ PIPE_STAT_QUERY_GS_PRIMITIVES,
+ PIPE_STAT_QUERY_C_INVOCATIONS,
+ PIPE_STAT_QUERY_C_PRIMITIVES,
+ PIPE_STAT_QUERY_PS_INVOCATIONS,
+ PIPE_STAT_QUERY_HS_INVOCATIONS,
+ PIPE_STAT_QUERY_DS_INVOCATIONS,
+ PIPE_STAT_QUERY_CS_INVOCATIONS,
+};
+
+/**
* Conditional rendering modes
*/
enum pipe_render_cond_flag {
diff --git a/src/mesa/state_tracker/st_cb_queryobj.c b/src/mesa/state_tracker/st_cb_queryobj.c
index 69e6004c3f1..82f53243336 100644
--- a/src/mesa/state_tracker/st_cb_queryobj.c
+++ b/src/mesa/state_tracker/st_cb_queryobj.c
@@ -386,37 +386,37 @@ st_StoreQueryResult(struct gl_context *ctx, struct gl_query_object *q,
} else if (stq->type == PIPE_QUERY_PIPELINE_STATISTICS) {
switch (q->Target) {
case GL_VERTICES_SUBMITTED_ARB:
- index = 0;
+ index = PIPE_STAT_QUERY_IA_VERTICES;
break;
case GL_PRIMITIVES_SUBMITTED_ARB:
- index = 1;
+ index = PIPE_STAT_QUERY_IA_PRIMITIVES;
break;
case GL_VERTEX_SHADER_INVOCATIONS_ARB:
- index = 2;
+ index = PIPE_STAT_QUERY_VS_INVOCATIONS;
break;
case GL_GEOMETRY_SHADER_INVOCATIONS:
- index = 3;
+ index = PIPE_STAT_QUERY_GS_INVOCATIONS;
break;
case GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB:
- index = 4;
+ index = PIPE_STAT_QUERY_GS_PRIMITIVES;
break;
case GL_CLIPPING_INPUT_PRIMITIVES_ARB:
- index = 5;
+ index = PIPE_STAT_QUERY_C_INVOCATIONS;
break;
case GL_CLIPPING_OUTPUT_PRIMITIVES_ARB:
- index = 6;
+ index = PIPE_STAT_QUERY_C_PRIMITIVES;
break;
case GL_FRAGMENT_SHADER_INVOCATIONS_ARB:
- index = 7;
+ index = PIPE_STAT_QUERY_PS_INVOCATIONS;
break;
case GL_TESS_CONTROL_SHADER_PATCHES_ARB:
- index = 8;
+ index = PIPE_STAT_QUERY_HS_INVOCATIONS;
break;
case GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB:
- index = 9;
+ index = PIPE_STAT_QUERY_DS_INVOCATIONS;
break;
case GL_COMPUTE_SHADER_INVOCATIONS_ARB:
- index = 10;
+ index = PIPE_STAT_QUERY_CS_INVOCATIONS;
break;
default:
unreachable("Unexpected target");