protonscr

Elite Dangerous Odyssey Update 6 smoke rendered as rainbows

dxvkclosed d3d11
doitsujin/dxvk#2198 · opened 2021-07-30 by TRPB · updated 2022-06-23 · 8 comments · github
1 matching comments, n / p to jump
TTRPB 2021-07-30 github

Software information

Elite Dangerous Odyssey Update 6. When running the game smoke effects anywhere in the game are replaced with incorrectly rendered textures:

20210729181834_1

This screenshot is from the menu but it happens in game anywhere smoke is drawn.

What I have tried:

  • A clean wine prefix (I deleted compdata/359320 and let it rebuild) as this game computes shaders on startup both in steam and in game, I thought it could be an invalid cache
  • Ultra graphics preset
  • Low graphics preset
  • This update introduced AMD FSR 1.0, I can't see how FSR would introduce rendering issues on specific textures but I tried turning it off anyway and it didn't make any difference.

None of these helped and the problem persists. This didn't happen in the earlier version of ED and if I launch the older expansion, Horizons, it works fine. It's something about the update

System information

  • GPU: Radeon VII
  • Driver: MESA
  • Wine version: Proton (Latest on steam as of 30/07/2021, Proton-GE 6.5 also has the same issue)
  • DXVK version: v1.8.1-36-g9e646a34-async

Apitrace file(s)

If you can provide instructions for running this through steam I'll happily provide it

Log files

  • d3d9.log:

EDLaunch_d3d9.log

  • d3d11.log:

EliteDangerous64_d3d11.log

  • dxgi.log:

EliteDangerous64_dxgi.log

KK0bin maintainer 2021-07-30 github

v1.8.1-36-g9e646a34-async

Does it happen with unpatched DXVK builds? (without the async hack)

TTRPB 2021-07-30 github

Yes, that was the log from proton-GE this is the log file from the latest proton (standard):

EliteDangerous64_d3d11.log

EliteDangerous64_dxgi.log

This just reports DXVK 1.9, the exact same thing happens.

Ddoitsujin maintainer 2021-07-30 github

Gonna need an apitrace, or detailed instructions on how to reproduce the problem as fast as possible with a fresh game install.

TTRPB 2021-07-30 github

I'll try to get an APItrace but to run the game

  1. Update wine mono in the prefix as per https://github.com/redmcg/wine-mono/wiki#with-protontricks
  2. Run protontricks -c 'mkdir ../../compatdata/359320/pfx/drive_c/users/steamuser/Local\ Settings/Application\ Data/Elite\ Dangerous\ Launcher_evidencehere' 359320
  3. Launch the game and select Odyssey (The top default option if you have the latest DLC) in the launcher.
  4. Wait for the main menu (it takes a long time and looks like it's frozen, just wait). The menu shows a ship with the smoke effect as per the screenshot

If for some reason a new character doesn't have a ship/smoke on the menu you can start the tutorial and there's smoke in the first base.

TTRPB 2021-07-30 github

Here's an API trace, it's too big to attach and most of this is from the "Preparing planet generation system" shader compilation outlined here: https://github.com/ValveSoftware/Proton/issues/150

If you start from the end (or are able to work out where it draws the menu by looking for text from the screenshot above), the smoke is on the screen when that menu is drawn.

I've uploaded the trace go google drive here: https://drive.google.com/file/d/1fqcT4EuNenAVdORAYcpCsxLySMlZOc2O/view?usp=sharing

OOschowa 2021-07-30 github

The trace replays fine here on RADV and Polaris, but from your log files it looks like you are using amdvlk and not Mesa driver:
Device name: : AMD Radeon VII
This should be RADV VEGA20 or something with RADV.
Please try to uninstall amdvlk and try again.

TTRPB 2021-07-30 github

Oh, thanks! I had thought AMDVLK had to be manually enabled on a per game basis, I didn't realise it had become the default on Arch. (I don't even know how it decides which is the default when both are installed).

Using VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json %command% fixes the issue.

Ddoitsujin maintainer 2021-07-30 github

AMDVLK ships with a layer that hides RADV devices by default, which can be disabled by setting DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 (or just uninstalling AMDVLK, as was suggested).