[Mesa-dev] [PATCH v3 0/4] Disable glthread if libX11 isn't thread-safe

Axel Davy axel.davy at normalesup.org
Fri May 5 15:45:01 UTC 2017


Hi,

There should be very few X11 calls while rendering (basically only at 
the beginning or end of a frame).

Why not just always run these calls in the main thread (and wait for 
glthread work to finish) ?

That's basically what we do for gallium nine.

Yours,

Axel

On 05/05/2017 17:37, Gregory Hainaut wrote:
> Hello Mesa developers,
>
> Following the discussion from
> https://lists.freedesktop.org/archives/mesa-dev/2017-April/153137.html
>
> A check was added to ensure that X11 display can be locked. It should be enough
> to ensure thread safety between X11 and glthread.
>
> I also did the check on DRI3 as I'm not 100% sure that it is really thread safe.
>
> ------------------------------------
>
> v2: based on Nicolai/Matt reviews
> Add a check on DRI extension version
> Use C comments :)
>
> v3: based on Emil reviews
> Split the initial first patch into 3 sub patches dri extension / glx / egl
> Improve error message
> Improve code readability
> Just include libX11 on EGL protected by ifdef
>
> Thanks you for all the review comments.
>
> Best regards,
>
> Gregory Hainaut (4):
>    dri: Extend __DRIbackgroundCallableExtensionRec to include a callback
>      that checks for thread safety
>    glx: implement __DRIbackgroundCallableExtension.isThreadSafe
>    egl: implement __DRIbackgroundCallableExtension.isThreadSafe
>    glthread/gallium: require safe_glthread to start glthread
>
>   include/GL/internal/dri_interface.h          | 11 +++++++++++
>   src/egl/drivers/dri2/egl_dri2.c              | 28 +++++++++++++++++++++++++++-
>   src/gallium/state_trackers/dri/dri_context.c | 21 +++++++++++++++++----
>   src/glx/dri2_glx.c                           | 15 ++++++++++++++-
>   src/glx/dri3_glx.c                           | 15 ++++++++++++++-
>   5 files changed, 83 insertions(+), 7 deletions(-)
>



More information about the mesa-dev mailing list