The stable update broke mesa/vulkan run-time shader compilation

Manjaro user for half a year now. Pleasantly surpised with this OS! :smiley:, though it did took quite some configuring to get my games running properly on my Strix laptop with AMD CPU & GPU, running HW-accelerated games on an external monitor without DRI_PRIME=1 (in the end, simply removing the amdgpu drivers fixed everything). I enjoyed carefree gaming for a few weeks, but now after this 2023- 01-24 update, many games (Blizzard and on Steam) did not start anymore… Bummer :frowning:

I dived into journalctl and came across this whenever a crashing game wanted to start:

jan 26 00:11:02 Strix plasmashell[15940]: NIR validation failed after spirv_to_nir
jan 26 00:11:02 Strix plasmashell[15940]: 2 errors:
jan 26 00:11:02 Strix plasmashell[15940]: shader: MESA_SHADER_COMPUTE

Followed by a complete dump of vulkan shader code/logic.
But also the actual error being reported twice, being:

jan 26 00:11:02 Strix plasmashell[15940]: error: nir_dest_bit_size(instr->dest) == util_format_get_blocksizebits(format) (../mesa-22.3.3/src/compiler/nir/nir_validate.c:741)

This error never appeared in the journal before the upgrade. So my hunch was to downgrade everything related with mesa/vulkan (from v22.3.3-2) to the previous version (v22.3.1-1) and reboot. This gave some graphic troubles, being: the system running only in software rendering mode and no signal on my external monitor anymore.
In pacman I also came across the ‘spirv-tools’ and ‘spirv-llvm-translator’ packages, which struck a chord with me, since ‘spirv’ was what the shader error was about. So I downgraded those two as well, these packages complained that they depended on llvm-14, so I also downgraded the whole llvm suite (from v15.0.7-1) to the previous version (v14.0.6-1).
This gave the problem that the newer Qt packages depended on the newer llvm-suite. So I also downgraded everything Qt5 and Qt6 related (from v5.15.8) to the previous version (v5.15.7).
This finally seemed to do the trick. No glitches, all my applications still work and I can play games again. The system seems stable for the past 2 days :crossed_fingers:

For completeness though, I also downgraded ‘shiboken6’ whose version (v6.4.2-5) depended on ‘clang’ v15.0.7, which I had just downgraded. And since the description and version numbers match, I guess ‘pyside6’ goes along with ‘shiboken6’, so I downgraded that one as well, for stability’s sake…

Anyways, TL;DR:
The stable update broke the run-time shader compilation on my system and I had to revert the following upgrades to keep things working as they did before:

Downgraded / Reverted
upgraded vulkan-intel (22.3.1-1 -> 22.3.3-3)
upgraded mesa-vdpau (22.3.1-1 -> 22.3.3-3)
upgraded libva-mesa-driver (22.3.1-1 -> 22.3.3-3)
upgraded lib32-vulkan-radeon (22.3.1-1 -> 22.3.3-2)
upgraded vulkan-radeon (22.3.1-1 -> 22.3.3-3)
upgraded lib32-vulkan-mesa-layers (22.3.1-1 -> 22.3.3-2)
upgraded vulkan-mesa-layers (22.3.1-1 -> 22.3.3-3)
upgraded lib32-vulkan-intel (22.3.1-1 -> 22.3.3-2)
upgraded lib32-opencl-mesa (22.3.1-1 -> 22.3.3-2)
upgraded opencl-mesa (22.3.1-1 -> 22.3.3-3)
upgraded lib32-mesa-vdpau (22.3.1-1 -> 22.3.3-2)
upgraded lib32-libva-mesa-driver (22.3.1-1 -> 22.3.3-2)
upgraded lib32-mesa (22.3.1-1 -> 22.3.3-2)
upgraded mesa (22.3.1-1 -> 22.3.3-3)

