inexplicable TW Mesa packaging
# grep onlyR /etc/zypp/zypp.conf solver.onlyRequires = true # rpm -e libdrm_radeon1 libvdpau_radeonsi xf86-video-ati libvdpau_r600 error: Failed dependencies: libdrm_radeon.so.1()(64bit) is needed by (installed) Mesa-libva-22.3.2-336.1.x86_64 libdrm_radeon.so.1()(64bit) is needed by (installed) Mesa-dri-22.3.2-336.1.x86_64 libdrm_radeon.so.1()(64bit) is needed by (installed) Mesa-gallium-22.3.2-336.1.x86_64 libdrm_radeon.so.1()(64bit) is needed by (installed) Mesa-dri-nouveau-22.3.2-336.1.x86_64 # Why does Mesa in an NVidia-only GPU installation require AMDGPU/Radeon-only packages? Is this artificial requirement also true with upstream Mesa? -- Evolution as taught in public schools is, like religion, based on faith, not based on science. Team OS/2 ** Reg. Linux User #211409 ** a11y rocks! Felix Miata
Am 09.02.23 um 03:24 schrieb Felix Miata:
# grep onlyR /etc/zypp/zypp.conf solver.onlyRequires = true # rpm -e libdrm_radeon1 libvdpau_radeonsi xf86-video-ati libvdpau_r600 error: Failed dependencies: libdrm_radeon.so.1()(64bit) is needed by (installed) Mesa-libva-22.3.2-336.1.x86_64 libdrm_radeon.so.1()(64bit) is needed by (installed) Mesa-dri-22.3.2-336.1.x86_64 libdrm_radeon.so.1()(64bit) is needed by (installed) Mesa-gallium-22.3.2-336.1.x86_64 libdrm_radeon.so.1()(64bit) is needed by (installed) Mesa-dri-nouveau-22.3.2-336.1.x86_64 #
Why does Mesa in an NVidia-only GPU installation require AMDGPU/Radeon-only packages? Is this artificial requirement also true with upstream Mesa?
Mesa-{libva,dri,gallium} contain the user-space drivers for all supported GPUs, e.g. $ rpm -ql Mesa-gallium /usr/lib64/gallium-pipe /usr/lib64/gallium-pipe/pipe_crocus.so /usr/lib64/gallium-pipe/pipe_i915.so /usr/lib64/gallium-pipe/pipe_iris.so /usr/lib64/gallium-pipe/pipe_nouveau.so /usr/lib64/gallium-pipe/pipe_r300.so /usr/lib64/gallium-pipe/pipe_r600.so /usr/lib64/gallium-pipe/pipe_radeonsi.so /usr/lib64/gallium-pipe/pipe_swrast.so /usr/lib64/gallium-pipe/pipe_vmwgfx.so Some of them (like pipe_radeonsi.so) naturally link against libdrm_amdgpu.so.1. To change this, one would need to split the different backends, or split them along hardware families. However, several of the libraries are actually the same file. For example, the 4 files in Mesa-libva are all hardlinked: ls -ld $(rpm -ql Mesa-libva) -rwxr-xr-x 4 root root 12601776 Feb 10 15:22 /usr/lib64/dri/nouveau_drv_video.so -rwxr-xr-x 4 root root 12601776 Feb 10 15:22 /usr/lib64/dri/r600_drv_video.so -rwxr-xr-x 4 root root 12601776 Feb 10 15:22 /usr/lib64/dri/radeonsi_drv_video.so -rwxr-xr-x 4 root root 12601776 Feb 10 15:22 /usr/lib64/dri/virtio_gpu_drv_video.so If you run "readelf --dynamic" on any of them, you'll see [...] (SONAME) Library soname: [libgallium_drv_video.so] So this is actually one library available under different names. Same goes for the libraries in Mesa-dri. They are all different names for [...] (SONAME) Library soname: [libgallium_dri.so] Only Mesa-gallium has genuinely different libraries. But you'll still get the dependencies via Mesa-dri. The reason for this entanglement is likely that there is lots of shared code between the backends. But I don't know if Mesa can be built in a way that would cleanly separate along different GPU types. Aaron
participants (2)
-
Aaron Puchert
-
Felix Miata