diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/r300/r300_ioctl.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_ioctl.c b/src/mesa/drivers/dri/r300/r300_ioctl.c index d1cf57959f..d4acbd7e99 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); |