summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2018-09-25 12:15:58 -0400
committerRob Clark <[email protected]>2018-09-27 15:32:39 -0400
commit12de415ad1abb67863f6efb7394552a12b9e3b4b (patch)
tree2b0da1e437235207855da0bc8503c1d22b5b4ed2 /src/gallium
parentb65b6f7606cc381b7c3874f49eb14b738a60f9b6 (diff)
freedreno: fix inorder rendering case
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium')
-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;