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

Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Aug 29 09:47:30 2023 -0400

zink: reorder bindless io lowering

should be no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24950>

---

 src/gallium/drivers/zink/zink_compiler.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_compiler.c 
b/src/gallium/drivers/zink/zink_compiler.c
index c050bacf91d..411899c77b3 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -5207,6 +5207,12 @@ zink_shader_create(struct zink_screen *screen, struct 
nir_shader *nir)
       lower_io_flags |= nir_lower_io_lower_64bit_to_32;
    NIR_PASS_V(nir, nir_lower_io, nir_var_shader_in, zink_type_size, 
lower_io_flags);
    optimize_nir(nir, NULL);
+   nir_foreach_variable_with_modes(var, nir, nir_var_shader_in | 
nir_var_shader_out) {
+      if (glsl_type_is_image(var->type) || glsl_type_is_sampler(var->type)) {
+         NIR_PASS_V(nir, lower_bindless_io);
+         break;
+      }
+   }
    nir_gather_xfb_info_from_intrinsics(nir);
    NIR_PASS_V(nir, nir_lower_io_to_scalar, nir_var_shader_in | 
nir_var_shader_out, eliminate_io_wrmasks_instr, nir);
    /* clean up io to improve direct access */
@@ -5275,15 +5281,8 @@ zink_shader_create(struct zink_screen *screen, struct 
nir_shader *nir)
 
    struct zink_bindless_info bindless = {0};
    bindless.bindless_set = screen->desc_set_id[ZINK_DESCRIPTOR_BINDLESS];
-   bool has_bindless_io = false;
-   nir_foreach_variable_with_modes(var, nir, nir_var_shader_in | 
nir_var_shader_out) {
+   nir_foreach_variable_with_modes(var, nir, nir_var_shader_in | 
nir_var_shader_out)
       var->data.is_xfb = false;
-      if (glsl_type_is_image(var->type) || glsl_type_is_sampler(var->type)) {
-         has_bindless_io = true;
-      }
-   }
-   if (has_bindless_io)
-      NIR_PASS_V(nir, lower_bindless_io);
 
    optimize_nir(nir, NULL);
    prune_io(nir);

Reply via email to