softpipe: count CS invocations for pipeline stats queries.
authorEric Anholt <eric@anholt.net>
Fri, 11 Dec 2020 20:39:22 +0000 (12:39 -0800)
committerMarge Bot <eric+marge@anholt.net>
Wed, 23 Dec 2020 19:55:49 +0000 (19:55 +0000)
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: e749c30cebe0 ("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>

src/gallium/drivers/softpipe/sp_compute.c
src/gallium/drivers/softpipe/sp_query.c

index 7e9a945..ac8d511 100644 (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]);
index bb86194..91fa0c6 100644 (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;