From: Dave Airlie Date: Sat, 21 Mar 2009 05:05:34 +0000 (+1000) Subject: r300: hw clear buffer 0 hopefully X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fbda2ad4457cf47494ae3eee28d417afb262c5c2;p=mesa.git r300: hw clear buffer 0 hopefully --- diff --git a/src/mesa/drivers/dri/r300/r300_ioctl.c b/src/mesa/drivers/dri/r300/r300_ioctl.c index d1cf57959fa..d4acbd7e997 100644 --- a/src/mesa/drivers/dri/r300/r300_ioctl.c +++ b/src/mesa/drivers/dri/r300/r300_ioctl.c @@ -583,6 +583,11 @@ static void r300Clear(GLcontext * ctx, GLbitfield mask) mask &= ~BUFFER_BIT_STENCIL; } + if (mask & BUFFER_BIT_COLOR0) { + flags |= BUFFER_BIT_COLOR0; + mask &= ~BUFFER_BIT_COLOR0; + } + if (mask) { if (RADEON_DEBUG & DEBUG_FALLBACKS) fprintf(stderr, "%s: swrast clear, mask: %x\n", @@ -596,6 +601,12 @@ static void r300Clear(GLcontext * ctx, GLbitfield mask) r300EmitClearState(ctx); rrbd = (void *)rfb->base.Attachment[BUFFER_DEPTH].Renderbuffer; + if (flags & BUFFER_BIT_COLOR0) { + rrb = (void *)rfb->base.Attachment[BUFFER_COLOR0].Renderbuffer; + r300ClearBuffer(r300, CLEARBUFFER_COLOR, rrb, NULL); + bits = 0; + } + if (flags & BUFFER_BIT_FRONT_LEFT) { rrb = (void *)rfb->base.Attachment[BUFFER_FRONT_LEFT].Renderbuffer; r300ClearBuffer(r300, bits | CLEARBUFFER_COLOR, rrb, rrbd);