protonscr

New version of World of Tanks unplayable due to extreme CPU usage

dxvkclosed
doitsujin/dxvk#3993 · opened 2024-05-09 by 43615 · updated 2024-05-09 · 6 comments · github
443615 2024-05-09 github

Preface: I don't know for sure whether this is caused by DXVK. If I'm wrong, please calmly direct me to correct support information.

Software information

World of Tanks 1.24.1.4526 and some earlier patches (since "Final Frontier" event, May 02). Settings have little effect, read below.

System information

  • GPU: AMD Radeon RX 7900 XTX (0x1002:0x744C:0xC8)
  • Driver: mesa 1:24.0.6, amdvlk 2024.Q1.3
  • Wine version: 9.8
  • DXVK version: 2.3.1

Apitrace file(s)

Hosted on my home server here, please don't abuse.

Log files

wot.log

Issue details

  • As far as I can tell, this issue started with the new game version mentioned above. It has worked perfectly before.
  • When the game is in view and rendering 3D graphics, all 32 CPU cores are at full utilization. This results in extremely low and unstable FPS.
  • The load is only created when the game is not minimized.
  • Graphics settings have some effect, but nowhere near sufficient. My normal settings get around 10 FPS, minimum settings around 20-30.
  • Instead, the load appears to be tied to the amount of visible objects. When looking at a light scene (such as zooming in on the sky), the load and FPS return to normal.
  • Here are some screenshots of DXVK_HUD=full:
    • With my normal settings:
      normal
    • With minimum settings:
      min
  • According to the HUD, the issue is not shader compilation. The "Compiling shaders..." message at the bottom left only appears briefly on startup, before any scene is rendered.
  • The process gradually creates exactly 500 new threads when graphics are rendered, which disappear if the game is minimized. To me, this suggests some sanity check or protection mechanism somewhere.
Ddoitsujin maintainer 2024-05-09 github

Does this work better with wined3d? The game spawning 500 threads really doesn't sound like anything dxvk related so I'd expect it to be just as bad.

443615 2024-05-09 github

I've set the d3d* and dxgi overrides to "builtin", is that the correct way to try that? Getting about the same performance, except the launcher doesn't render. The thread spawning behavior is the same.

Does that mean it's a deeper issue with Wine? Where could I get help with that?

Mmbriar 2024-05-09 github

I've set the d3d* and dxgi overrides to "builtin", is that the correct way to try that?

Yes, but you can also just double check by enabling the DXVK HUD, which obviously shouldn't show up with wined3d.

Where could I get help with that?

wine bug tracker, but i assume you're already using esync or fsync? Without those, poor multithreaded performance is pretty much expected.

443615 2024-05-09 github

double check by enabling the DXVK HUD

Yeah, just thought of that myself. I did it right then.

esync or fsync

I've never messed with those. Setting the WINE[EF]SYNC variables doesn't change anything.

Mmbriar 2024-05-09 github

Upstream wine doesn't have fsync or esync, so setting the env vars won't do anything on a wine upstream build. You need wine-staging for esync or a proton-based wine build for fsync.

443615 2024-05-09 github

I've already tried the Steam version through Proton Experimental as well as standalone Proton, which should come with fsync enabled. Same issue there.

Also just tried wine-staging 9.8 with esync enabled, no difference either.

Logically speaking, these shouldn't matter since the game worked fine previously.

Closing and moving to Wine places for help.

Proton versions

Launch options