protonscr

WoW 3.3.5 FPS drop in d3d9ex with gxTextureCacheSize above 2047

dxvkclosed game bug
doitsujin/dxvk#4403 · opened 2024-10-26 by Espionage724 · updated 2025-11-29 · 14 comments · github
1 matching comments, n / p to jump
EEspionage724 2024-10-26 github

Screenshot From 2024-10-26 03-43-00

With WoW 3.3.5 (2011/not Battle.net) in d3d9ex, if gxTextureCacheSize is set anywhere from 0 to 2047 FPS is fine, but 2048+ without Vsync drops my FPS immediately from 70+ to 30-ish.

I'm not aware of any benefits to setting that CVar higher so this isn't exactly an issue in my case, but I'm curious what might be going on?

  • Intel UHD 630 (Mesa 24.2.4)
  • World of Warcraft 3.3.5a.12340
  • Wine Staging 9.15 (old WoW64)
  • Fedora Workstation 41
  • DXVK 1.10.3
  • Wine Prefix: win32, WINEESYNC=1, winxp, winetricks renderer=vulkan, winetricks graphics=wayland
  • Happens 1 and 0 with WINE_LARGE_ADDRESS_AWARE
  • Doesn't affect old/default d3d9 and its textureCacheSize (no gx) setting (Console claims limited to 64 MB)

More gxTextureCacheSize testing (back-to-back in-game testing no client restart):

  • 0-2047 is fine
  • 2048-8192 is low 38 FPS
  • 8193 goes slightly higher at 40 FPS?
  • Random values above 8193 seem to overall have low sub-40 FPS (something about 20480)
  • This is all different depending on back-to-back testing in-game (even with gxRestart) vs client restarting and needs further testing (8192 is high-FPS fine on restart, but changing it and going back to 8192 same session is sub-40 again)
WWinterSnowfall 2024-10-26 github

I see you are still using dxvk 1.10.3. I honestly don't remember if what you're seeing was caused by bug in that version or not, and even if it were, there's nothing we can do about it at this point. All things considered, I'd recommend sticking to what works if you're in a situation where your hardware doesn't support using the latest dxvk version.

P.S.: Wait, UHD Graphics 630 is Gen 9.5 Intel Graphics, so it has Vulkan 1.3 support. Why are you on dxvk 1.10.3? :sweat_smile:

EEspionage724 2024-10-26 github

Why are you on dxvk 1.10.3? 😅

I tried a master archive a few days ago and WoW's main menu had badly-corrupted textures and froze; I figured 1.10.3 worked just as-well for old WoW and went with it :p

I was trying wayland/vulkan Wine stuff at the time and didn't bother trying a newer DXVK yet, but just happened to notice this. I plan on redoing my prefix in the near future and will try this again with a newer DXVK likely.

BBlisto91 2024-10-26 github

Hi there. There are some things i would like clarified.

  1. You mention d3d9Ex but from for screenshot i can see that the game uses regular d3d9 otherwise the hud would say it?
  2. Which WoW client/server are you using? 3.3.5 doesn't personally tell me anything. I have a turtle WoW account but i gather their client is built on 1.12.
  3. With the talk of gxTextureCacheSize i assume you are referring to this? https://wowwiki-archive.fandom.com/wiki/CVar_gxTextureCacheSize

Note that we do not support old dxvk versions. Do you know when the main menu corruptions start appearing? Is it only on master or does 2.4.1 also have them? I would like to get this looked at first so the newest dxvk can be tested with.
I am not reproducing the corruptions in Turtle WoW with my RTX 4080 at least.

Ddoitsujin maintainer 2024-10-26 github

If the game expands that 2048 to bytes then it's likely that it just gets interpreted as a negative value. Either way, that option is clearly out of scope of anything that DXVK is doing.

KK0bin maintainer 2024-10-31 github

Can you make an apitrace of the corrupted menu? So I can look into it.

EEspionage724 2024-11-07 github

You mention d3d9Ex but from for screenshot i can see that the game uses regular d3d9 otherwise the hud would say it?

I didn't try anything else with Ex, but DXVK 2.4.1 even showed D3D9 with d3d9ex on WoW

Which WoW client/server are you using? 3.3.5 doesn't personally tell me anything. I have a turtle WoW account but i gather their client is built on 1.12.

It was the last WotLK client I think June 2010 or so (back with CDs). It was specifically from wowdl.net World-of-Warcraft-3.3.5a.12340-enUS.zip but that website closed recently. Iirc Warmane had a (relatively) unmodified 3.3.5 WotLK client that worked.

But it was the original/first WotLK version before the Battle.net newer-engine (Bfa?) "Classic" modern editions; not 64-bit, and no DX11/12 renderers. I used that client from the archive as-is and believe 3.3.5a.12340-enUS is the real client version.

With the talk of gxTextureCacheSize i assume you are referring to this? https://wowwiki-archive.fandom.com/wiki/CVar_gxTextureCacheSize

Yeah! This older link implies it was added to improve something on Windows XP: https://web.archive.org/web/20100212202408/http://forums.worldofwarcraft.com/thread.html?topicId=21723843232&sid=1

Note that we do not support old dxvk versions. Do you know when the main menu corruptions start appearing? Is it only on master or does 2.4.1 also have them? I would like to get this looked at first so the newest dxvk can be tested with. I am not reproducing the corruptions in Turtle WoW with my RTX 4080 at least.

I didn't get the exact commit, but the last master about a week ago had the same corruption/freeze, but 2.4.1 worked fine (no corruption/got in-game; still had the texture size oddity but was a little different behavior; didn't take notes but might come back to this later)

Mmirh 2024-11-07 github

The apitrace would still be appreciated. Aside of that, if the last stable release is fine you could try to check which PR broke it
https://github.com/doitsujin/dxvk/actions/workflows/artifacts.yml?page=27&query=created%3A>2024-09-24

KK0bin maintainer 2024-11-07 github

I didn't try anything else with Ex, but DXVK 2.4.1 even showed D3D9 with d3d9ex on WoW

If DXVK shows D3D9 instead of D3D9Ex, the game is not using D3D9Ex.

Yeah! This older link implies it was added to improve something on Windows XP

That's strange considering that D3D9Ex was only added with Windows Vista so D3D9 games can make use of the compositor improvements of that OS. Windows XP does not support it.

But like others have said, I'd still appreciate an apitrace and a bisect.

EEspionage724 2025-01-01 github

Do you know when the main menu corruptions start appearing? Is it only on master or does 2.4.1 also have them? I would like to get this looked at first so the newest dxvk can be tested with.

I tried 2.5.2 a few mins ago (Fedora 41, Intel UHD 630, WineHQ staging/new Wow64) and DXVK_HUD=full causes a broken main menu/textures and freeze. Removing the HUD env has WoW starting and rendering fine. It's likely similar to what I ran into with the previous report but I didn't think the HUD was related.

BBlisto91 2025-01-01 github

Yes this is known and fixed on current master

BBlisto91 2025-05-29 github

@Espionage724 Did the performance drop with gxTextureCacheSize set to 2048 only happen with dxvk?

EEspionage724 2025-06-03 github

@Espionage724 Did the performance drop with gxTextureCacheSize set to 2048 only happen with dxvk?

I didn't try it without DXVK, but can't quite remember specifics (I'm on Windows atm)

DDealsBeam 2025-06-06 github

Yes this is known and fixed on current master

So this is fixed in the latest DXVK release?

BBlisto91 2025-06-06 github

Yes

Launch options