[Mesa-dev] [PATCH 3/4] meta/blit: Restore GL_DEPTH_STENCIL_TEXTURE_MODE state for GL_TEXTURE_RECTANGLE

Ian Romanick idr at freedesktop.org
Wed Jan 20 18:17:50 PST 2016


From: Ian Romanick <ian.d.romanick at intel.com>

Commit c246828c added the code to save and restore the stencil
texturing mode.  The restore, however, was erroneously inside the
'target != GL_TEXTURE_RECTANGLE' block.

Fixes piglit test 'arb_stencil_texturing-blit_corrupts_state
GL_TEXTURE_RECTANGLE'.

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Cc: "11.0 11.1" <mesa-stable at lists.freedesktop.org>
---
 src/mesa/drivers/common/meta_blit.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/common/meta_blit.c b/src/mesa/drivers/common/meta_blit.c
index b414dce..78ecfe2 100644
--- a/src/mesa/drivers/common/meta_blit.c
+++ b/src/mesa/drivers/common/meta_blit.c
@@ -834,16 +834,16 @@ _mesa_meta_fb_tex_blit_end(struct gl_context *ctx, GLenum target,
    if (target != GL_TEXTURE_RECTANGLE_ARB) {
       _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, blit->baseLevelSave);
       _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, blit->maxLevelSave);
+   }
 
-      if (ctx->Extensions.ARB_stencil_texturing) {
-         const struct gl_texture_object *texObj =
-            _mesa_get_current_tex_object(ctx, target);
+   if (ctx->Extensions.ARB_stencil_texturing) {
+      const struct gl_texture_object *texObj =
+         _mesa_get_current_tex_object(ctx, target);
 
-         if (texObj->StencilSampling != blit->stencilSamplingSave)
-            _mesa_TexParameteri(target, GL_DEPTH_STENCIL_TEXTURE_MODE,
-                                blit->stencilSamplingSave ?
-                                   GL_STENCIL_INDEX : GL_DEPTH_COMPONENT);
-      }
+      if (texObj->StencilSampling != blit->stencilSamplingSave)
+         _mesa_TexParameteri(target, GL_DEPTH_STENCIL_TEXTURE_MODE,
+                             blit->stencilSamplingSave ?
+                             GL_STENCIL_INDEX : GL_DEPTH_COMPONENT);
    }
 
    _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, blit->samp_obj_save);
-- 
2.5.0



More information about the mesa-dev mailing list