protonscr

[Warcraft III] Getting 7 (terribly low) FPS since the new W3 2.0 update

dxvkclosed
doitsujin/dxvk#4463 · opened 2024-11-16 by sim590 · updated 2024-11-18 · 21 comments · github
1 matching comments, n / p to jump
Ssim590 2024-11-16 github

The title.

Also, I want to point out that I did play that game recently (couple of weeks ago) and it was fine. Not sure if it's dxvk related. I'm just starting here...

Software information

Warcraft 3. Settings were at lowest preset.

System information

  • GPU: AMD Radeon RX 5700XT
  • Driver: mesa 24.2.7
  • Wine version: wine-ge-8-26-x86_64
  • DXVK version: v2.4.1 (I also tried v2.5)

Apitrace file(s)

https://mega.nz/file/6uInDZ6J#_r420DwzC2T8AX-6-QhRn-9t8N42zLj8NaGuQwlvpzs

When I tried to disable DXVK for making the API trace, it crashed, so I left it.

Log files

wine.log

Ssim590 2024-11-16 github

I have noticed the two following threads on Blizzard's forum:

https://eu.forums.blizzard.com/en/warcraft3/t/fps-drops-back/1035/2
https://us.forums.blizzard.com/en/warcraft3/t/the-frame-rate-still-has-a-significant-drop/33206

Both are speaking of FPS drop since 2.0, it seems. The timing seems consistant. Although, they are talking about getting from 240 FPS to 100 or 60 FPS while I'm getting at 7-12 FPS. Not sure if the difference is only due to hardware ?

So, it could be possible that the issue is from on blizzard's side, but I feel like what i'm experiencing is way more terrible than what these reports are talking about.

WWinterSnowfall 2024-11-16 github

Also, I want to point out that I did play that game recently (couple of weeks ago) and it was fine. Not sure if it's dxvk related. I'm just starting here...

Terrible or not, it definitely sounds like a game induced issue then, which is out of our scope to address. Since this is about a game that is under active development, I'd recommend waiting until the problem is addressed and the game performs as expected on native/Windows. Should you still get iffy performance with dxvk in the game at that point, do let us know.

Ssim590 2024-11-16 github

Performance on Windows is acceptable though while it's not on Linux whether there's a bug or not. Shouldn't linux be able to offer a performance close to what is reported by others on Windows?

The lowest reported in the forums was 60FPS and I'm here with 7FPS with a more than capable graphic card. I just think that even if there is a bug in the game, it still seems to me there is performance to gain on the linux side. I'm wondering if that linux gap sits in DXVK or not.

You can look at this streamer having 100FPS ingame:

https://www.youtube.com/@FollowGrubby/videos

Why wouldn't Linux/DXVK give something closer ? Again, my graphic card is more than capable.

I do have a Windows partition. I might just try to make room on it and try to install it on Windows to compare and I'll report back in order to eliminate the hardware difference hypothesis.

Mmbriar 2024-11-16 github

What is VRAM usage looking like? Post a screenshot with DXVK_HUD=full

Ssim590 2024-11-16 github

Something is wrong:

image

GPU is 1% and CPU is 8% usage....

VRAM:

image

Ssim590 2024-11-16 github

DXVK_HUD:

image

BBlisto91 2024-11-16 github

How does it behave when ran without fsync and esync?

Ssim590 2024-11-17 github

How does it behave when ran without fsync and esync?

This is behaving the same.

BBlisto91 2024-11-17 github

@sim590 Do you also have a iGPU in your system?

Ssim590 2024-11-17 github

@sim590 Do you also have a iGPU in your system?

Nope.

BBlisto91 2024-11-17 github

Does running with DXVK_CONFIG="d3d11.cachedDynamicResources = a" help?
If not then try running it with dxvk 2.3.1 along with DXVK_CONFIG="dxgi.useMonitorFallback = True"

Ssim590 2024-11-17 github

@Blisto91 NICE.

Using

DXVK_CONFIG="d3d11.cachedDynamicResources = a"

made all the difference!

image

And 101 FPS was a frame drop due to my screen capture app making the app in background. I actually get 144 which is my cap limit. I imagine, I get even better FPS!

Ssim590 2024-11-17 github

Can you explain what's going on? Is it a common option that I should have expected to be on, but is not for some reason? Is it bad config, or a particular case? Do you expect this to be enabled in my other games where I get OK performance?

Mmbriar 2024-11-17 github

The comment in the example dxvk.conf explains it already quite well https://github.com/doitsujin/dxvk/blob/master/dxvk.conf#L279

BBlisto91 2024-11-17 github

I am not reproducing any uplift myself so we are probably not going to make it a builtin config for this game i imagine.
Besides some rare few games where it can give a uplift to everyone it can also sometimes help specifically on systems that have issues with rebar performance. I imagine the latter is going on here.

Ssim590 2024-11-17 github

I have enabled resizable bar as per the explanations here:

https://wiki.archlinux.org/title/Improving_performance#Enabling_PCI_resizable_BAR

So, you suspect that this is what is causing my issues?

Mmbriar 2024-11-17 github

Try to disable ReBAR and also don't set the cachedDynamicResources and see how it performs then.

BBlisto91 2024-11-17 github

Bad rebar performance is my best guess yes.

Ssim590 2024-11-17 github

So I tried disabling both the option and resizable bar and it did fix the major issue. Although, I got around 100FPS this way instead of the 144FPS with resizable bar AND the option you suggested. Or could it be a bad reading in the latter case? I'm wondering because the FPS was steady at 144FPS never changing. Even if I did remove the FPS cap to 144, it didn't move up or down. So, is the performance actually the same, but just badly read when resizable bar and d3d11.cachedDynamicResources = a is configured?

Also, does d3d11.cachedDynamicResources = a actually makes it like resizable bar is disabled? My question is if it's gonna prevent resizable bar optimizations to be enabled? I'm asking because according to the arch wiki, there are these "AMD Smart Access Memory" optimizations that are enabled when resizable bar is enabled. If that doesn't prevent these optimizations, I would just use the DXVK config alongside the resizable bar setting to try to get the best performance, hopefully...

Ddoitsujin maintainer 2024-11-17 github

Also, does d3d11.cachedDynamicResources = a actually makes it like resizable bar is disabled? My question is if it's gonna prevent resizable bar optimizations to be enabled?

Setting that option prevents DXVK from using BAR memory, but the Vulkan driver may still use it internally for some things.

DXVK also uses BAR memory if ReBAR is disabled, it's just limited to (less than) 256MB in that case.

Ssim590 2024-11-18 github

Alright. Since the mystery is resolved, I'll close this. I understand that the best might be to stick with resizable bar and pay attention to that parameter if issues happen. Thanks for support!