From: Kenneth Graunke Date: Tue, 12 Apr 2016 19:09:41 +0000 (-0700) Subject: meta: Don't smash ColorMask when using MESA_META_COLOR_MASK save bit. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a33f94ba8c3a4a344fbc5a8386cec7f2a620b97e;p=mesa.git meta: Don't smash ColorMask when using MESA_META_COLOR_MASK save bit. This allows meta operations to inspect the existing color mask, and then do their own smashing. BlitFramebuffer and Clear already override the color mask, so this was also redundant. Signed-off-by: Kenneth Graunke Reviewed-by: Jason Ekstrand --- diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index b673db44b0b..eedfb7c262b 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -497,11 +497,6 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state) if (state & MESA_META_COLOR_MASK) { memcpy(save->ColorMask, ctx->Color.ColorMask, sizeof(ctx->Color.ColorMask)); - if (!ctx->Color.ColorMask[0][0] || - !ctx->Color.ColorMask[0][1] || - !ctx->Color.ColorMask[0][2] || - !ctx->Color.ColorMask[0][3]) - _mesa_ColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); } if (state & MESA_META_DEPTH_TEST) { @@ -2984,6 +2979,7 @@ decompress_texture_image(struct gl_context *ctx, _mesa_meta_begin(ctx, MESA_META_ALL & ~(MESA_META_PIXEL_STORE | MESA_META_DRAW_BUFFERS)); + _mesa_ColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); _mesa_reference_sampler_object(ctx, &samp_obj_save, ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler); @@ -3499,6 +3495,7 @@ cleartexsubimage_using_fbo(struct gl_context *ctx, MESA_META_DITHER | MESA_META_FRAMEBUFFER_SRGB); + _mesa_ColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); _mesa_set_enable(ctx, GL_DITHER, GL_FALSE); _mesa_set_enable(ctx, GL_SCISSOR_TEST, GL_TRUE); diff --git a/src/mesa/drivers/common/meta_generate_mipmap.c b/src/mesa/drivers/common/meta_generate_mipmap.c index b81e179e2cd..9cebbf79fd5 100644 --- a/src/mesa/drivers/common/meta_generate_mipmap.c +++ b/src/mesa/drivers/common/meta_generate_mipmap.c @@ -31,6 +31,7 @@ */ #include "main/arrayobj.h" +#include "main/blend.h" #include "main/buffers.h" #include "main/enums.h" #include "main/enable.h" @@ -180,6 +181,7 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target, } _mesa_meta_begin(ctx, MESA_META_ALL & ~MESA_META_DRAW_BUFFERS); + _mesa_ColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); /* Choose between glsl version and fixed function version of * GenerateMipmap function.