From 26338c4abbc940da144e2ce116e42754e4ea7e45 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 20 May 2022 20:03:01 -0400 Subject: [PATCH] zink: if a variable is flagged as being xfb, treat it as manual xfb output this allows passes to flag variables as "needs manual action" for further handling later on Reviewed-by: Adam Jackson Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index ec475e6..01f0889 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -795,6 +795,9 @@ update_so_info(struct zink_shader *zs, const struct pipe_stream_output_info *so_ nir_variable *var = NULL; while (!var) var = find_var_with_location_frac(zs->nir, slot--, output->start_component, have_psiz); + /* this is a lowered 64bit variable that can't be exported due to packing */ + if (var->data.is_xfb) + goto out; unsigned num_slots = glsl_count_vec4_slots(var->type, false, false); /* for each variable, iterate over all the variable's slots and inline the outputs */ -- 2.7.4