Module: Mesa
Branch: main
Commit: 5ff3d4a8a2c8a44ad7a980675827e25975f0a580
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ff3d4a8a2c8a44ad7a980675827e25975f0a580

Author: Lionel Landwerlin <[email protected]>
Date:   Thu Jan 12 19:56:43 2023 +0200

anv: fix generated indirect draw shader stats checks

Signed-off-by: Lionel Landwerlin <[email protected]>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Tested-by: Rohan Garg <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20776>

---

 src/intel/vulkan/anv_generated_indirect_draws.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/intel/vulkan/anv_generated_indirect_draws.c 
b/src/intel/vulkan/anv_generated_indirect_draws.c
index 10d8cfbb659..528786bae60 100644
--- a/src/intel/vulkan/anv_generated_indirect_draws.c
+++ b/src/intel/vulkan/anv_generated_indirect_draws.c
@@ -230,20 +230,24 @@ compile_upload_spirv(struct anv_device *device,
    };
    const unsigned *program = brw_compile_fs(compiler, nir, &params);
 
+   unsigned stat_idx = 0;
    if (wm_prog_data.dispatch_8) {
-      assert(stats[0].spills == 0);
-      assert(stats[0].fills == 0);
-      assert(stats[0].sends == sends_count_expectation);
+      assert(stats[stat_idx].spills == 0);
+      assert(stats[stat_idx].fills == 0);
+      assert(stats[stat_idx].sends == sends_count_expectation);
+      stat_idx++;
    }
    if (wm_prog_data.dispatch_16) {
-      assert(stats[1].spills == 0);
-      assert(stats[1].fills == 0);
-      assert(stats[1].sends == sends_count_expectation);
+      assert(stats[stat_idx].spills == 0);
+      assert(stats[stat_idx].fills == 0);
+      assert(stats[stat_idx].sends == sends_count_expectation);
+      stat_idx++;
    }
    if (wm_prog_data.dispatch_32) {
-      assert(stats[2].spills == 0);
-      assert(stats[2].fills == 0);
-      assert(stats[2].sends == sends_count_expectation);
+      assert(stats[stat_idx].spills == 0);
+      assert(stats[stat_idx].fills == 0);
+      assert(stats[stat_idx].sends == sends_count_expectation);
+      stat_idx++;
    }
 
    struct anv_pipeline_bind_map bind_map;

Reply via email to