diff options
-rw-r--r-- | src/mesa/drivers/common/meta.c | 17 | ||||
-rw-r--r-- | src/mesa/drivers/common/meta.h | 1 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 6a533932bfd..cf2d05337c8 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -181,6 +181,9 @@ struct save_state struct gl_feedback Feedback; #endif + /** MESA_META_MULTISAMPLE */ + GLboolean MultisampleEnabled; + /** Miscellaneous (always disabled) */ GLboolean Lighting; GLboolean RasterDiscard; @@ -733,6 +736,12 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state) } #endif + if (state & MESA_META_MULTISAMPLE) { + save->MultisampleEnabled = ctx->Multisample.Enabled; + if (ctx->Multisample.Enabled) + _mesa_set_enable(ctx, GL_MULTISAMPLE, GL_FALSE); + } + /* misc */ { save->Lighting = ctx->Light.Enabled; @@ -1018,6 +1027,11 @@ _mesa_meta_end(struct gl_context *ctx) } #endif + if (state & MESA_META_MULTISAMPLE) { + if (ctx->Multisample.Enabled != save->MultisampleEnabled) + _mesa_set_enable(ctx, GL_MULTISAMPLE, save->MultisampleEnabled); + } + /* misc */ if (save->Lighting) { _mesa_set_enable(ctx, GL_LIGHTING, GL_TRUE); @@ -1902,7 +1916,8 @@ _mesa_meta_glsl_Clear(struct gl_context *ctx, GLbitfield buffers) MESA_META_VERTEX | MESA_META_VIEWPORT | MESA_META_CLIP | - MESA_META_CLAMP_FRAGMENT_COLOR); + MESA_META_CLAMP_FRAGMENT_COLOR | + MESA_META_MULTISAMPLE); if (!(buffers & BUFFER_BITS_COLOR)) { /* We'll use colormask to disable color writes. Otherwise, diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h index 7a80b1dde4d..d8dfb56f9b1 100644 --- a/src/mesa/drivers/common/meta.h +++ b/src/mesa/drivers/common/meta.h @@ -55,6 +55,7 @@ #define MESA_META_CONDITIONAL_RENDER 0x20000 #define MESA_META_CLIP 0x40000 #define MESA_META_SELECT_FEEDBACK 0x80000 +#define MESA_META_MULTISAMPLE 0x100000 /**\}*/ extern void |