When clearing the stencil buffer, don't use a two-sided stencil
authorOwen W. Taylor <otaylor@fishsoup.net>
Wed, 6 May 2009 18:44:16 +0000 (14:44 -0400)
committerAlex Deucher <alexdeucher@gmail.com>
Wed, 6 May 2009 21:10:06 +0000 (17:10 -0400)
In radeon_clear_tris(), when clearing the stencil buffer,
pass GL_FRONT_AND_BACK to _mesa_StencilFuncSeparate(), to avoid
triggering a software fallback on r300 and below.

https://bugs.freedesktop.org/show_bug.cgi?id=21601

src/mesa/drivers/dri/radeon/radeon_common.c

index 8b5b892f0df42c5ae46f8c5b548bb223d71d9677..ee3ee9ca504c396026f68143d49d5492abaeb766 100644 (file)
@@ -1429,7 +1429,7 @@ void radeon_clear_tris(GLcontext *ctx, GLbitfield mask)
       if (this_mask & BUFFER_BIT_STENCIL) {
         _mesa_Enable(GL_STENCIL_TEST);
         _mesa_StencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);
-        _mesa_StencilFuncSeparate(GL_FRONT, GL_ALWAYS, ctx->Stencil.Clear,
+        _mesa_StencilFuncSeparate(GL_FRONT_AND_BACK, GL_ALWAYS, ctx->Stencil.Clear,
                                   ctx->Stencil.WriteMask[0]);
       } else {
         _mesa_Disable(GL_STENCIL_TEST);