diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index 94ca05bf438..278b3896b0b 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -390,8 +390,10 @@ emit_fb_state(struct rendering_state *state) struct pipe_framebuffer_state fb = state->framebuffer; memset(fb.cbufs, 0, sizeof(fb.cbufs)); for (unsigned i = 0; i < fb.nr_cbufs; i++) { - if (state->fb_map[i] < PIPE_MAX_COLOR_BUFS) + if (state->fb_map[i] < PIPE_MAX_COLOR_BUFS) { fb.cbufs[state->fb_map[i]] = state->framebuffer.cbufs[i]; + fb.nr_cbufs = MAX2(fb.nr_cbufs, state->fb_map[i] + 1); + } } state->pctx->set_framebuffer_state(state->pctx, &fb); } else {