vkd3d-proton icon indicating copy to clipboard operation
vkd3d-proton copied to clipboard

World of Warcraft Classic TBC DX12

Open sfjuocekr opened this issue 2 years ago • 12 comments

Since the last patch I have been suffering freezes in WoW when using DX12 mode:

[322271.126956] NVRM: GPU at PCI:0000:08:00: GPU-aa03a635-c459-0d82-a2bc-27deb755feeb
[322271.126960] NVRM: Xid (PCI:0000:08:00): 13, pid=168824, Graphics Exception on GPC 0: WIDTH CT Violation. Coordinates: (0x478, 0x15e)
[322271.126971] NVRM: Xid (PCI:0000:08:00): 13, pid=168824, Graphics Exception: ESR 0x500420=0x80000010 0x500434=0x15e0478 0x500438=0x5001100 0x50043c=0x0
[322271.126985] NVRM: Xid (PCI:0000:08:00): 13, pid=168824, Graphics Exception on GPC 1: WIDTH CT Violation. Coordinates: (0x4c0, 0x15e)
[322271.126994] NVRM: Xid (PCI:0000:08:00): 13, pid=168824, Graphics Exception: ESR 0x508420=0x80000010 0x508434=0x15e04c0 0x508438=0x5001100 0x50843c=0x0
[322271.127006] NVRM: Xid (PCI:0000:08:00): 13, pid=168824, Graphics Exception on GPC 2: WIDTH CT Violation. Coordinates: (0x475, 0x15e)
[322271.127015] NVRM: Xid (PCI:0000:08:00): 13, pid=168824, Graphics Exception: ESR 0x510420=0x80000010 0x510434=0x15e0475 0x510438=0x5001100 0x51043c=0x0
[322271.127087] NVRM: Xid (PCI:0000:08:00): 13, pid=184626, Graphics Exception: ChID 0066, Class 0000c797, Offset 00000000, Data 00000000

I have tried different versions of VKD3D, different nvidia drivers and finally just disabled DX12 for this title. So, I'm rather certain this is an issue with the game itself and not a change that was recently introduced.

