On 5 May 2017 at 18:28, gregory hainaut <gregory.hain...@gmail.com> wrote: > On Fri, 5 May 2017 18:17:22 +0100 > Emil Velikov <emil.l.veli...@gmail.com> wrote: > >> On 5 May 2017 at 17:58, gregory hainaut <gregory.hain...@gmail.com> wrote: >> > On Fri, 5 May 2017 17:45:01 +0200 >> > Axel Davy <axel.d...@normalesup.org> wrote: >> > >> [...] >> > >> > Hello Axel, >> > >> > Yes it is another possibility. It would requires to track gl calls that >> > end up in X11. >> > I'm not sure if there is an easy way to list all those gl functions. There >> > are at least the >> > draw calls and maybe the clear operations. Besides I'm afraid that we will >> > need to handle >> > various corner cases of the OpenGL API. It is doable but likely more >> > complicated. >> > >> > There is also the Nvidia way, i.e. forces the driver to XInitThreads X11. >> > I think it >> > can be implemented with the help of constructor attribute. >> > >> Did you trace the above behaviour? What would happen in the following >> scenario: >> - There is no link against libGL/libEGL >> - User gets the dpy primitive w/o calling XInitThreads >> - Then user dlopens libGL/libEGL, which in itself calls XInitThreads >> At that point it's a bit too late isn't it? >> >> -Emil > > Hello, > > No I didn't trace it. > > You right, it is too late. You can/must use LD_PRELOAD to ensure that > libGL/libEGL is loaded first. > > To be honest, the best solution will be to have a thread safe Xlib. No more > hack everywhere. > Having a look at Xlib might be good indeed.
Then again, the solution you've proposed looks perfectly reasonable, IMHO. It handles the problem _now_ and should also work when/if we address Xlib. I'll take another look today/tomorrow, but I think the series is perfectly fine to land as-is. Thanks Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev