ValveSoftware / ValveSoftware/Proton

Doom 2016 Vulkan not loading with Vega M hardware (379720)

Open
#765 14 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Game compatibility
Dominant language
C++
Stars
32.8k
Forks
1.6k
PR merge metrics
PR metrics pending

Description

Hello Everyone,
I believe I've discovered a edge case bug that affects laptop users that have both an integrated GPU and a discrete GPU. In my case I have a system with a Vega M.

Current System Info:
Kernel: 4.18.5
Mesa: 18.3+
GPU: AMD Vega M

Description of the Problem:

Edit: I appear to have been mistaken. The DRI_PRIME environment variable is being passed into to DOOMx64vk.exe. The issue is that when running DOOM with Vulkan (r_renderapi 1) the game does not load (stuck at 99% and menu never appears).

I'm not 100% sure what's going on, but one possibility is that DOOM is not using the discrete Vega M GPU and instead using the Intel iGPU. I tried to force the use of the Vega M GPU by:

  • Removing the intel_icd* files in /usr/share/vulkan/icd.d directory.
  • Setting the VK_ICD_FILENAMES environment variable to explicitly point to the radeon_xxx.icd for the Vega M

The other possibility is that there is a bug with RADV (Mesa) on Vega M hardware with DOOM. This seems more unlikely though, as I'm able to run other games via Proton + DXVK with no problems.

When setting the following launch options:
DRI_PRIME=1 %command% +r_renderapi 0 (OpenGL)
The Vega M GPU is used and I have no problems - the game runs flawlessly.

If I try to run the game with the following launch options: `DRI_PRIME=1 %command% +r_renderapi 1` (Vulkan) Steam first starts `DOOMx64.exe` with the `DRI_PRIME=1` environment variable set. This exe then shuts down and the immediately starts `DOOMx64vk.exe` as a separate process (you can actually see this within Steam if you watch closely). When `DOOMx64vk.exe` is started, the context of the `DRI_PRIME=1` environment variable is lost, and the game uses the integrated Intel iGPU. I've tried creating a symlink from `DOOMx64.exe` to `DOOMx64vk.exe` to try to shortcut the execution process - but that doesn't appear to work.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported hang at 99% with DOOMx64vk.exe on Vega M hardware, using r_renderapi 1 and the documented DRI_PRIME and VK_ICD_FILENAMES settings. Compare Vulkan and OpenGL launch behavior and determine whether the issue is in process environment handling or RADV hardware support. Done means the Vulkan game reaches its menu on the discrete GPU, with the relevant cause and validation recorded.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
computer-graphics, game-dev, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.