protonscr

World of Warcraft: Flickering textures

dxvkclosed bug
doitsujin/dxvk#1086 · opened 2019-06-06 by kleest · updated 2019-08-03 · 8 comments · github
1 matching comments, n / p to jump
Kkleest 2019-06-06 github

Starting with commit f501ebce973d26d1d4e86911526ec73690f6208e (bisected), some textures begin to flicker. I did not manage to produce an apitrace, and the validation layers log does not contain any useful difference between a good and bad commit. If it helps, I can record a video.

Software information

  • World of Warcraft 8.1.5 (29981)
  • DirectX 11 API
  • CMAA

System information

  • GPU: AMD Radeon R9 390
  • Driver: Mesa 19.0.5 (RADV)
  • Wine version: wine-staging 4.8
  • DXVK version: 3de87b41

Apitrace file(s)

--

Log files

Screenshots

Look at fence (bottom-left) and the lamps.
WoWScrnShot_060619_005246
WoWScrnShot_060619_005247

Ddoitsujin maintainer 2019-06-06 github

Thanks for bisecting this, unfortunately I don't quite understand why this particular commit breaks this and therefore I also don't know how to fix this without reverting the performance optimization. Without an apitrace I also cannot tell what the game is doing.

Any idea if this game actually uses VSSetConstantBuffers1 and friends?

Ddoitsujin maintainer 2019-06-06 github

Can you test whether this patch fixes the problem? It effectively reverts the problematic commit.
wow.patch.txt

Kkleest 2019-06-06 github

Yes, the patch fixes the problem.

Kkleest 2019-06-06 github

I managed to capture an API trace on Windows. However, I am unable to replay the trace when using Wine regardless of dxvk. It crashes with the following log:

8 @0 IDXGIAdapter3::QueryInterface(this = 0x2b10c7ba140, riid = IID_IDXGIAdapterInternal2, ppvObj = &0x2b10c7ba1c8) = S_OK
8: warning: unknown object 0x2b10c7ba1c8
8: warning: failed with 0x80004002 (E_NOINTERFACE): 
002c:fixme:dxgi:DXGID3D10CreateDevice Ignoring flags 0x100.
20 @0 IDXGIAdapter3::EnumOutputs(this = 0x2b10c7ba140, Output = 1, ppOutput = &0x2b17e2c9e90) = S_OK
20: warning: failed with 0x887a0002 (DXGI_ERROR_NOT_FOUND): The item requested was not found. For GetPrivateData calls, this means that the specified GUID had not been previously associated with the object.
22: debug: apitrace: warning: caught exception 0xc0000005
apitrace: warning: caught exception 0xc0000005
22: error: caught an unhandled exception

Another trace out of this bugtracker (Stalker Clear Sky) is working fine.

I can upload the apitrace for you. However, because I am not able to replay the trace I cannot guarantee that the trace contains the flickering issue.

Ddoitsujin maintainer 2019-06-07 github

Thanks, that should be at least somewhat useful.

Ddoitsujin maintainer 2019-08-01 github

@kleest can you test if this branch works correctly with World of Warcraft? It's basically a reimplementation of the optimization that was causing this issue, but with a fix applied.

Kkleest 2019-08-03 github

That branch works correctly. Note: As I don't have an active subscription, I tested it in an area accessible through starter edition, where f501ebce973d26d1d4e86911526ec73690f6208e caused the issues as well.

Thank you for your work!

Error codes