Sadly, I now miss the fancy DXR shadows :(

To trigger the crash, I just join AV and it freezes nine out of ten times right when you join. Just running about usually works, but the game then has these massive stutters for example in and around cities.

sfjuocekr avatar Jan 26 '22 01:01 sfjuocekr

When I try this using the Vulkan Beta driver, I get the following:

03ec:info:vkd3d_config_flags_init_once: VKD3D_CONFIG='dxr11'.
03ec:info:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.5.0.
03ec:info:vkd3d_instance_init: vkd3d-proton - build: c29d005ef4eddf3.
03ec:warn:vkd3d_remove_extension: Removing VK_NVX_binary_import extension from the array.
03ec:warn:vkd3d_remove_extension: Removing VK_NVX_image_view_handle extension from the array.
03ec:warn:vkd3d_create_vk_device: Disabled extensions that can cause Vulkan device creation to fail, retrying.
03ec:err:vkd3d_create_vk_device: Failed to create Vulkan device, vr -3.
03ec:fixme:hresult_from_vk_result: Unhandled VkResult -3.

DXVK works no problem.

sfjuocekr avatar Feb 25 '22 15:02 sfjuocekr

I have found this to be true for other DX12 titles as well, for example if I play SotTR in DX12 mode I can play it for quite some time until it freezes.

sfjuocekr avatar Feb 25 '22 15:02 sfjuocekr

vkd3d.txt

This is the vkd3d log when the WIDTH CT violation happens.

edit: ramblings of a fool.

sfjuocekr avatar Feb 26 '22 00:02 sfjuocekr

I have found the specific issue that causes it, at first I assumed it was "random" based on graphics load. But I have since then ran WoW in a testing environment, changing one setting at a time... now it seems that the marks you can put on targets seems to be the root of the problem but only if MSAA is enabled. I only assumed it was random because I was testing in a battleground, where sometimes marks are not used at all... I now also understand why the lift in SSC seemed to cause it... as it went up, the game tried to show the markings on the first trash pack. TLDR, there is a reason for everything.

I have basically tested everything, drivers from 4xx to 5xx up to the latest and greatest vulkan beta driver some guy from nvidia had me install to test. Sadly, this only fixed Xid 32 happening with vulkan if flipping is enabled. Xid 13 seems to happen only with DX12 games where MSAA is enabled, I can get SotTR to freeze with Xid 13 as well when you transition from the first temple and go down the water slide.

I just restored my machine back to what it was two weeks ago to see if MSAA causes the freeze and it did.

Here is a video showing the problem in World of Warcraft: https://youtu.be/3jbpPFlx53A

sfjuocekr avatar Mar 10 '22 02:03 sfjuocekr

https://youtu.be/FPCDyq5ua4M

It seems to only happen when a render scale below 100% is used if MSAA is enabled and a mark is set to show.

sfjuocekr avatar Mar 30 '22 00:03 sfjuocekr

vkd3d.log

[ 1427.231142] NVRM: GPU at PCI:0000:08:00: GPU-aa03a635-c459-0d82-a2bc-27deb755feeb
[ 1427.231147] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 0: WIDTH CT Violation. Coordinates: (0x3f0, 0xa3)
[ 1427.231159] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x500420=0x80000010 0x500434=0xa303f0 0x500438=0x4001100 0x50043c=0x0
[ 1427.231175] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 1: WIDTH CT Violation. Coordinates: (0x3f8, 0xa3)
[ 1427.231186] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x508420=0x80000010 0x508434=0xa303f8 0x508438=0x4001100 0x50843c=0x0
[ 1427.231203] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 2: WIDTH CT Violation. Coordinates: (0x3ef, 0xa3)
[ 1427.231217] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x510420=0x80000010 0x510434=0xa303ef 0x510438=0x4001100 0x51043c=0x0
[ 1427.231413] NVRM: Xid (PCI:0000:08:00): 13, pid=183695, name=WoWClassic.exe, Graphics Exception: ChID 005b, Class 0000c797, Offset 00000000, Data 00000000

Added a log.

This is only reproducible with vkd3d, dxvk seems to work as intended.

Could this be traced back to MultisampleEnable being ignored?

sfjuocekr avatar Jul 16 '22 14:07 sfjuocekr

Experienced crashing in Retail as well, but reporting the issue here. Steps to reproduce, change render scale to anything below 100%, queue for a dungeon. During dungeon the game will at some point crash.

Seems independent of any dxr functionality as I tested with dxr11 on and off (with ray traced shadows on and disabled obviously).

Running under DX12 without changing the render scale ingame and keeping it 100% does not crash. Issue is specific to the scaling.

shadywack avatar Sep 03 '22 20:09 shadywack

Experienced crashing in Retail as well, but reporting the issue here. Steps to reproduce, change render scale to anything below 100%, queue for a dungeon. During dungeon the game will at some point crash.

Seems independent of any dxr functionality as I tested with dxr11 on and off (with ray traced shadows on and disabled obviously).

Running under DX12 without changing the render scale ingame and keeping it 100% does not crash. Issue is specific to the scaling.

The crash is most likely because someone put up a mark, you can test this yourself by just marking any NPC nearby with scaling set to anything but 100% and MSAA enabled.

sfjuocekr avatar Sep 15 '22 21:09 sfjuocekr

That doesn't seem to be it. MSAA set to Color 2x/ Depth 2x, scaling set to 83%, and marks don't cause the same crash.

shadywack avatar Sep 15 '22 21:09 shadywack

Fixed a bug where Marvel's Spider-Man Remastered would sometimes crash with Xid 13 errors on Turing and later.

I will test if this also applies to WoW!

sfjuocekr avatar Oct 16 '22 01:10 sfjuocekr

Nope, still happens with WoW raid marks with resolution scaling and MSAA enabled!

[ 2021.570566] NVRM: GPU at PCI:0000:08:00: GPU-54e8e643-074f-a010-9bd3-353eb9bd55fe
[ 2021.570572] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 0: WIDTH CT Violation. Coordinates: (0x3e0, 0x212)
[ 2021.570589] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x500420=0x80000010 0x500434=0x21203e0 0x500438=0x4001100 0x50043c=0x0
[ 2021.570610] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 1: WIDTH CT Violation. Coordinates: (0x3e8, 0x212)
[ 2021.570625] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x508420=0x80000010 0x508434=0x21203e8 0x508438=0x4001100 0x50843c=0x0
[ 2021.570649] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 2: WIDTH CT Violation. Coordinates: (0x3f0, 0x213)
[ 2021.570666] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x510420=0x80000010 0x510434=0x21303f0 0x510438=0x4001100 0x51043c=0x0
[ 2021.570688] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 3: WIDTH CT Violation. Coordinates: (0x3f8, 0x217)
[ 2021.570706] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x518420=0x80000010 0x518434=0x21703f8 0x518438=0x4001100 0x51843c=0x0
[ 2021.570731] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 4: WIDTH CT Violation. Coordinates: (0x3d6, 0x217)
[ 2021.570751] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x520420=0x80000010 0x520434=0x21703d6 0x520438=0x4001100 0x52043c=0x0
[ 2021.570777] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 5: WIDTH CT Violation. Coordinates: (0x3dd, 0x213)
[ 2021.570801] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x528420=0x80000010 0x528434=0x21303dd 0x528438=0x4001100 0x52843c=0x0
[ 2021.571314] NVRM: Xid (PCI:0000:08:00): 13, pid=345286, name=WoWClassic.exe, Graphics Exception: ChID 0063, Class 0000c797, Offset 00000000, Data 00000000

sfjuocekr avatar Oct 16 '22 02:10 sfjuocekr

The Spider-Man fix was a per application workaround that's not enabled by default for other games. You can try to enable it with VKD3D_COFIG=force_initial_transition.

mbriar avatar Oct 16 '22 09:10 mbriar