From fa9df82f67c7dda41bd3c9aab1487ec10fadca96 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Wed, 5 Sep 2018 17:09:10 +0100 Subject: [PATCH] mesa: fold _glapi_check_multithread() back into _mesa_make_current With commit c6c0f947142, back in 2006 Brian removed the _glapi_check_multithread() call from core mesa - _mesa_make_current. It was done to remove fairly awkward #ifdef guard which caused subtle differences in core mesa. Since that guard is long gone, we can drop the duplication and reintroduce the call in core. Note that the function is was missing when using EGL + classic dri HW drivers. Yet on TLS builds it's a no-op, so we're safe. Any non TLS users - more or less anything !Linux (or even musl on Linux up-to semi-recently) may have experienced problems. v2: don't remove the call from swrast - move it to core (Eric) Cc: Eric Anholt Cc: Brian Paul Signed-off-by: Emil Velikov Reviewed-by: Brian Paul --- src/mesa/drivers/dri/swrast/swrast.c | 2 -- src/mesa/drivers/osmesa/osmesa.c | 6 ------ src/mesa/drivers/x11/xm_api.c | 5 ----- src/mesa/main/context.c | 5 ++++- src/mesa/state_tracker/st_manager.c | 2 -- 5 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index 524f9b1..94758e6 100644 --- a/src/mesa/drivers/dri/swrast/swrast.c +++ b/src/mesa/drivers/dri/swrast/swrast.c @@ -885,8 +885,6 @@ dri_make_current(__DRIcontext * cPriv, return GL_TRUE; } - _glapi_check_multithread(); - swrast_check_and_update_window_size(mesaCtx, mesaDraw); if (mesaRead != mesaDraw) swrast_check_and_update_window_size(mesaCtx, mesaRead); diff --git a/src/mesa/drivers/osmesa/osmesa.c b/src/mesa/drivers/osmesa/osmesa.c index be683d4..44374a2 100644 --- a/src/mesa/drivers/osmesa/osmesa.c +++ b/src/mesa/drivers/osmesa/osmesa.c @@ -1019,12 +1019,6 @@ OSMesaMakeCurrent( OSMesaContext osmesa, void *buffer, GLenum type, osmesa_update_state( &osmesa->mesa, 0 ); - /* Call this periodically to detect when the user has begun using - * GL rendering from multiple threads. - */ - _glapi_check_multithread(); - - /* Create a front/left color buffer which wraps the user-provided buffer. * There is no back color buffer. * If the user tries to use a 8, 16 or 32-bit/channel buffer that diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c index cb8b58b..e840595 100644 --- a/src/mesa/drivers/x11/xm_api.c +++ b/src/mesa/drivers/x11/xm_api.c @@ -1222,11 +1222,6 @@ GLboolean XMesaMakeCurrent2( XMesaContext c, XMesaBuffer drawBuffer, c->xm_buffer = drawBuffer; - /* Call this periodically to detect when the user has begun using - * GL rendering from multiple threads. - */ - _glapi_check_multithread(); - xmesa_check_and_update_buffer_size(c, drawBuffer); if (readBuffer != drawBuffer) xmesa_check_and_update_buffer_size(c, readBuffer); diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index d82015d..492f01d 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1698,7 +1698,10 @@ _mesa_make_current( struct gl_context *newCtx, _mesa_flush(curCtx); } - /* We used to call _glapi_check_multithread() here. Now do it in drivers */ + /* Call this periodically to detect when the user has begun using + * GL rendering from multiple threads. + */ + _glapi_check_multithread(); if (!newCtx) { _glapi_set_dispatch(NULL); /* none current */ diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 400af93..ceb48dd 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -1030,8 +1030,6 @@ st_api_make_current(struct st_api *stapi, struct st_context_iface *stctxi, struct st_framebuffer *stdraw, *stread; boolean ret; - _glapi_check_multithread(); - if (st) { /* reuse or create the draw fb */ stdraw = st_framebuffer_reuse_or_create(st, -- 2.7.4