Project

General

Profile

Actions

Emulator Issues #9868

closed

Vulkan Renderer Fails (and crashes Dolphin) on Linux Radeon Mesa 13.0.0

Added by gourdcaptain over 7 years ago. Updated over 7 years ago.

Status:
Working as intended
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
Linux
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

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?

  1. Set the renderer in Dolphin to "Vulkan (experimental)"
  2. 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

amd-rx460-radv-vulkaninfo.txt (170 KB) amd-rx460-radv-vulkaninfo.txt The requested Vulkaninfo lines. gourdcaptain, 11/07/2016 09:20 AM
vulkan-radv-dolphin-log.txt (1.5 KB) vulkan-radv-dolphin-log.txt Logger in Dolphin set to Video Backend on Vulkan while launching Super Smash Bros Melee gourdcaptain, 11/07/2016 09:23 AM
Actions #1

Updated by Stenzek over 7 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 7 years ago

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)

Actions #3

Updated by Stenzek over 7 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.

Actions #4

Updated by gourdcaptain over 7 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.

Actions #5

Updated by gourdcaptain over 7 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.)

Actions

Also available in: Atom PDF