From 12de415ad1abb67863f6efb7394552a12b9e3b4b Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 25 Sep 2018 12:15:58 -0400 Subject: [PATCH] freedreno: fix inorder rendering case Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/freedreno_state.c | 13 +++++++------ 1 file 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; -- 2.30.2