From: Rob Clark Date: Tue, 25 Sep 2018 16:15:58 +0000 (-0400) Subject: freedreno: fix inorder rendering case X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=12de415ad1abb67863f6efb7394552a12b9e3b4b;p=mesa.git freedreno: fix inorder rendering case Signed-off-by: Rob Clark --- 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;