diff --git a/.pick_status.json b/.pick_status.json index c5c0510982e..1b69f817fdb 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -355,7 +355,7 @@ "description": "softpipe: count CS invocations for pipeline stats queries.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "e749c30cebe071da450e28cb47b1b7deb8284a39" }, 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;