Module: Mesa
Branch: staging/20.3
Commit: 2fd551d4f3cef684dc0d3dc762c206ce2fcca576
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2fd551d4f3cef684dc0d3dc762c206ce2fcca576

Author: Eric Anholt <[email protected]>
Date:   Fri Dec 11 12:39:22 2020 -0800

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: e749c30cebe0 ("softpipe: add support for compute shaders. (v2)")
Reviewed-by: Gert Wollny <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8065>
(cherry picked from commit 5dd5fb1926c72c97571ddcb5f6c696766e7c9abc)

---

 .pick_status.json                         | 2 +-
 src/gallium/drivers/softpipe/sp_compute.c | 5 +++++
 src/gallium/drivers/softpipe/sp_query.c   | 2 ++
 3 files changed, 8 insertions(+), 1 deletion(-)

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;

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to