<p dir="ltr"></p>
<p dir="ltr">On Aug 6, 2016 4:00 AM, "⚛" <<a href="mailto:0xe2.0x9a.0x9b@gmail.com">0xe2.0x9a.0x9b@gmail.com</a>> wrote:<br>
><br>
> On Sat, Aug 6, 2016 at 4:34 AM, Rob Clark <<a href="mailto:robdclark@gmail.com">robdclark@gmail.com</a>> wrote:<br>
> > On Fri, Aug 5, 2016 at 8:42 PM, Jan Ziak <<a href="mailto:0xe2.0x9a.0x9b@gmail.com">0xe2.0x9a.0x9b@gmail.com</a>> wrote:<br>
> >> Mesa source code prior to this patch uses both RTLD_NOW and RTLD_LAZY.<br>
> >> This patch removes all RTLD_NOW in favor of RTLD_LAZY.<br>
> >><br>
> >> In comparison to early binding, lazy binding reduces CPU instruction count<br>
> >> of small GL apps (e.g: glxinfo) by 6 million instructions.<br>
> >> Larger apps won't notice the difference.<br>
> ><br>
> > tbh, I don't know the background of existing places that use RTLD_LAZY<br>
> > instead of RTLD_NOW (but my experience w/ xserver using LAZY has not<br>
> > been positive, so I think going the other direction seems like a good<br>
> > idea)..<br>
><br>
> We could add a verifier to the build process that tests the foo_dri.so<br>
> libraries (as well as all other libs subject to dlopen by Mesa) for<br>
> undefined symbols:<br>
><br>
> $ LD_PRELOAD=libGL.so ldd -d -r radeonsi_dri.so \<br>
>     | grep "^undefined" && echo "red alert!"<br>
><br>
> This will ensure that Mesa does not break apps after replacing all<br>
> RTLD_NOWs with RTLD_LAZY.<br>
><br>
> I am going to start writing a new patch verifying relevant *.so files<br>
> at buildtime.</p>
<p dir="ltr">Yes please. Regardless of whether or not we use RTLD_LAZY, I would like undefined symbols to produce a build error rather than a runtime error you need extra environment variables to debug.</p>
<p dir="ltr">> > But I'm not sure that optimizing for glxinfo is the best goal.<br>
><br>
> I will turn my attention to manifestations of suboptimal Mesa GL in<br>
> other apps as soon as I am satisfied with glxinfo/glxgears (and after<br>
> the list of my patches at patchwork gets closer to zero).<br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br></p>