Hello @Spacefish, a regression in your video driver should also be reported to your video driver vendor.
Hello @Spacefish, a regression in your video driver should also be reported to your video driver vendor.
It´s amdgpu / RADV, i see a lot of vulkan validation errors that VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT is missing. Not sure if the crash might be a result of this / a new timing of the newer RADV driver which might trigger the crash now?
Please see my vibecoded Vulkan Layer in #855 which fixes this. SteamVR does not attach a VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT flag to the swapchain images as well as render target images it seems, if you manually (via a Vulkan Layer) attach this flag anyway, it works flawlessly and doesn´t crash.
Just wanted to say thanks @Spacefish, Debian updated to Mesa 26 and that Vulkan layer works as a bandaid until SteamVR/Mesa can properly identify the problem and fix the issue. Got me video output instead of a blank display with both 2.14.5 as well as 2.15.4.
Fixed in 2.16.1, which is now out!
@Packetdancer still broken for me in 2.16.1 if i enable vulkan validation layers i see:
[2026-04-08 00:10:10] Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01208 ] | MessageID = 0xf855a75b
[2026-04-08 00:10:10] vkCmdPipelineBarrier(): pImageMemoryBarriers[0].newLayout (VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) is not compatible with VkImage 0x90000000009[SwapChainImage] usage flags VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_STORAGE_BIT.
[2026-04-08 00:10:10] The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT usage flag set (https://vulkan.lunarg.com/doc/view/1.4.335.0/linux/antora/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier-oldLayout-01208)
[2026-04-08 00:10:10] Objects: 1
[2026-04-08 00:10:10] [0] VkImage 0x90000000009[SwapChainImage]
Which means the swapchain images are created with VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_STORAGE_BIT and someone tries to change their layout to VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL which is not allowed if they wherent create with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
There must be a call to vkCreateSwapchainKHR in your SteamVR compositor code, where a VkSwapchainCreateInfoKHR is passed as the second parameter. This VkSwapchainCreateInfoKHR has an imageUsage parameter, where you set VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_STORAGE_BIT however it should be VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_STORAGE_BIT|VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
Hm. I'll reopen the issue then, thanks for the heads-up. Can you confirm what headset/setup you're using?
We cleaned a lot of this up for vrlink, but I wonder if there's another area that got missed...
I assume that my 303 issue where vrcompositor crashes also goes into here as its an issue with Mesa 26. #879
Same with my setup:
Operating System: Arch Linux KDE Plasma Version: 6.6.3 KDE Frameworks Version: 6.24.0 Qt Version: 6.11.0 Kernel Version: 6.19.10-zen1-1-zen (64-bit) Graphics Platform: Wayland Processors: 6 × Intel® Core™ i5-8600K CPU @ 3.60GHz Memory: 26 GB of RAM (25,1 GB usable) Graphics Processor: AMD Radeon RX 6750 XT SteamVR version: 2.16.1
Headset: Valve Index
Mesa Version: 26.0.4-1
Hm. I'll reopen the issue then, thanks for the heads-up. Can you confirm what headset/setup you're using?
We cleaned a lot of this up for vrlink, but I wonder if there's another area that got missed...
I am using a Valve Index on Wayland (KDE)
I suspect the swap chain setup path is maybe different there. It gets the DRM device via the Wayland DRM leasing protocol, does the mode setting and swap chain setup is probably directly after that.
@Spacefish - I forgot to ask this more recently, but is this still happening for you under 2.16.3?
(There's been some changes that I hope might fix this, though none was explicitly for this.)
As an aside, I have also gone in and added the color attachment bit to the swapchain even for the async (compute) path, though I forgot to edit the ticket when I did. That's not in 2.16.3, but should be in 2.16.4.
I'm just curious if the other stuff in 2.16.3 had any impact.
@Packetdancer running 2.16.4 without my custom layer that adds the bit fixes the issue for me. Thanks a lot 👍🏻.
Also thanks for adding timeline semaphores :)
The timeline semaphores were not me, but yes, they were an incredibly valuable change.
Nothing extracted yet.
When running SteamVR with Mesa 26, there seems to be multiple issues.. The same setup works fine with Mesa 25.3
It seems to work for a couple of seconds, where i am in the compositor and can see the controllers, however the dashboard is not shown, then vrcompositor segfaults.
i enabled drm trace logging (see dmesg.log).
When i enable vulkan validation layers i see a lot of
and
There are a lot of logmessages like in vrcompositor.log:
and in vrclient_wine64-preloader.txt i finds this:
xrclient_wine64-preloader.txt
xrclient_wayvr.txt
webhelper.txt
vrwebhelper_systemui.txt
vrwebhelper_settings_desktop.txt
vrstartup.txt
vrserver.txt
vrmonitor.txt
vrcompositor.txt
vrclient_wine64-preloader.txt
vrclient_vrwebhelper_main.txt
vrclient_vrcompositor.txt
vrclient_steam.txt
steamui_audio.txt
driver_vrlink.txt
console_log.txt
cloud_log.txt
dmesg.log.gz