softpipe: count CS invocations for pipeline stats queries.

Part of fixing KHR-GL33.pipeline_statistics_query_tests_ARB.
  functional_compute_shader_invocations

(also requires a test bugfix:
https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2694).

Fixes: e749c30ceb ("softpipe: add support for compute shaders. (v2)")
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8065>
(cherry picked from commit 5dd5fb1926)
This commit is contained in:
Eric Anholt 2020-12-11 12:39:22 -08:00 committed by Dylan Baker
parent cc7a1ab345
commit 2fd551d4f3
3 changed files with 8 additions and 1 deletions

View file

@ -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"
},

View file

@ -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]);

View file

@ -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;