This is actually an Nvidia driver issue where games running under vkd3d-proton experience degraded performance
This is actually an Nvidia driver issue where games running under vkd3d-proton experience degraded performance
I'm aware of the Nvidia driver not always performing as well with VKD3D-Proton, however the regressions typically aren't this extreme and honestly from personal experience, anything DX12-based I've played recently on this card have played nearly equivalent to Windows so the driver issues usually aren't this severe. I just played Helldivers 2 very recently on both my Fedora and Windows drives and they run about the same for me.
I don't have logs or screenshots/footage from an AMD GPU because I don't have access to the RX 6700 XT I used to have, but I know even on that card there was still a problem with resolution scaling not affecting the framerate whatsoever. Native resolution would basically run the same as playing on Performance upscaling. I can also add on that the Dynamic resolution scaling option doesn't seem to work at all on Linux no matter what framerate target is set (it looks like it's just stuck on native resolution?) which further adds on that there's something wrong with GPU utilization on this game and not just a Nvidia driver problem.
Some AMD users says the game runs like crap, some say it runs good but with slightly less FPS than windows, some say it's on par with Windows. so it's hard to tell if it's partly a game issue or not.
As for Nvidia, have you tried stuff like DXVK_NVAPI_GPU_ARCH=GA100 or PROTON_HIDE_NVIDIA_GPU=1 ?
Some AMD users says the game runs like crap, some say it runs good but with slightly less FPS than windows, some say it's on par with Windows. so it's hard to tell if it's partly a game issue or not.
As for Nvidia, have you tried stuff like
DXVK_NVAPI_GPU_ARCH=GA100orPROTON_HIDE_NVIDIA_GPU=1?
Just tested those launch options and neither made a difference to performance. Weirdly enough I'm not sure if PROTON_HIDE_NVIDIA_GPU=1 worked? Adding that variable made the game re-generate the shader cache on startup, but afterwards Space Marine 2 still sees my Nvidia card and lets me use DLSS even with that launch option and even with PROTON_ENABLE_NVAPI=0, so I'm not sure if either Proton Experimental's being wonky or the game is doing something else to somehow get my real GPU. Tried this with SteamDeck=1 on and off as well just in case having it (despite needing it for online to work in this game) was doing something else but no dice.
Hiding the GPU should not let you DLSS, nor should disabling NVAPI but some games do funky things and seems to have their own way of detecting stuff.. I don't have the game myself so I can't try it.
The root cause here seems to be the game ending up creating a full Vulkan instance and destroying it every frame to enumerate stuff with D3DKMTEnumAdapters2. I think it comes from DLSS FG somehow. @liam-middlebrook
https://github.com/ValveSoftware/wine/pull/259 was implemented recently in Proton, so it would explain everything.
I am running into the exact same issue as you @CptCookies12, did you manage to find a fix?
My specs:
fedora 42 KDE
5800x3d
RX 7900XT
proton experimentalx2 2024-12DXVK_NVAPI_GPU_ARCH=GA100`x2 2024-12PROTON_HIDE_NVIDIA_GPU=1`x2 2024-12PROTON_ENABLE_NVAPI=0`,x1 2024-12VKD3D_CONFIG=no_upload_hvv`x1 2024-12
Copying over my post from the Proton issue page because this may be an issue with VKD3D-Proton seeing as I've seen the problem on both NVIDIA and AMD GPUs. There's something wrong with GPU utilization on this game under Proton that results close to a 45% performance difference compared to how the game runs natively on Windows.
While I only have logs and screenshots as of the game's current version (Hotfix 5.1) running on my RTX 4070 Super, I know that while I was still running an RX 6700 XT I was having the same or similar issues back when the game first came out a few months ago.
VKD3D_CONFIG=no_upload_hvvonly partially helps performance and it depends on the scene, so I don't believe Resizable BAR is the only culprit that's going on with this game regarding performance. Besides testing with that variable on and off, another confirmation for GPU utilization issues is that resolution scaling generally does not affect performance no matter what setting it's set to. Any lower resolutions simply lower GPU usage and power, and in some scenes it can actually cause a minor performance regression as shown in the later screenshots. These were all ran at Ultra preset with FSR upscaling set to Quality (barring the Ultra Performance comparison).Software information
Warhammer 40,000: Space Marine 2, Ultra preset with FSR Quality
System information
Log files
Please attach Proton or Wine logs as a text file:
Proton log: steam-2183900.tar.gz
Proton (no_upload_hvv) log: steam-2183900_no-upload-hvv.tar.gz