From: Brian Paul Date: Thu, 11 Dec 2008 01:00:59 +0000 (-0700) Subject: gallium: only mark back color buffer surfaces as undefined after swapbuffers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8137da952b6f30329adf7d49d2d9e58625534dd4;p=mesa.git gallium: only mark back color buffer surfaces as undefined after swapbuffers Marking all surfaces as undefined was wrong and cause some glean failures because glReadPixels was used after SwapBuffers. --- diff --git a/src/mesa/state_tracker/st_framebuffer.c b/src/mesa/state_tracker/st_framebuffer.c index 6ee1777fb7a..7d270a32729 100644 --- a/src/mesa/state_tracker/st_framebuffer.c +++ b/src/mesa/state_tracker/st_framebuffer.c @@ -284,15 +284,17 @@ st_notify_swapbuffers_complete(struct st_framebuffer *stfb) if (ctx && ctx->DrawBuffer == &stfb->Base) { struct st_renderbuffer *strb; - int i; - - for (i = 0; i < BUFFER_COUNT; i++) { - if (stfb->Base.Attachment[i].Renderbuffer) { - strb = st_renderbuffer(stfb->Base.Attachment[i].Renderbuffer); - if (strb->surface) - strb->surface->status = PIPE_SURFACE_STATUS_UNDEFINED; - } - } + + /* Mark back color buffers as undefined */ + strb = st_renderbuffer(stfb->Base.Attachment[BUFFER_BACK_LEFT]. + Renderbuffer); + if (strb && strb->surface) + strb->surface->status = PIPE_SURFACE_STATUS_UNDEFINED; + + strb = st_renderbuffer(stfb->Base.Attachment[BUFFER_BACK_RIGHT]. + Renderbuffer); + if (strb && strb->surface) + strb->surface->status = PIPE_SURFACE_STATUS_UNDEFINED; } }