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)
