Am Freitag, den 09.06.2017, 12:34 +0200 schrieb Christian Gmeiner: > It could be useful to get the number of emited resolve operations when > doing driver optimizations. > > Signed-off-by: Christian Gmeiner <christian.gmei...@gmail.com>
Reviewed-by: Lucas Stach <l.st...@pengutronix.de> > --- > src/gallium/drivers/etnaviv/etnaviv_context.h | 1 + > src/gallium/drivers/etnaviv/etnaviv_emit.c | 2 ++ > src/gallium/drivers/etnaviv/etnaviv_query.c | 1 + > src/gallium/drivers/etnaviv/etnaviv_query.h | 1 + > src/gallium/drivers/etnaviv/etnaviv_query_sw.c | 3 +++ > 5 files changed, 8 insertions(+) > > diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.h > b/src/gallium/drivers/etnaviv/etnaviv_context.h > index 2bb8cf5..2c9b24d 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_context.h > +++ b/src/gallium/drivers/etnaviv/etnaviv_context.h > @@ -174,6 +174,7 @@ struct etna_context { > struct { > uint64_t prims_emitted; > uint64_t draw_calls; > + uint64_t rs_operations; > } stats; > > struct pipe_debug_callback debug; > diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c > b/src/gallium/drivers/etnaviv/etnaviv_emit.c > index 81aaca9..bfff699 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_emit.c > +++ b/src/gallium/drivers/etnaviv/etnaviv_emit.c > @@ -171,6 +171,8 @@ etna_submit_rs_state(struct etna_context *ctx, > struct etna_cmd_stream *stream = ctx->stream; > struct etna_coalesce coalesce; > > + ctx->stats.rs_operations++; > + > if (screen->specs.pixel_pipes == 1) { > etna_cmd_stream_reserve(stream, 22); > etna_coalesce_start(stream, &coalesce); > diff --git a/src/gallium/drivers/etnaviv/etnaviv_query.c > b/src/gallium/drivers/etnaviv/etnaviv_query.c > index b33e580..617e475 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_query.c > +++ b/src/gallium/drivers/etnaviv/etnaviv_query.c > @@ -84,6 +84,7 @@ etna_get_driver_query_info(struct pipe_screen *pscreen, > unsigned index, > struct pipe_driver_query_info list[] = { > {"prims-emitted", PIPE_QUERY_PRIMITIVES_EMITTED, { 0 }}, > {"draw-calls", ETNA_QUERY_DRAW_CALLS, { 0 }}, > + {"rs-operations", ETNA_QUERY_RS_OPERATIONS, { 0 }}, > }; > > if (!info) > diff --git a/src/gallium/drivers/etnaviv/etnaviv_query.h > b/src/gallium/drivers/etnaviv/etnaviv_query.h > index 9a8d579..cebd662 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_query.h > +++ b/src/gallium/drivers/etnaviv/etnaviv_query.h > @@ -54,6 +54,7 @@ etna_query(struct pipe_query *pq) > } > > #define ETNA_QUERY_DRAW_CALLS (PIPE_QUERY_DRIVER_SPECIFIC + 0) > +#define ETNA_QUERY_RS_OPERATIONS (PIPE_QUERY_DRIVER_SPECIFIC + 1) > > void > etna_query_screen_init(struct pipe_screen *pscreen); > diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_sw.c > b/src/gallium/drivers/etnaviv/etnaviv_query_sw.c > index d6420d9..213c61f 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_query_sw.c > +++ b/src/gallium/drivers/etnaviv/etnaviv_query_sw.c > @@ -50,6 +50,8 @@ read_counter(struct etna_context *ctx, int type) > return ctx->stats.prims_emitted; > case ETNA_QUERY_DRAW_CALLS: > return ctx->stats.draw_calls; > + case ETNA_QUERY_RS_OPERATIONS: > + return ctx->stats.rs_operations; > } > > return 0; > @@ -106,6 +108,7 @@ etna_sw_create_query(struct etna_context *ctx, unsigned > query_type) > switch (query_type) { > case PIPE_QUERY_PRIMITIVES_EMITTED: > case ETNA_QUERY_DRAW_CALLS: > + case ETNA_QUERY_RS_OPERATIONS: > break; > default: > return NULL; _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev