protonscr

Mortal Shell has low performance in certain scenarios

dxvkclosed appid 1110910
doitsujin/dxvk#3754 · opened 2023-12-18 by simifor · updated 2024-01-14 · 5 comments · github · game page · search this game
Ssimifor 2023-12-18 github

Software information

Mortal Shell.
1680x1050, fullscreen, unlimited framerate.
Vsync, film grain and indie mode disabled.
Individual graphic options set to high.

Performance compared to vkd3d-proton, and windows.
The performance can be observed in the main menu with a certain background, the background depends on where you are in the game world, so I recommend using my save file to get it.
MortalShell.zip

Mortal Shell  _20231217_162941
Mortal Shell  _20231217_163219
Linux
dxvk = 61 FPS
vkd3d-proton = 110 FPS

Windows
dx11 = 110 FPS
dx12 = 102 FPS

I tested proton 5.0, 5.11, 6.3, 8.0.4, 8 RC, EXP BE and there were no differences with the performance.

System information

  • GPU: RX 6600
  • Driver: mesa 23.3.1
  • Wine version: 8/7
  • DXVK version: 2.3

Apitrace file(s)

When using wined3d the main menu looks like this, so I don't think a wined3d trace would be useful (I don't even know if it would be useful at all in this case as, to my eyes, it at least renders correctly). If you think it would be helpful, I could trace from windows
Y1218_142046

For instructions on how to use apitrace, see: https://github.com/doitsujin/dxvk/wiki/Using-Apitrace

Log files

steam-1110910.log

Mmbriar 2023-12-18 github

When using wined3d the main menu looks like this, so I don't think a wined3d trace would be useful

You can apitrace just fine with DXVK almost all of the time.

Ssimifor 2023-12-18 github

https://mega.nz/file/1z0BiC4I#N6dbaZ9AS1srEvmjpUdOBEp2wQWaWimeN7OWMaP2aGY here's the compressed trace taken with dxvk. 550MB compressed, 1.7GB uncompressed

Ssimifor 2023-12-20 github

I've now tested the game on windows with dxvk and on linux with amdvlk and the results are weird.

Main menu performance:
Native DX11 =~110FPS
RADV VKD3D-PROTON =~110FPS
Native DX12 =~102FPS
AMDVLK DX11 =~97FPS
Windows+DXVK =~90FPS
RADV+DXVK =~61FPS
AMDVLK+VKD3D-PROTON=~60FPS

Ingame tested location:
RADV+DXVK =~111FPS
Native DX12 =~109FPS
RADV+VKD3D-PROTON =~97FPS
AMDVLK+DXVK =~97FPS
AMDVLK+VKD3D-PROTON=~92FPS
Windows+DXVK =~85FPS
Native DX11 =~79FPS

Windows+VKD3D-PROTON makes the game crash

So the results are a mixed bag. Native DX11 is the fastest in the main menu, but it's the slowest in the in game performance.

RADV+DXVK is tied in last places with AMDVLK+VKD3D-PROTON for the main menu, but RADV+DXVK is tied to Native DX12 in the first place for in game performance.

RADV+DXVK and windows+DXVK lose performance versus native DX11 in the main menu, but they gain performance in game.

Native DX11 is the fastest in the main menu, and the slowest in game.

The main menu is a 3D scene and not static.

Ssimifor 2023-12-22 github

I progressed further into the game so that I'm now in an icy location, so I have more comparison points now.
Location 1 is the only tested scene to not be icy. Numbers represent frames per second.

RADV DXVK RADV VKD3D-PROTON AMDVLK DXVK AMDVLK VKD3D-PROTON Windows DX11 Windows DXVK Windows DX12
Menu 61 110 97 60 110 90 102
Menu 2 134 147 85 97 145 78
Character skill 264 217 85 204 268 268
Location4 108 126 95 76 94 91
Location1 111 97 97 92 79 85 109
Location2 74 83 81 66 85 75 84
Location3 75 109 106 67 103 95 101

Here's a link for a radv+dxvk captured trace of the menu https://mega.nz/file/ojMjCLLC#t-xBefMx7xLQpyIch9y0wEPWlNxiConSVXC4eYB0_vo and ingame https://mega.nz/file/U6tj2KTY#j6zymKe3Yiu2ZBpuJGBQJHVJGgeas-e3j1XP5H3yrQI

Here's a save file for a frozen ingame location
MortalShell (2).zip

Here's a save file for the second menu, character skill and location 4 MortalShell (3).zip

Screenshots to show locations being captured:
Menu:
Mortal Shell  _20231217_162941
Menu2:
Mortal Shell  _20231228_181840
Character Skill:
Mortal Shell  _20231228_181944
Location1:
Mortal Shell  _20231217_162914
Location2:
Mortal Shell  _20231222_132029
Location3:
Mortal Shell  _20231222_132057
Location4:
Mortal Shell  _20231228_182022

Ssimifor 2024-01-14 github

I compiled a fresh mesa-git and the performance in snowy region is good now, menu performance is tied to amdvlk now and the ingame have it as the fastest dx11 implementation. I don't know what commit fixed it, but it must have been between 551924aa879 and cfba24ccb54

Proton versions