freedreno: fix inorder rendering case

Signed-off-by: Rob Clark <robdclark@gmail.com>
(cherry picked from commit 12de415ad1)
[Juan A. Suarez: resolve trivial conflicts]
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>

Conflicts:
	src/gallium/drivers/freedreno/freedreno_state.c
This commit is contained in:
Rob Clark 2018-09-25 12:15:58 -04:00 committed by Juan A. Suarez Romero
parent 2edd62b4a2
commit b8ddd70d04

View file

@ -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;