MPV video player is broken due to wrong libglslang library

Hi,

After one of the last Manjaro updates, I got this error when trying to start mpv

mpv: symbol lookup error: /usr/lib/libglslang.so.15: undefined symbol: spvValidatorOptionsSetAllowOffsetTextureOperand

And it seems that “glslang” was updated in the last couple of days.

The only solution was to remove glslang and install glslang-git from AUR . But the strange thing is, that both packages create the file /usr/lib/libglslang.so.15.2.0.

But I was under the expression that changes to the ABI should also change the version number.

@Tobiwan
What is ABI ?

(I’m sorry I can’t help you, but I have a question.)
I have not experienced your problem.

cf. my env. Click
❱ LC_ALL=C pamac info glslang
Name                  : glslang
Version               : 15.2.0-2
Description           : OpenGL and OpenGL ES shader front end and validator
URL                   : https://github.com/KhronosGroup/glslang
Licenses              : BSD-3-Clause
Repository            : None
Installed Size        : 13.1 MB
Groups                : --
Depends On            : gcc-libs spirv-tools
Optional Dependencies : --
Required By           : ffmpeg libplacebo shaderc
Optional For          : --
Provides              : --
Replaces              : --
Conflicts With        : --
Packager              : Robin Candau <antiz@archlinux.org>
Build Date            : Thu Apr  3 21:43:09 2025
Install Date          : Sat Apr 12 20:43:54 2025
Install Reason        : Explicitly installed
Validated By          : Signature
Backup files          : --

❱ mpv --version
mpv v0.40.0-dirty Copyright © 2000-2025 mpv/MPlayer/mplayer2 projects
 built on Apr  4 2025 07:28:54
libplacebo version: v7.349.0
FFmpeg version: n7.1
FFmpeg library versions:
   libavcodec      61.19.100
   libavdevice     61.3.100
   libavfilter     10.4.100
   libavformat     61.7.100
   libavutil       59.39.100
   libswresample   5.3.100
   libswscale      8.3.100

❱ pacman-mirrors -G ; uname -r
stable
6.14.0-1-MANJARO

I don’t see that error. You didn’t say how you are trying to start mpv either.

mpv --player-operation-mode=pseudo-gui

Try that… I get no terminal output and a clean pop-up MPV window asking me to drop files or URLs to play.

