diff options
author | marha <marha@users.sourceforge.net> | 2014-04-23 22:47:55 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-04-23 22:47:55 +0200 |
commit | 24fb0da18f1c44dfa1f76d8cde8efbb958aa7659 (patch) | |
tree | 76157bb2f88c9383b0824476a9e3a9f9a1bff9fa /xorg-server/glamor/glamor_glx.c | |
parent | 6876c31f186414ce975180af79902314c8cdc82a (diff) | |
parent | d26ea2f474c48afa7d3c261572da5d85b7b62bd8 (diff) | |
download | vcxsrv-24fb0da18f1c44dfa1f76d8cde8efbb958aa7659.tar.gz vcxsrv-24fb0da18f1c44dfa1f76d8cde8efbb958aa7659.tar.bz2 vcxsrv-24fb0da18f1c44dfa1f76d8cde8efbb958aa7659.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/include/GL/glext.h
xorg-server/.gitignore
xorg-server/glx/glxext.c
Diffstat (limited to 'xorg-server/glamor/glamor_glx.c')
-rw-r--r-- | xorg-server/glamor/glamor_glx.c | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/xorg-server/glamor/glamor_glx.c b/xorg-server/glamor/glamor_glx.c index 8f47c3d2c..7107c7c17 100644 --- a/xorg-server/glamor/glamor_glx.c +++ b/xorg-server/glamor/glamor_glx.c @@ -34,28 +34,21 @@ */ static void -glamor_glx_get_context(struct glamor_context *glamor_ctx) +glamor_glx_make_current(struct glamor_context *glamor_ctx) { - GLXContext old_ctx; - - if (glamor_ctx->get_count++) - return; - - old_ctx = glXGetCurrentContext(); - if (old_ctx == glamor_ctx->ctx) - return; + /* There's only a single global dispatch table in Mesa. EGL, GLX, + * and AIGLX's direct dispatch table manipulation don't talk to + * each other. We need to set the context to NULL first to avoid + * GLX's no-op context change fast path when switching back to + * GLX. + */ + glXMakeCurrent(glamor_ctx->display, None, None); glXMakeCurrent(glamor_ctx->display, glamor_ctx->drawable_xid, glamor_ctx->ctx); } -static void -glamor_glx_put_context(struct glamor_context *glamor_ctx) -{ - --glamor_ctx->get_count; -} - Bool glamor_glx_screen_init(struct glamor_context *glamor_ctx) { @@ -69,8 +62,7 @@ glamor_glx_screen_init(struct glamor_context *glamor_ctx) glamor_ctx->drawable_xid = glXGetCurrentDrawable(); - glamor_ctx->get_context = glamor_glx_get_context; - glamor_ctx->put_context = glamor_glx_put_context; + glamor_ctx->make_current = glamor_glx_make_current; return True; } |