summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2013-05-14 20:05:55 -0400
committerRob Clark <[email protected]>2013-05-23 14:35:21 -0400
commit95670bdee2f51196c1f34871a23faae1348d4b60 (patch)
tree3679af2616d3733853a178c2ffa82a750f8fa1fd
parent97fa811d1481ecbec30634eaaa7d13b8e35b2ae4 (diff)
freedreno: scissor fix
Don't assume the state-tracker will set the scissor after the framebuffer state is changed. Signed-off-by: Rob Clark <[email protected]>
-rw-r--r--src/gallium/drivers/freedreno/freedreno_state.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_state.c b/src/gallium/drivers/freedreno/freedreno_state.c
index dcac6244a33..ce9a522c6ab 100644
--- a/src/gallium/drivers/freedreno/freedreno_state.c
+++ b/src/gallium/drivers/freedreno/freedreno_state.c
@@ -135,6 +135,17 @@ fd_set_framebuffer_state(struct pipe_context *pctx,
pipe_surface_reference(&cso->zsbuf, framebuffer->zsbuf);
ctx->dirty |= FD_DIRTY_FRAMEBUFFER;
+
+ /* also need to reset the scissor.. mesa/gl state tracker
+ * does this for us, but u_blitter doesn't and other
+ * state trackers might not..
+ */
+ ctx->scissor.minx = 0;
+ ctx->scissor.miny = 0;
+ ctx->scissor.maxx = cso->width;
+ ctx->scissor.maxy = cso->height;
+
+ ctx->dirty |= FD_DIRTY_SCISSOR;
}
static void