summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_state.c
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2014-03-29 11:06:49 -0400
committerRob Clark <[email protected]>2014-03-30 09:50:24 -0400
commit2346ea6347bd59a92638d94c12ef731bbfcd720a (patch)
tree9855ffcef8de49118ca42071f330152b138d4146 /src/gallium/drivers/freedreno/freedreno_state.c
parentae5efaf2859db722cb8ef9be5ae5807068cbc1e5 (diff)
freedreno/a3xx: missing wfi
RB_FRAME_BUFFER_DIMENSION is not a banked context register, so we need to wait for the GPU to idle before updating it. But we'd rather not have unnecessary WFI's, so actually keep track if we need to emit it or not. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_state.c')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_state.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_state.c b/src/gallium/drivers/freedreno/freedreno_state.c
index f5290a9af2a..93fbc3525ec 100644
--- a/src/gallium/drivers/freedreno/freedreno_state.c
+++ b/src/gallium/drivers/freedreno/freedreno_state.c
@@ -130,6 +130,11 @@ fd_set_framebuffer_state(struct pipe_context *pctx,
pipe_surface_reference(&cso->cbufs[i], NULL);
cso->nr_cbufs = framebuffer->nr_cbufs;
+
+ if ((cso->width != framebuffer->width) ||
+ (cso->height != framebuffer->height))
+ ctx->needs_rb_fbd = true;
+
cso->width = framebuffer->width;
cso->height = framebuffer->height;