vkd3d-proton
vkd3d-proton copied to clipboard
World of Warcraft Classic TBC DX12
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.
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.
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.
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
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.
[ 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?
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.
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.
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.
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!
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
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
.