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

Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Oct 26 12:05:16 2023 -0400

zink: unset explicit_xfb_buffer for non-xfb shaders

this catches duplicated xfb when generated geometry shaders are used

cc: mesa-stable

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

---

 src/gallium/drivers/zink/zink_compiler.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/zink/zink_compiler.c 
b/src/gallium/drivers/zink/zink_compiler.c
index 7ed959deae9..95fe41ff4f9 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -2776,8 +2776,11 @@ zink_compiler_assign_io(struct zink_screen *screen, 
nir_shader *producer, nir_sh
          optimize_nir(producer, NULL, true);
       }
    }
-   if (consumer->info.stage != MESA_SHADER_FRAGMENT)
+   if (consumer->info.stage != MESA_SHADER_FRAGMENT) {
       producer->info.has_transform_feedback_varyings = false;
+      nir_foreach_shader_out_variable(var, producer)
+         var->data.explicit_xfb_buffer = false;
+   }
    if (producer->info.stage == MESA_SHADER_TESS_CTRL) {
       /* never assign from tcs -> tes, always invert */
       nir_foreach_variable_with_modes(var, consumer, nir_var_shader_in)

Reply via email to