upgraded llvm (14.0.6-4 -> 15.0.7-1)
upgraded llvm-libs (14.0.6-4 -> 15.0.7-1)
upgraded lib32-llvm-libs (14.0.6-3 -> 15.0.7-1)
upgraded lldb (14.0.6-1 -> 15.0.7-1)
upgraded lib32-clang (14.0.6-2 -> 15.0.7-1)
upgraded libclc (14.0.6-1 -> 15.0.7-1)
upgraded compiler-rt (14.0.6-1 -> 15.0.7-1)
upgraded clang (14.0.6-4 -> 15.0.7-1)

upgraded shiboken6 (6.4.1-2 -> 6.4.2-5)   # v6.4.2-5 depends on clang v15.0.7
upgraded pyside6 (6.4.1-2 -> 6.4.2-5)     # Seems tightly connected to shiboken6, better keep versions aligned.

upgraded qt5-virtualkeyboard (5.15.7-1 -> 5.15.8-1)
upgraded qt5-imageformats (5.15.7+kde+r6-2 -> 5.15.8+kde+r9-1)
upgraded qt5-sensors (5.15.7-1 -> 5.15.8-1)
upgraded qt5-tools (5.15.7+kde+r1-2 -> 5.15.8+kde+r1-3)
upgraded qt5-webengine (5.15.11-3 -> 5.15.12-2)
upgraded qt5-location (5.15.7+kde+r3-1 -> 5.15.8+kde+r3-1)
upgraded qt5-webchannel (5.15.7+kde+r3-1 -> 5.15.8+kde+r3-1)
upgraded qt5-graphicaleffects (5.15.7-1 -> 5.15.8-1)
upgraded qt5-quickcontrols2 (5.15.7+kde+r7-1 -> 5.15.8+kde+r7-1)
upgraded qt5-quickcontrols (5.15.7-1 -> 5.15.8-1)
upgraded qt5-speech (5.15.7+kde+r1-1 -> 5.15.8+kde+r1-1)
upgraded qt5-multimedia (5.15.7+kde+r1-1 -> 5.15.8+kde+r1-1)
upgraded qt5-wayland (5.15.7+kde+r58-1 -> 5.15.8+kde+r57-1)
upgraded qt5-declarative (5.15.7+kde+r25-1 -> 5.15.8+kde+r24-2)
upgraded qt5-svg (5.15.7+kde+r9-1 -> 5.15.8+kde+r8-1)
upgraded qt5-x11extras (5.15.7-1 -> 5.15.8-1)
upgraded qt5-base (5.15.7+kde+r177-1 -> 5.15.8+kde+r174-1)
upgraded qt5-translations (5.15.7-1 -> 5.15.8-1)

upgraded qt6-declarative (6.4.1-1 -> 6.4.2-1)
upgraded qt6-base (6.4.1-1 -> 6.4.2-1)
upgraded qt6-translations (6.4.1-1 -> 6.4.2-1)

How to deal with this in the future, once other upgrades get released? I can imagine that at some points, package versions start to differ to much and things get unstable. But for now, I’m not going to upgrade anything which updates any of these above packages (which is troublesome in the long end, since I’m a C++ developer and I like to keep the LLVM suite up-to-date).

I searched a bit more, and it seems this was already a known issue in November 2022:

Which lead me to the Vulkan/Mesa developers’ thread on this exact bug:

Apparently, it got fixed in v1.6 of vkd3d (and lib32-vkd3d). Sadly enough, Manjaro is still on v1.5.1 of these packages.
In other words, my sincere request to the Manjaro maintainers to take along the newer vkd3d update in the next big stable update. :pray:
Let me know if I can help in some way… (e.g. testing?)

Vkd3d 1.6 is in the aur. I don’t know if it would break anything installing from the aur though.

Just looked on manjaro branch compare testing and unstable have Vkd3d 1.6 but lib 32-Vkd3d is 1.5-1

1 Like

Updating to the new February stable release AND subsequent updates of mesa/vulkan drivers to v22.3.4-2, fixes all my gaming issues with both WoW and Conan Exiles.

Thus, this issue can now be considered fixed :slight_smile:

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.