Mesa (master): meta/blit: Check the values instead of the target before restoring
Ian Romanick
idr at kemper.freedesktop.org
Wed Jan 3 00:24:24 UTC 2018
Module: Mesa
Branch: master
Commit: a232df15235ca0e7d4c36762cfb5b51038d71849
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a232df15235ca0e7d4c36762cfb5b51038d71849
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Tue Jan 12 17:37:02 2016 -0800
meta/blit: Check the values instead of the target before restoring
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
---
src/mesa/drivers/common/meta_blit.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/common/meta_blit.c b/src/mesa/drivers/common/meta_blit.c
index 7adad469ac..6322b64696 100644
--- a/src/mesa/drivers/common/meta_blit.c
+++ b/src/mesa/drivers/common/meta_blit.c
@@ -843,13 +843,17 @@ _mesa_meta_fb_tex_blit_end(struct gl_context *ctx, GLenum target,
/* Restore texture object state, the texture binding will
* be restored by _mesa_meta_end().
+ *
+ * If the target restricts values for base level or max level, we assume
+ * that the original values were valid.
*/
- if (target != GL_TEXTURE_RECTANGLE_ARB) {
+ if (blit->baseLevelSave != texObj->BaseLevel)
_mesa_texture_parameteriv(ctx, texObj, GL_TEXTURE_BASE_LEVEL,
&blit->baseLevelSave, false);
+
+ if (blit->maxLevelSave != texObj->MaxLevel)
_mesa_texture_parameteriv(ctx, texObj, GL_TEXTURE_MAX_LEVEL,
&blit->maxLevelSave, false);
- }
/* If ARB_stencil_texturing is not supported, the mode won't have changed. */
if (texObj->StencilSampling != blit->stencilSamplingSave) {
More information about the mesa-commit
mailing list