From: Brian Date: Wed, 1 Aug 2007 21:39:19 +0000 (-0600) Subject: rearrange things in xmesa_clear() a bit X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1ecc648398a51f734ef1e3b729595f41cedf29f9;p=mesa.git rearrange things in xmesa_clear() a bit --- diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c index 0aa47d55e46..fec4f5d0388 100644 --- a/src/mesa/drivers/x11/xm_dd.c +++ b/src/mesa/drivers/x11/xm_dd.c @@ -440,10 +440,15 @@ xmesa_clear(struct pipe_context *pipe, GLboolean color, GLboolean depth, GLboolean stencil, GLboolean accum) { struct softpipe_context *sp = (struct softpipe_context *) pipe; + + /* Clear non-color buffers first. This will cause softpipe to + * re-validate the scissor/surface bounds. + */ + softpipe_clear(pipe, GL_FALSE, depth, stencil, accum); + if (color) { GET_CURRENT_CONTEXT(ctx); GLuint i; - softpipe_update_derived(sp); for (i = 0; i < sp->framebuffer.num_cbufs; i++) { struct pipe_surface *ps = sp->framebuffer.cbufs[i]; struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) ps->rb; @@ -453,10 +458,8 @@ xmesa_clear(struct pipe_context *pipe, GLboolean color, GLboolean depth, const GLint h = sp->cliprect.maxy - y; xrb->clearFunc(ctx, xrb, x, y, w, h); } - color = GL_FALSE; } - softpipe_clear(pipe, color, depth, stencil, accum); }