From 6524b9285fd534acc40658947b72e14dafccff5c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 28 Mar 2023 18:43:18 -0400 Subject: [PATCH] zink: simplify fbfetch output detection from fs this should be identical to the previous code, except it also handles depth/stencil (not yet supported) Part-of: --- src/gallium/drivers/zink/zink_program.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 6853c8a..91797e2 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -1768,10 +1768,9 @@ zink_bind_fs_state(struct pipe_context *pctx, if (cso) { shader_info *info = &ctx->gfx_stages[MESA_SHADER_FRAGMENT]->info; if (info->fs.uses_fbfetch_output) { - nir_foreach_shader_out_variable(var, ctx->gfx_stages[MESA_SHADER_FRAGMENT]->nir) { - if (var->data.fb_fetch_output) - ctx->fbfetch_outputs |= BITFIELD_BIT(var->data.location - FRAG_RESULT_DATA0); - } + if (info->outputs_read & (BITFIELD_BIT(FRAG_RESULT_DEPTH) | BITFIELD_BIT(FRAG_RESULT_STENCIL))) + ctx->fbfetch_outputs |= BITFIELD_BIT(PIPE_MAX_COLOR_BUFS); + ctx->fbfetch_outputs |= info->outputs_read >> FRAG_RESULT_DATA0; } zink_update_fs_key_samples(ctx); if (zink_screen(pctx->screen)->info.have_EXT_rasterization_order_attachment_access) { -- 2.7.4