Emulator Issues #9868
closedVulkan Renderer Fails (and crashes Dolphin) on Linux Radeon Mesa 13.0.0
0%
Description
What's the problem? Describe what went wrong.
Running Dolphin on Linux with the Mesa 13.0.0 drivers for Vulkan on recent AMD Radeon cards results in a series of errors followed by a segmentation fault when using the Vulkan renderer in Dolphin. The error boxes are in order "Failed to create Vulkan instance", "Fifo shutting down while active", and "Failed to initialize video backend." At this point the game window stays open (fully grey) until the emulator crashes shortly after when interacting with it (including closing it) with the error (sometimes) "terminate called without an active exception", followed by a segmentation fault.
What steps will reproduce the problem?
- Set the renderer in Dolphin to "Vulkan (experimental)"
- Launch any game.
Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?
5.0.r1211, 5.0.r1171
What are your PC specifications? (CPU, GPU, Operating System, more)
OS: Arch Linux 64-bit.
CPU: Intel Core i7 6800k.
GPU: AMD Radeon RX 460 (4 GB version)
Driver: Mesa 13.0 RADV Vulkan Drivers for recent AMD cards/
Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
I'll admit I'm not sure this is the right place to file the bug given this may just have to do with the early state of the RADV Vulkan drivers (it even prints in the terminal when a program uses them "WARNING: radv is not a conformant vulkan implementation, testing use only."), but they do run VkQuake (the one other Vulkan program I tried) and it does at least seem like a fairly graceless crash. (Plus, if this needs to be filed with Mesa, I'm not sure I know enough to make an especially useful bug report.)
Files
Updated by Stenzek over 8 years ago
- Operating system Linux added
- Operating system deleted (
N/A)
Failing to create the instance means sounds like an issue with the Vulkan loader/runtime. Can you run "vulkaninfo" and attach the first 100 or so lines? Furthermore, checking Video Backend in Dolphin's logger may reveal some information as to why this is happening.
That said, I've managed to get Dolphin running on radv with Mesa git, but it was close to useless as there seemed to be synchronization issues and corrupted output (hardly surprising though, considering this was on a GCN2 GPU and both the kernel side and Vulkan driver are still experimental).
Updated by gourdcaptain over 8 years ago
- File amd-rx460-radv-vulkaninfo.txt amd-rx460-radv-vulkaninfo.txt added
- File vulkan-radv-dolphin-log.txt vulkan-radv-dolphin-log.txt added
Attached the requested logs. The most likely problematic thing is in the dolphin log, IMHO, being:
Missing required extension VK_KHR_xlib_surface.
Since I didn't put it in the first post, I'm using the 4.8.6-ARCH stock kernel from the repositories. (Which is good, as this card had major issues on 4.7)
Updated by Stenzek over 8 years ago
- Status changed from New to Working as intended
Thanks for the info.
Yup, that's definitely looks like the issue. I have noticed problems with the Vulkan runtime that ships with Ubuntu not supporting the extension, but looking at the version number I don't think that is the cause here.
I'd suspect it's more likely your Mesa version is missing this commit: https://cgit.freedesktop.org/mesa/mesa/commit/?id=9f0726f3e509c80c78ddb5e7411fa34f676de71d (I can't see it added in the 13.0 branch yet, at least)
Not a whole lot we can do here. If you're building Dolphin yourself, you can swap to using XCB by commenting line 14 and uncommenting line 15 of Source/Core/VideoBackends/Vulkan/VulkanLoader.h, but I haven't tested this code path in some time so YMMV.
As for the crashing, that's just due to the current design of how Dolphin boots (which is messy in parts), the video backend initialization happens on a different thread and the case of it failing is just not handled properly.
Updated by gourdcaptain over 8 years ago
Thank you for the help. In case anyone finds this via google and wants to try the above, I tried building it (5.0r1259) with XCB enabled and the build failed to link properly in the end, so the code path is certainly in the YMMV category.
Updated by gourdcaptain over 8 years ago
Mesa 13.0.1 fixes the bug causing this issue and Vulkan now (mostly, I had a crash or two) works on the RADV Vulkan drivers for me on my AMD Radeon RX 460 (and even lets me achieve mostly stable 60fps in F-Zero GX.)