From b8ddd70d04837ef24d5f0d3aff8a89f12d14f925 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 (cherry picked from commit 12de415ad1abb67863f6efb7394552a12b9e3b4b) [Juan A. Suarez: resolve trivial conflicts] Signed-off-by: Juan A. Suarez Romero Conflicts: src/gallium/drivers/freedreno/freedreno_state.c --- 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 88f6fb557d0..8a2448d2199 100644 --- a/src/gallium/drivers/freedreno/freedreno_state.c +++ b/src/gallium/drivers/freedreno/freedreno_state.c @@ -211,6 +211,12 @@ fd_set_framebuffer_state(struct pipe_context *pctx, struct fd_context *ctx = fd_context(pctx); struct pipe_framebuffer_state *cso; + cso = &ctx->batch->framebuffer; + + util_copy_framebuffer_state(cso, framebuffer); + + cso->samples = util_framebuffer_get_num_samples(cso); + if (ctx->screen->reorder) { struct fd_batch *batch, *old_batch = NULL; @@ -239,14 +245,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->batch->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;