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.
This commit is contained in:
Brian Paul 2008-12-10 18:00:59 -07:00
parent 99b862cd77
commit 8137da952b
1 changed files with 10 additions and 8 deletions

View File

@ -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;
}
}