HansKristian-Work / vkd3d-proton

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
GNU Lesser General Public License v2.1
1.75k stars 183 forks source link

[NVIDIA] Performance - D3D11 titles vs D3D12 titles #1922

Open shelterx opened 4 months ago

shelterx commented 4 months ago

It'll leave this here for cross reference, everything is in the forum post. But in short, it feels like D3D12 suffer more then D3D11 titles with Nvidia GPUs, I understand there's technical differences between the two API's but it feels like something is off somewhere.

https://forums.developer.nvidia.com/t/please-sort-out-the-dx12-vkd3d-proton-performance-under-linux/284642/2

Thanks for all your efforts @doitsujin and @HansKristian-Work and everyone else involved. If I can assist in any way, please let me know.

Blisto91 commented 4 months ago

It is a known issue that Nvidia isn't performing optimally together with vkd3d-proton compared to native d3d12. Things to improve it have been and are still being explored. https://github.com/HansKristian-Work/vkd3d-proton/pull/1902 Is some of the latest work in this category.

Blisto91 commented 3 months ago

The above work can now be tested on Proton Bleeding Edge. Right now this needs the Vulkan Dev driver to work (550.40.53)

shelterx commented 3 months ago

Ok, thanks for the hint. I tried with a master wine build but I had some issues with it. I'll try proton instead.

shelterx commented 3 months ago

I compiled Proton Experimental Bleeding Edge. Tried 3 games, saw no difference unfortunately. I expected to see some change at least.

Blisto91 commented 3 months ago

It is expected to only have a noticable effect in some games. Dead Space is one known. Lies of P too I've gathered.

shelterx commented 3 months ago

AC valhalla is a weird game. Nothing seems to fix the FPS. Been benchmarking it across many drivers and vkd3d/proton versions. Guardians of the galaxy and Control also saw no change.

EDIT: Speaking of Control, it's been a hit and miss depending on what versions of proton and vkd3d that was used. But it ran pretty much like Windows on an RTX 3060Ti last time I used that card. For some reason after i switched to RTX 4070 I don't seem to get the same performance, i lose around 30 FPS compared to Windows.

shelterx commented 3 months ago

Is there a way to check if nv_raw_access_chains is really being used?

shelterx commented 3 months ago

@doitsujin @HansKristian-Work Sorry to ping you but isn't this a bit weird, look at the GPU usage, from Control, this is with RT on. Obviously the card has a lot more to give... image

Same location on Windows under D3D12 gives me ~90 FPS (89-98% GPU load).

shelterx commented 3 months ago

Ok, so, if anyone can explain this? I noticed that turning Resizable Bar OFF (Above 4G decoding still ON) in BIOS actually makes Control use 99-100% of the GPU and bumps the FPS with ~15... so from 60, to 75. Still 15 FPS away from Windows but quite the bump nonetheless...

I also tested VKD3D_CONFIG=no_upload_hvv and Rebar ON in BIOS, it did not make any difference at all. If it was possible to workaround it with no_upload_hvv it would not be an issue, but I can't. I don't know what sort of voodoo this game uses.