mesa: fold _glapi_check_multithread() back into _mesa_make_current
authorEmil Velikov <emil.velikov@collabora.com>
Wed, 5 Sep 2018 16:09:10 +0000 (17:09 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 3 Oct 2018 12:38:05 +0000 (13:38 +0100)
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 <eric@anholt.net>
Cc: Brian Paul <brianp@vmware.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/drivers/dri/swrast/swrast.c
src/mesa/drivers/osmesa/osmesa.c
src/mesa/drivers/x11/xm_api.c
src/mesa/main/context.c
src/mesa/state_tracker/st_manager.c

index 524f9b17c6d67006888c57f5149cafa8eeda68dc..94758e60862056b0ae2489db492aa27929d52ff1 100644 (file)
@@ -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);
index be683d4583ed18d96763405545ab1012b0baeaa7..44374a2e917d788d4f4b074a931beee9c170126b 100644 (file)
@@ -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
index cb8b58b8d96af914d220eb5618048e685d10391c..e840595065658cd7c15bb7ea407426f51ce50371 100644 (file)
@@ -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);
index d82015dc93617719d46f7a95d16454fb12aba917..492f01de957cd7c3af118e58570761f2c26f4016 100644 (file)
@@ -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 */
index 400af939b292828a005cb939ca015e365371dc8e..ceb48dd4903c241d8fb5ff72d9d42b445b8adccc 100644 (file)
@@ -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,