Module: Mesa
Branch: master
Commit: e9dc3df868d97ad88360131bada45732eb8535e7
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9dc3df868d97ad88360131bada45732eb8535e7

Author: Rhys Perry <[email protected]>
Date:   Mon Apr 12 15:36:59 2021 +0100

nir/loop_unroll: fix is_indirect_load() with load_global

load_global only has one source.

Signed-off-by: Rhys Perry <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Fixes: dfe429eb414 ("nir/loop_unroll: unroll more aggressively if it can 
improve load scheduling")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10186>

---

 src/compiler/nir/nir_opt_loop_unroll.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/compiler/nir/nir_opt_loop_unroll.c 
b/src/compiler/nir/nir_opt_loop_unroll.c
index b3ec353097c..c4c76742d79 100644
--- a/src/compiler/nir/nir_opt_loop_unroll.c
+++ b/src/compiler/nir/nir_opt_loop_unroll.c
@@ -757,12 +757,14 @@ is_indirect_load(nir_instr *instr)
       nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
 
       if ((intrin->intrinsic == nir_intrinsic_load_ubo ||
-           intrin->intrinsic == nir_intrinsic_load_ssbo ||
-           intrin->intrinsic == nir_intrinsic_load_global) &&
+           intrin->intrinsic == nir_intrinsic_load_ssbo) &&
           !nir_src_is_const(intrin->src[1])) {
          return true;
       }
 
+      if (intrin->intrinsic == nir_intrinsic_load_global)
+         return true;
+
       if (intrin->intrinsic == nir_intrinsic_load_deref ||
           intrin->intrinsic == nir_intrinsic_store_deref) {
          nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]);

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

Reply via email to