diff options
-rw-r--r-- | src/mesa/drivers/x11/xm_surface.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/drivers/x11/xm_surface.c b/src/mesa/drivers/x11/xm_surface.c index 42d5d6bbc4..b2ef70ea90 100644 --- a/src/mesa/drivers/x11/xm_surface.c +++ b/src/mesa/drivers/x11/xm_surface.c @@ -117,6 +117,12 @@ put_tile(struct pipe_surface *ps, xrb->St.Base.PutRow(ctx, &xrb->St.Base, w, x, y - i, tmp, NULL); p += w0 * 4; } +#if 0 /* debug: flush */ + { + XMesaContext xm = XMESA_CONTEXT(ctx); + XSync(xm->display, 0); + } +#endif } @@ -208,6 +214,11 @@ xmesa_clear(struct pipe_context *pipe, struct pipe_surface *ps, GLuint value) { struct xmesa_renderbuffer *xrb = xmesa_rb((struct softpipe_surface *) ps); + /* XXX actually, we should just discard any cached tiles from this + * surface since we don't want to accidentally re-use them after clearing. + */ + pipe->flush(pipe, 0); + if (xrb && xrb->ximage) { /* clearing back color buffer */ GET_CURRENT_CONTEXT(ctx); |