From 53004e57d68af9673cab6195ce67213245ec149f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Sun, 25 Sep 2022 15:11:04 -0400 Subject: [PATCH] zink: always unset var->data.explicit_xfb_buffer ensure that this isn't accidentally triggering for non-xfb shaders Fixes: 6d40db84c9d ("zink: handle direct xfb output from output variables") Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 6d494f91d3c..5b949033fca 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -833,7 +833,6 @@ update_so_info(struct zink_shader *zs, const struct pipe_stream_output_info *so_ bool have_fake_psiz = false; nir_foreach_shader_out_variable(var, zs->nir) { - var->data.explicit_xfb_buffer = 0; if (var->data.location == VARYING_SLOT_PSIZ && !var->data.explicit_location) have_fake_psiz = true; } @@ -3181,6 +3180,8 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir, NIR_PASS_V(nir, match_tex_dests); ret->nir = nir; + nir_foreach_shader_out_variable(var, nir) + var->data.explicit_xfb_buffer = 0; if (so_info && so_info->num_outputs) update_so_info(ret, so_info, nir->info.outputs_written, have_psiz); else if (have_psiz) {