On Wed, May 05, 2021 at 12:52:54PM +0200, Hiltjo Posthuma wrote: > > Hi, > > I can (still) reproduce this issue. I don't use Iris though. > > Using LD_PRELOAD still crashes for me too. Did you make other changes to the > mpv code? >
the library to use in LD_PRELOAD will depend of the gpu. on mine system, it is radeonsi_dri.so for example. you could try with LD_DEBUG=1 to see the ld.so activity: $ LD_DEBUG=1 mpv --vo=gpu file.mp4 [...] (+) Video --vid=1 (*) (h264 640x360 25.000fps) (+) Audio --aid=1 (*) (aac 2ch 48000Hz) tib new=0x790502c1000 dlopen: loading: /usr/X11R6/lib/modules/dri/radeonsi_dri.so flags /usr/X11R6/lib/modules/dri/radeonsi_dri.so = 0x0 [...] Exiting... (Quit) free tib=0x790685f6800 free tib=0x790502c1a00 free tib=0x790685f6400 free tib=0x7908242bc00 pthread_mutex_destroy on mutex with waiters! free tib=0x790502c1600 free tib=0x78fe0bb9800 free tib=0x790502c1400 free tib=0x790502c1200 doing dtors obj 0x79020c0cc00 @0x790ca41c700: [/usr/X11R6/lib/modules/dri/radeonsi_dri.so] doing dtors obj 0x7908242a400 @0x7907e37c3d0: [/usr/lib/libelf.so.3.0] doing dtors obj 0x79042c59000 @0x790cd9b4ad0: [/usr/lib/libLLVM.so.5.0] doing dtors obj 0x79017a94c00 @0x7908e87a520: [/usr/X11R6/lib/libdrm_radeon.so.4.0] doing dtors obj 0x79042c59400 @0x79026e63b70: [/usr/X11R6/lib/libdrm_amdgpu.so.1.10] unload_shlib called on /usr/X11R6/lib/modules/dri/radeonsi_dri.so unload_shlib called on /usr/X11R6/lib/libglapi.so.0.3 unload_shlib called on /usr/lib/libelf.so.3.0 unload_shlib unloading on /usr/lib/libelf.so.3.0 unload_shlib called on /usr/lib/libLLVM.so.5.0 unload_shlib unloading on /usr/lib/libLLVM.so.5.0 unload_shlib called on /usr/lib/libexpat.so.12.0 unload_shlib called on /usr/lib/libz.so.5.0 unload_shlib called on /usr/lib/libm.so.10.1 unload_shlib called on /usr/X11R6/lib/libdrm.so.7.9 unload_shlib called on /usr/X11R6/lib/libdrm_radeon.so.4.0 unload_shlib called on /usr/X11R6/lib/libdrm.so.7.9 unload_shlib unloading on /usr/X11R6/lib/libdrm_radeon.so.4.0 unload_shlib called on /usr/X11R6/lib/libdrm_amdgpu.so.1.10 unload_shlib called on /usr/X11R6/lib/libdrm.so.7.9 unload_shlib unloading on /usr/X11R6/lib/libdrm_amdgpu.so.1.10 unload_shlib called on /usr/lib/libc++.so.8.0 unload_shlib called on /usr/lib/libc++abi.so.5.0 unload_shlib called on /usr/lib/libpthread.so.26.1 unload_shlib unloading on /usr/X11R6/lib/modules/dri/radeonsi_dri.so Segmentation fault I wonder if /usr/X11R6/lib/modules/dri/*.so libraries should be linked with -znodelete to keep them after loading. Another possibility would be using RTLD_NODELETE on dlopen() call, but it needs to be implemented first (it should be simple to do as we support DF_1_NODELETE Elf flag). It would be interesting to know what Linux is doing here. Thanks. -- Sebastien Marie
