diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c index 91bae31ad56..99aa9c12a4c 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_context.c +++ b/src/gallium/drivers/etnaviv/etnaviv_context.c @@ -558,6 +558,8 @@ etna_flush(struct pipe_context *pctx, struct pipe_fence_handle **fence, struct etna_context *ctx = etna_context(pctx); int out_fence_fd = -1; + ctx->stats.flushes++; + list_for_each_entry(struct etna_acc_query, aq, &ctx->active_acc_queries, node) etna_acc_query_suspend(aq, ctx); diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.h b/src/gallium/drivers/etnaviv/etnaviv_context.h index 82d750d366d..d4bb21fa115 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_context.h +++ b/src/gallium/drivers/etnaviv/etnaviv_context.h @@ -192,6 +192,7 @@ struct etna_context { uint64_t prims_generated; uint64_t draw_calls; uint64_t rs_operations; + uint64_t flushes; } stats; int in_fence_fd; diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_sw.c b/src/gallium/drivers/etnaviv/etnaviv_query_sw.c index 6bcd04d829e..3def0957229 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_sw.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query_sw.c @@ -51,6 +51,8 @@ read_counter(struct etna_context *ctx, unsigned type) return ctx->stats.draw_calls; case ETNA_QUERY_RS_OPERATIONS: return ctx->stats.rs_operations; + case ETNA_QUERY_CTX_FLUSHES: + return ctx->stats.flushes; } return 0; @@ -100,6 +102,7 @@ etna_sw_create_query(struct etna_context *ctx, unsigned query_type) case PIPE_QUERY_PRIMITIVES_GENERATED: case ETNA_QUERY_DRAW_CALLS: case ETNA_QUERY_RS_OPERATIONS: + case ETNA_QUERY_CTX_FLUSHES: break; default: return NULL; @@ -120,6 +123,7 @@ static const struct pipe_driver_query_info list[] = { {"prims-generated", PIPE_QUERY_PRIMITIVES_GENERATED, { 0 }}, {"draw-calls", ETNA_QUERY_DRAW_CALLS, { 0 }}, {"rs-operations", ETNA_QUERY_RS_OPERATIONS, { 0 }}, + {"ctx-flushes", ETNA_QUERY_CTX_FLUSHES, { 0 }}, }; int diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_sw.h b/src/gallium/drivers/etnaviv/etnaviv_query_sw.h index f5a2dbef1a6..fcf0d4a40ff 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_sw.h +++ b/src/gallium/drivers/etnaviv/etnaviv_query_sw.h @@ -32,6 +32,7 @@ #define ETNA_QUERY_DRAW_CALLS (ETNA_SW_QUERY_BASE + 0) #define ETNA_QUERY_RS_OPERATIONS (ETNA_SW_QUERY_BASE + 1) +#define ETNA_QUERY_CTX_FLUSHES (ETNA_SW_QUERY_BASE + 2) struct etna_sw_query { struct etna_query base;