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

Reply via email to