diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 77fac5b5060..868bc9da06d 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -2460,8 +2460,7 @@ ntq_setup_outputs(struct v3d_compile *c) switch (var->data.location) { case FRAG_RESULT_COLOR: - for (int i = 0; i < V3D_MAX_DRAW_BUFFERS; i++) - c->output_color_var[i] = var; + UNREACHABLE("Frag color should be lowered"); break; case FRAG_RESULT_DATA0: case FRAG_RESULT_DATA1: diff --git a/src/gallium/drivers/v3d/v3d_program.c b/src/gallium/drivers/v3d/v3d_program.c index 454b6df1f99..bf211e309b6 100644 --- a/src/gallium/drivers/v3d/v3d_program.c +++ b/src/gallium/drivers/v3d/v3d_program.c @@ -361,11 +361,9 @@ v3d_uncompiled_shader_create(struct pipe_context *pctx, if (s->info.stage == MESA_SHADER_FRAGMENT && s->info.outputs_written & BITFIELD_BIT(FRAG_RESULT_COLOR)) { /* We only support one attachment when doing dual source blending. */ - if (s->info.fs.color_is_dual_source) - NIR_PASS(_, s, nir_lower_fragcolor, 1); - else if (V3D_DBG(SOFT_BLEND)) - NIR_PASS(_, s, nir_lower_fragcolor, - V3D_MAX_DRAW_BUFFERS); + unsigned max_rb = s->info.fs.color_is_dual_source ? + 1 : V3D_MAX_DRAW_BUFFERS; + NIR_PASS(_, s, nir_lower_fragcolor, max_rb); } if (s->info.stage != MESA_SHADER_VERTEX &&