aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/radeonsi/si_state.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 9e4550fc940..af67382dc96 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2232,7 +2232,7 @@ static void si_set_framebuffer_state(struct pipe_context *ctx,
struct r600_context *rctx = (struct r600_context *)ctx;
struct si_pm4_state *pm4 = si_pm4_alloc_state(rctx);
uint32_t tl, br;
- int tl_x, tl_y, br_x, br_y, nr_samples;
+ int tl_x, tl_y, br_x, br_y, nr_samples, i;
if (pm4 == NULL)
return;
@@ -2248,7 +2248,7 @@ static void si_set_framebuffer_state(struct pipe_context *ctx,
/* build states */
rctx->export_16bpc = 0;
rctx->fb_compressed_cb_mask = 0;
- for (int i = 0; i < state->nr_cbufs; i++) {
+ for (i = 0; i < state->nr_cbufs; i++) {
struct r600_texture *rtex =
(struct r600_texture*)state->cbufs[i]->texture;
@@ -2258,6 +2258,11 @@ static void si_set_framebuffer_state(struct pipe_context *ctx,
rctx->fb_compressed_cb_mask |= 1 << i;
}
}
+ for (; i < 8; i++) {
+ si_pm4_set_reg(pm4, R_028C70_CB_COLOR0_INFO + i * 0x3C,
+ S_028C70_FORMAT(V_028C70_COLOR_INVALID));
+ }
+
assert(!(rctx->export_16bpc & ~0xff));
si_db(rctx, pm4, state);