diff --git a/src/gallium/drivers/softpipe/sp_compute.c b/src/gallium/drivers/softpipe/sp_compute.c index 7e9a9455e90..ac8d51196a4 100644 --- a/src/gallium/drivers/softpipe/sp_compute.c +++ b/src/gallium/drivers/softpipe/sp_compute.c @@ -227,6 +227,11 @@ softpipe_launch_grid(struct pipe_context *context, } } + if (softpipe->active_statistics_queries) { + softpipe->pipeline_statistics.cs_invocations += + grid_size[0] * grid_size[1] * grid_size[2]; + } + for (i = 0; i < num_threads_in_group; i++) { cs_delete(cs, machines[i]); tgsi_exec_machine_destroy(machines[i]); diff --git a/src/gallium/drivers/softpipe/sp_query.c b/src/gallium/drivers/softpipe/sp_query.c index bb86194b31f..91fa0c6a990 100644 --- a/src/gallium/drivers/softpipe/sp_query.c +++ b/src/gallium/drivers/softpipe/sp_query.c @@ -201,6 +201,8 @@ softpipe_end_query(struct pipe_context *pipe, struct pipe_query *q) softpipe->pipeline_statistics.c_primitives - sq->stats.c_primitives; sq->stats.ps_invocations = softpipe->pipeline_statistics.ps_invocations - sq->stats.ps_invocations; + sq->stats.cs_invocations = + softpipe->pipeline_statistics.cs_invocations - sq->stats.cs_invocations; softpipe->active_statistics_queries--; break;