Emulator Issues #12871
openNo game can be started in 30bpp mode on Xorg
0%
Description
What's the problem? Describe what went wrong.
No game can be started when the 30bpp mode in enabled for Xorg on Linux. I only get the following warning windows:
“Failed to find a suitable format for swap chain buffers.” [OK] [Ignore for this session]
Clicking on [OK]: “Failed to create Vulkan swap chain.” [OK] [Ignore for this session]
Clicking on [OK]: “FIFO shutting down while active” [OK] [Ignore for this session]
Clicking on [OK]: “Failed to initialize video backend!” [OK] [Ignore for this session]
Note:
- I have no such issue when using the Vulkan renderer of other emulators such as PCSX2, PPSSPP and DuckStation.
- Games start without issues when Xorg runs in 24bpp mode.
- I'm using the RADV driver on Gentoo.
- At least Mesa 22.0.0 (or a patched version) should be needed to fully reproduce the issue. See: https://docs.mesa3d.org/relnotes/22.0.0.html (“wsi/x11: support depth 30 visuals”), https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9450
What steps will reproduce the problem?
- Run Xorg in 30bpp mode (with Mesa >= 22.0.0) on hardware that supports it: https://wiki.gentoo.org/wiki/30bpp
- Start the emulator and in “Graphics” → “Backend” make sure «Vulkan» is selected (this is the renderer I'm using).
- Try to start any game.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Yes: Dolphin [HEAD] 5.0-16195
Updated by JMC4789 about 2 years ago
- Status changed from New to Accepted
Can you retest this with the latest drivers and version of Dolphin? Vulkan has been updated quite a bit.
Updated by Scall about 2 years ago
Unfortunately the issue persists with Dolphin [HEAD] 5.0-17740 (commit 904551fdb9cbaf8150637f9a910feb7c19daee79).
It seems that's because the format “VK_FORMAT_A2R10G10B10_UNORM_PACK32” is not currently supported (I only see “VK_FORMAT_R8G8B8A8_UNORM” and “VK_FORMAT_B8G8R8A8_UNORM” as expected formats in the code): https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp#L166-L186