summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/freedreno/freedreno_state.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_state.c b/src/gallium/drivers/freedreno/freedreno_state.c
index a50ae383b23..96a15250b9d 100644
--- a/src/gallium/drivers/freedreno/freedreno_state.c
+++ b/src/gallium/drivers/freedreno/freedreno_state.c
@@ -215,6 +215,12 @@ fd_set_framebuffer_state(struct pipe_context *pctx,
framebuffer->width, framebuffer->height,
framebuffer->layers, framebuffer->samples);
+ cso = &ctx->framebuffer;
+
+ util_copy_framebuffer_state(cso, framebuffer);
+
+ cso->samples = util_framebuffer_get_num_samples(cso);
+
if (ctx->screen->reorder) {
struct fd_batch *old_batch = NULL;
@@ -240,14 +246,9 @@ fd_set_framebuffer_state(struct pipe_context *pctx,
DBG("%d: cbufs[0]=%p, zsbuf=%p", ctx->batch->needs_flush,
framebuffer->cbufs[0], framebuffer->zsbuf);
fd_batch_flush(ctx->batch, false, false);
+ util_copy_framebuffer_state(&ctx->batch->framebuffer, cso);
}
- cso = &ctx->framebuffer;
-
- util_copy_framebuffer_state(cso, framebuffer);
-
- cso->samples = util_framebuffer_get_num_samples(cso);
-
ctx->dirty |= FD_DIRTY_FRAMEBUFFER;
ctx->disabled_scissor.minx = 0;