On Wed, May 05, 2021 at 01:38:06PM +0200, Sebastien Marie wrote: > 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
Thanks that worked! I used the wrong .so. Now it also doesn't crash anymore. For completeness I used: LD_PRELOAD=/usr/X11R6/lib/modules/dri/i965_dri.so LD_DEBUG=1 \ mpv -vo=gpu 'https://www.youtube.com/embed/QTk688cXTsA' -- Kind regards, Hiltjo