meta: Add a new MESA_META_DRAW_BUFFERS bit.

This will be used for saving/restoring the glDrawBuffers state.
For now, make sure that existing users of MESA_META_ALL don't get
the new bit, since they probably won't want it.

Cc: "10.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit e526ebf35c)
This commit is contained in:
Kenneth Graunke 2014-05-05 14:03:46 -07:00 committed by Ian Romanick
parent 658d0410d0
commit ffc0cc027a
4 changed files with 6 additions and 4 deletions

View file

@ -2723,7 +2723,7 @@ copytexsubimage_using_blit_framebuffer(struct gl_context *ctx, GLuint dims,
_mesa_unlock_texture(ctx, texObj); _mesa_unlock_texture(ctx, texObj);
_mesa_meta_begin(ctx, MESA_META_ALL); _mesa_meta_begin(ctx, MESA_META_ALL & ~MESA_META_DRAW_BUFFERS);
_mesa_GenFramebuffers(1, &fbo); _mesa_GenFramebuffers(1, &fbo);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo); _mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo);
@ -2945,7 +2945,8 @@ decompress_texture_image(struct gl_context *ctx,
break; break;
} }
_mesa_meta_begin(ctx, MESA_META_ALL & ~MESA_META_PIXEL_STORE); _mesa_meta_begin(ctx, MESA_META_ALL & ~(MESA_META_PIXEL_STORE |
MESA_META_DRAW_BUFFERS));
samplerSave = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler ? samplerSave = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler ?
ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler->Name : 0; ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler->Name : 0;

View file

@ -58,6 +58,7 @@
#define MESA_META_MULTISAMPLE 0x100000 #define MESA_META_MULTISAMPLE 0x100000
#define MESA_META_FRAMEBUFFER_SRGB 0x200000 #define MESA_META_FRAMEBUFFER_SRGB 0x200000
#define MESA_META_OCCLUSION_QUERY 0x400000 #define MESA_META_OCCLUSION_QUERY 0x400000
#define MESA_META_DRAW_BUFFERS 0x800000
/**\}*/ /**\}*/
/** /**

View file

@ -659,7 +659,7 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
/* Only scissor affects blit, but we're doing to set a custom scissor if /* Only scissor affects blit, but we're doing to set a custom scissor if
* necessary anyway, so save/clear state. * necessary anyway, so save/clear state.
*/ */
_mesa_meta_begin(ctx, MESA_META_ALL); _mesa_meta_begin(ctx, MESA_META_ALL & ~MESA_META_DRAW_BUFFERS);
/* If the clipping earlier changed the destination rect at all, then /* If the clipping earlier changed the destination rect at all, then
* enable the scissor to clip to it. * enable the scissor to clip to it.

View file

@ -182,7 +182,7 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target,
faceTarget = target; faceTarget = target;
} }
_mesa_meta_begin(ctx, MESA_META_ALL); _mesa_meta_begin(ctx, MESA_META_ALL & ~MESA_META_DRAW_BUFFERS);
/* Choose between glsl version and fixed function version of /* Choose between glsl version and fixed function version of
* GenerateMipmap function. * GenerateMipmap function.