Other relevant information (I am on Testing branch, so I have glslang 15.2.0-2 and the same version of mpv that you have.

mbn info glslang -q
  4    1   │ Branch         : archlinux
  5    2   │ Name           : glslang
  6    3   │ Version        : 15.2.0-2
  7    4   │ Repository     : extra
  8    5   │ Build Date     : Thu 03 Apr 2025 19:43:09
  9    6   │ Packager       : Robin Candau <antiz@archlinux.org>
 10    7   │ Branch         : unstable
 11    8   │ Name           : glslang
 12    9   │ Version        : 15.1.0-1
 13   10   │ Repository     : extra
 14   11   │ Build Date     : Tue 14 Jan 2025 17:38:59
 15   12   │ Packager       : Robin Candau <antiz@archlinux.org>
 16   13   │ Branch         : testing
 17   14   │ Name           : glslang
 18   15   │ Version        : 15.1.0-1
 19   16   │ Repository     : extra
 20   17   │ Build Date     : Tue 14 Jan 2025 17:38:59
 21   18   │ Packager       : Robin Candau <antiz@archlinux.org>
 22   19   │ Branch         : stable
 23   20   │ Name           : glslang
 24   21   │ Version        : 15.1.0-1
 25   22   │ Repository     : extra
 26   23   │ Build Date     : Tue 14 Jan 2025 17:38:59
 27   24   │ Packager       : Robin Candau <antiz@archlinux.org>

hmm mpv is not broken, works perfect here.

mpv -v                                                                                                                                                                     ✔ 
[cplayer] Command line options: '-v'
[cplayer] mpv v0.40.0-dirty Copyright © 2000-2025 mpv/MPlayer/mplayer2 projects
[cplayer]  built on Apr  4 2025 07:28:54
[cplayer] libplacebo version: v7.349.0
[cplayer] FFmpeg version: n7.1
[cplayer] FFmpeg library versions:
[cplayer]    libavcodec      61.19.100
[cplayer]    libavdevice     61.3.100
[cplayer]    libavfilter     10.4.100
[cplayer]    libavformat     61.7.100
[cplayer]    libavutil       59.39.100
[cplayer]    libswresample   5.3.100
[cplayer]    libswscale      8.3.100
[cplayer] Configuration: -Db_pie=true -Dpython.bytecompile=1 -Dlibmpv=true -Dgl-x11=enabled -Dcaca=disabled -Dcdda=enabled -Ddrm=enabled -Ddvbin=enabled -Ddvdnav=enabled -Dlibarchive=enabled -Dopenal=enabled -Dprefix=/usr -Dlibexecdir=lib -Dsbindir=bin -Dauto_features=auto -Dbuildtype=plain -Dwrap_mode=nodownload
[cplayer] List of enabled features: alsa build-date cdda cplugins cuda-hwaccel cuda-interop dmabuf-interop-gl dmabuf-wayland drm dvbin dvdnav egl egl-drm egl-wayland egl-x11 ffmpeg ffnvcodec gbm gl gl-x11 glibc-thread-name glob glob-posix gpl iconv jack javascript jpeg lcms2 libarchive libass libavdevice libbluray libdl libplacebo linux-fstatfs luajit memfd-create memrchr openal pipewire posix posix-shm ppoll pthread-condattr-setclock pulse rubberband rubberband-3 sixel uchardet vaapi vaapi-drm vaapi-wayland vaapi-x11 vapoursynth vdpau vdpau-gl-x11 vector vk-khr-display vt.h vulkan wayland wayland-protocols-1-32 wayland-protocols-1-38 wayland-protocols-1-39 wayland-protocols-1-41 x11 xv zimg zimg-st428 zlib
[cplayer] Reading config file /etc/mpv/encoding-profiles.conf
[ifo_dvdnav] Opening /etc/mpv/encoding-profiles.conf
[bdmv/bluray] Opening /etc/mpv/encoding-profiles.conf
[file] Opening /etc/mpv/encoding-profiles.conf
[cplayer] Applying profile 'default'...
[cplayer] Reading config file /home/weingeist/.config/mpv/mpv.conf
[ifo_dvdnav] Opening /home/weingeist/.config/mpv/mpv.conf
[bdmv/bluray] Opening /home/weingeist/.config/mpv/mpv.conf
[file] Opening /home/weingeist/.config/mpv/mpv.conf
[cplayer] Applying profile 'default'...
[cplayer] Setting option 'vo' = 'gpu-next' (flags = 4)
[cplayer] Setting option 'gpu-context' = 'auto' (flags = 4)
[cplayer] Setting option 'hwdec' = 'cuda' (flags = 4)
[cplayer] Setting option 'gpu-api' = 'vulkan' (flags = 4)
[cplayer] Setting option 'cache' = 'yes' (flags = 4)
[cplayer] Setting option 'hwdec-codecs' = 'all' (flags = 4)
[cplayer] Setting option 'profile' = 'gpu-hq' (flags = 4)
[cplayer] Applying profile 'gpu-hq'...
[cplayer] Setting option 'profile' = 'high-quality' (flags = 4)
[cplayer] Applying profile 'high-quality'...
[cplayer] Setting option 'scale' = 'ewa_lanczossharp' (flags = 4)
[cplayer] Setting option 'hdr-peak-percentile' = '99.995' (flags = 4)
[cplayer] Setting option 'hdr-contrast-recovery' = '0.30' (flags = 4)
[cplayer] Setting option 'x11-bypass-compositor' = 'no' (flags = 4)
[cplayer] Setting option 'keep-open' = 'no' (flags = 4)
[cplayer] Setting option 'target-colorspace-hint' = 'yes' (flags = 4)
[cplayer] Setting option 'tone-mapping' = 'auto' (flags = 4)
[cplayer] Setting option 'hdr-compute-peak' = 'yes' (flags = 4)
[cplayer] Setting option 'target-peak' = 'auto' (flags = 4)
[cplayer] Setting option 'gamut-mapping-mode' = 'perceptual' (flags = 4)
[cplayer] Setting option 'hdr-contrast-recovery' = '1.0' (flags = 4)
[cplayer] Setting option 'sub-file-paths' = 'sub:subtitles:Subs' (flags = 4)
[cplayer] Setting option 'sub-auto' = 'fuzzy' (flags = 4)
[cplayer] Setting option 'embeddedfonts' = 'yes' (flags = 4)
[cplayer] Setting option 'ao' = 'pipewire' (flags = 4)
[cplayer] Setting option 'volume' = '30' (flags = 4)
[cplayer] Setting option 'volume-max' = '150' (flags = 4)
[cplayer] Setting option 'v' = '' (flags = 8)
[clipboard/wayland] Registered interface wl_seat at version 8
[clipboard/wayland] Compositor doesn't support the ext_data_control_manager_v1 protocol!
[clipboard/wayland] Deregistering seat 0xa
[clipboard] Initialized vo clipboard backend.
[cplayer] mpv v0.40.0-dirty Copyright © 2000-2025 mpv/MPlayer/mplayer2 projects
[cplayer]  built on Apr  4 2025 07:28:54
[cplayer] libplacebo version: v7.349.0
[cplayer] FFmpeg version: n7.1
[cplayer] FFmpeg library versions:
[cplayer]    libavcodec      61.19.100
[cplayer]    libavdevice     61.3.100
[cplayer]    libavfilter     10.4.100
[cplayer]    libavformat     61.7.100
[cplayer]    libavutil       59.39.100
[cplayer]    libswresample   5.3.100
[cplayer]    libswscale      8.3.100
[cplayer] Usage:   mpv [options] [url|path/]filename
[cplayer] 
[cplayer] Basic options:
[cplayer]  --start=<time>    seek to given (percent, seconds, or hh:mm:ss) position
[cplayer]  --no-audio        do not play sound
[cplayer]  --no-video        do not play video
[cplayer]  --fs              fullscreen playback
[cplayer]  --sub-file=<file> specify subtitle file to use
[cplayer]  --playlist=<file> specify playlist file
[cplayer] 
[cplayer]  --list-options    list all mpv options
[cplayer]  --h=<string>      print options which contain the given string in their name
[cplayer] Set property: user-data/osc/visibility="auto" -> 1
[cplayer] Set property: user-data/osc/margins={"t":0,"b":0,"l":0,"r":0} -> 1

Oh sorry, I forgot to explain. ABI is the “API” a native executable uses to interact with libraries.

1 Like

I try to start mpv by simply typing “mpv” into the command line.

Maybe something on my local setup is or was broken. I am not able to replicate the issue in a virtual machine (with the latest KDE Manjaro ISO).

I guess I will close the ticket here.

And MPV still works fine after switching back from glslang-git to glslang (even after a reboot). Maybe I tampered with glslang.so in the past.

1 Like