protonscr

Performance regression in Forza Horizon 4 with AMDVLK

vkd3dopen
HansKristian-Work/vkd3d-proton#1509 · opened 2023-04-13 by CartoonFan · updated 2023-04-17 · 3 comments · github
CCartoonFan 2023-04-13 github

Please describe your issue as accurately as possible. Include screenshots or videos if relevant

Software information

Forza Horizon 4, Ultra settings, Arch Linux, Proton-GE 7-55

System information

  • GPU: AMD Radeon RX 6800 XT
  • Driver: AMD open-source driver, 2022.Q4.4 (LLPC)
  • Wine version: 1681149786 GE-Proton7-55
  • VKD3D-Proton version: 2.8.0, 42e3adc29f5b522

Log files

Proton log (around 1.3 GB uncompressed): https://drive.google.com/file/d/1mbLCxqLNUaIRcYAntGmRZG9xe9hSWZwQ/view?usp=sharing

Hello there! Apologies if this isn't your bug, but I figured here would be a good place to start.

Somewhere after Proton-GE 7-51 (and vkd3d-proton https://github.com/HansKristian-Work/vkd3d-proton/commit/b7fb41beb66c2d918d72de6be85a3faea1568ca3), the game's stability became noticeably better. Unfortunately, the FPS also dropped from around 60 to around 20-30 during the same period of time.

I took a screenshot of the in-game benchmark:

forza_horizon_4_benchmark_20230413090715_1

The game not using any video memory seems suspicious to me, but I can't tell much more than that. The game also complained about 'low bandwidth' or something similar during one of my benchmark runs, but I wasn't able to get a capture of that.

Hope this helps! Let me know if you need anything else from me :+1:

Mmbriar 2023-04-13 github

I don't know if it's even worth comparing performance with AMDVLK currently. Without VK_EXT_mutable_descriptor_type, it often ends up reading stuff back from VRAM on the CPU (at least that's what I think happens without host-only descriptors, not an expert), so it sits around 20-30 fps in many games, regardless of how powerful the hardware is. Can you also reproduce a performance regression when using RADV?

CCartoonFan 2023-04-13 github

I don't know if it's even worth comparing performance with AMDVLK currently. Without VK_EXT_mutable_descriptor_type, it often ends up reading stuff back from VRAM on the CPU (at least that's what I think happens without host-only descriptors, not an expert), so it sits around 20-30 fps in many games, regardless of how powerful the hardware is. Can you also reproduce a performance regression when using RADV?

That was it, apparently--it's back to ~60-70 FPS, although there were some noticeable stutters along the way. I apologize for the alarm; It's my first time with an AMD card, so I really don't know my options too well yet :sweat_smile:

20230413103346_1

Sorry for all the trouble, and thanks for the help :pray:

P.S. The proton log for RADV is here if some adventurous soul wants to look through a 5GB uncompressed log:

https://drive.google.com/file/d/1lpSK3NvBPTOSpQyidVZnrXZiD7kXizNg/view?usp=sharing

BBlisto91 2023-04-17 github

AMDVLK might doubly have perf issues with the maintenance4 feature. Unless it has since been fixed.
https://github.com/doitsujin/dxvk/issues/2784#issuecomment-1209980906

Proton versions

Upstream links