protonscr

WoW Vanilla: Character and sometimes monster disappearing when turning camera or moving in caves and tight spaces

dxvkclosed game bugd3d9
doitsujin/dxvk#3129 · opened 2022-12-10 by Fredolx · updated 2022-12-12 · 11 comments · github
FFredolx 2022-12-10 github

Software information

WoW Vanilla (original client, not Classic). Fedora 37 on Gnome.

System information

  • GPU: AMD Radeon RX 6700 XT
  • Driver: amdgpu
  • Wine version: Soda 7.0-7 on Bottles.
  • DXVK version: 2.0

Apitrace file(s)

I tried making an apitrace but the game was barely responsive (1-2 fps) on WineD3D.

For instructions on how to use apitrace, see: https://github.com/doitsujin/dxvk/wiki/Using-Apitrace

Log files

Here's a video showcasing the bug. I was able to reproduce it using the information provided above, but I'd like to add that I've been having this bug for 2 years using many different DXVK and Wine versions and different distros.

https://user-images.githubusercontent.com/38048855/206826292-ba9f3b00-683e-49e0-921a-e08ba78e69d2.mp4

My character becomes invisible when turning the camera and moving inside caves or tight areas. Sometimes, monsters too. It happens frequently enough to be problematic in some areas.

Mmbriar 2022-12-10 github

You can make an apitrace with DXVK too, which should run faster. Just set d3d9 to native and copy the apitrace d3d9.dll next to the exe (with DXVK installed to the prefix of course).

BBlisto91 2022-12-10 github

Yes a apitrace with dxvk should be fine

KK0bin maintainer 2022-12-10 github

Are you sure that this is a DXVK bug and not a game bug?

We really do need that apitrace to look into this. So please make one, even if it's very slow.

FFredolx 2022-12-10 github

Are you sure that this is a DXVK bug and not a game bug?

We really do need that apitrace to look into this. So please make one, even if it's very slow.

I will be sending the apitrace soon, sorry I can't right now. I played with the same exact client multiple times on Windows and never noticed it, but to be absolutely sure it is a DXVK bug, I will also re-try to reproduce it on Windows. I will post a reply with all this information and the apitrace during the day.

Thank you!

FFredolx 2022-12-10 github

You can make an apitrace with DXVK too, which should run faster. Just set d3d9 to native and copy the apitrace d3d9.dll next to the exe (with DXVK installed to the prefix of course).

Even with DXVK + APITrace, the game is still running too slowly to do tests (1-2 FPS). I have the apitrace d3d9.dll in the same folder as the .exe. I have tried setting d3d9 to "native" and "native,builtin" in the wine control panel. I downloaded the apitrace from the link in the wiki, and extracted the d3d9.dll from /lib/wrappers/d3d9.dll next to my game .exe. I confirmed it is indeed using DXVK by having the env variable DXVK_HUD=devinfo, which did show up in-game. I also tried installing DXVK with winetricks into the wine prefix, but still having 1-2 fps. I attempted this both with Lutris and Bottles.

I also tried running the game on Windows to try to reproduce the bug, I could not reproduce it. I will try fiddling with the graphical settings to see if anything changes

BBlisto91 2022-12-10 github

Try making a file called dxvk.conf where the dxvk log file appeared and insert d3d9.apitraceMode = True. See if that helps

FFredolx 2022-12-11 github

Try making a file called dxvk.conf where the dxvk log file appeared and insert d3d9.apitraceMode = True. See if that helps

@Blisto91 it worked. For some reason, every time I tried it generated 3 trace files instead of 1. I will upload all 3, but only one of them is big. It will take some time. Do you guys typically use a specific hosting site for those? For the moment, I will be uploading it to google drive

KK0bin maintainer 2022-12-11 github

Google drive is fine.

FFredolx 2022-12-11 github

I did a lot more digging and I discovered I can only reproduce the bug on high framerate which is typically above 250 fps. Tight spaces such as caves have way more FPS because there's not much to render.

Using DXVK_FRAME_RATE, I did the following tests:
DXVK_FRAME_RATE = 30: Impossible to reproduce
DXVK_FRAME_RATE = 144: Impossible to reproduce
DXVK_FRAME_RATE = 200: Impossible to reproduce
DXVK_FRAME_RATE = 220: Impossible to reproduce
DXVK_FRAME_RATE = 239: Impossible to reproduce
DXVK_FRAME_RATE = 245: Impossible to reproduce
DXVK_FRAME_RATE = 250: Possible, but hard to reproduce
DXVK_FRAME_RATE = 300: Easily reproducible.
DXVK_FRAME_RATE = 600: Happens very frequently

We can see the problem starts to appear >=250 fps, which is coincidentally 10 fps above my monitor's refresh rate (240), I doubt it is refresh rate related, but I could try with another monitor. I tried 245 to see if it is indeed refresh rate related, but it was not reproducible. The higher the FPS, the more easy it is to have this bug, anywhere in the game world, on your character, other characters/NPCs/Enemies or dead bodies.

Without a cap, I can easily hit 600-750 fps in caves or anything small since it is quite an old game.

I could not reproduce this bug on Windows, but we must note it might be because it's impossible to reach such high amount of FPS on Windows. DXVK allows this game to run way faster. The maximum FPS I can generally get on Windows is 150, with a lot of variance (60-150 super unstable). It could be a DXVK bug, but really can't confirm since the DX9 Drivers on Windows are too bad to even reach such high FPS. I tried to use DXVK on Windows, but the performance is way inferior to Linux + DXVK.

KK0bin maintainer 2022-12-12 github

This looks like a game bug to me. It just doesn't draw the character and there's no indication that it bases that decision upon something DXVK does.

The renderer is very simplistic and there's simply not a lot that could go wrong with it at this point.

Launch options

DLLs