meta: Restore API at the end of _mesa_meta_end(), not the start.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 27 Feb 2014 06:19:33 +0000 (22:19 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 27 Feb 2014 18:07:40 +0000 (10:07 -0800)
In _mesa_meta_begin(), we switch to API_OPENGL_COMPAT, then munge a lot
of state (including some that doesn't exist in the actual API - like
PolygonStipple in API_OPENGL_CORE).

It seems reasonable that in _mesa_meta_end(), we should restore it,
then switch back to the original API.  This at least makes it symmetric.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/common/meta.c

index d415e610f9a1890d07c609a212fb91c79e5ccd28..19600e66c1d3f40b85386f4ff9edfc4415f6e7ed 100644 (file)
@@ -768,8 +768,6 @@ _mesa_meta_end(struct gl_context *ctx)
    const GLbitfield state = save->SavedState;
    int i;
 
-   ctx->API = save->API;
-
    /* After starting a new occlusion query, initialize the results to the
     * values saved previously. The driver will then continue to increment
     * these values.
@@ -1117,6 +1115,8 @@ _mesa_meta_end(struct gl_context *ctx)
       _mesa_ResumeTransformFeedback();
 
    ctx->Meta->SaveStackDepth--;
+
+   ctx->API = save->API;
 }