nir/nir_opt_move: allow to move uniform loads
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 17 Feb 2022 09:14:45 +0000 (10:14 +0100)
committerMarge Bot <emma+marge@anholt.net>
Thu, 24 Feb 2022 11:36:00 +0000 (11:36 +0000)
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15056>

src/compiler/nir/nir.h
src/compiler/nir/nir_opt_sink.c

index 865b5ba..a86c1af 100644 (file)
@@ -5256,12 +5256,13 @@ bool nir_opt_large_constants(nir_shader *shader,
 bool nir_opt_loop_unroll(nir_shader *shader);
 
 typedef enum {
-    nir_move_const_undef = (1 << 0),
-    nir_move_load_ubo    = (1 << 1),
-    nir_move_load_input  = (1 << 2),
-    nir_move_comparisons = (1 << 3),
-    nir_move_copies      = (1 << 4),
-    nir_move_load_ssbo   = (1 << 5),
+    nir_move_const_undef  = (1 << 0),
+    nir_move_load_ubo     = (1 << 1),
+    nir_move_load_input   = (1 << 2),
+    nir_move_comparisons  = (1 << 3),
+    nir_move_copies       = (1 << 4),
+    nir_move_load_ssbo    = (1 << 5),
+    nir_move_load_uniform = (1 << 6),
 } nir_move_options;
 
 bool nir_can_move_instr(nir_instr *instr, nir_move_options options);
index 13eeb9e..7360765 100644 (file)
@@ -64,6 +64,8 @@ nir_can_move_instr(nir_instr *instr, nir_move_options options)
       case nir_intrinsic_load_interpolated_input:
       case nir_intrinsic_load_per_vertex_input:
          return options & nir_move_load_input;
+      case nir_intrinsic_load_uniform:
+         return options & nir_move_load_uniform;
       default:
          return false;
       }