protonscr

World of Warcraft 3.3.5a gpu hang

dxvkclosed intel anv
doitsujin/dxvk#5735 · opened 2026-06-26 by understyx · updated 2026-07-30 · 40 comments · github
Uunderstyx 2026-06-26 github

Please describe your issue as accurately as possible. Include screenshots or videos when relevant.

Figured I'd try to reproduce #5734 but apparently 3.0 causes my GPU to reset.

GPU hangs with DXVK 3.0 (Through proton experimental) when loading into the game world. Works fine with 2.7.1 (Through proton 11.0 beta)

Software information

Name of the game, settings used etc. Include any mods or add-ons if applicable.
World of Warcraft: Wrath of the Lich King 3.3.5a

System information

  • GPU: Intel ARC A750
  • Driver: ANV Mesa 26.0.6
  • Wine version: 1782483940 experimental-bleeding-edge-11.0-385919-20260626-p7230a5-w7e906e-d0b49a3-v6ef5e1
  • DXVK version: v3.0-3-g0b49a39896f2589

Apitrace file(s)

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

Log files

dmesg:
[27936.710923] i915 0000:0d:00.0: [drm] GPU HANG: ecode 12:1:84dfd7f7, in Wow.exe [55049]
[27936.710926] i915 0000:0d:00.0: [drm] GPU error state saved to /sys/class/drm/card1/error
[27936.710930] i915 0000:0d:00.0: [drm] Wow.exe[55049] context reset due to GPU hang
[28059.105440] i915 0000:0d:00.0: [drm] GPU HANG: ecode 12:1:84dfd7f7, in Wow.exe [55902]
[28059.105476] i915 0000:0d:00.0: [drm] Wow.exe[55902] context reset due to GPU hang
[28217.683735] i915 0000:0d:00.0: [drm] GPU HANG: ecode 12:1:84dfd7f7, in Wow.exe [56904]
[28217.683758] i915 0000:0d:00.0: [drm] Wow.exe[56904] context reset due to GPU hang
[28618.707187] i915 0000:0d:00.0: [drm] GPU HANG: ecode 12:1:84dfd7f7, in Wow.exe [58513]
[28618.707214] i915 0000:0d:00.0: [drm] Wow.exe[58513] context reset due to GPU hang
[28949.727723] i915 0000:0d:00.0: [drm] GPU HANG: ecode 12:1:84dfd7f7, in Wow.exe [60413]
[28949.727741] i915 0000:0d:00.0: [drm] Wow.exe[60413] context reset due to GPU hang
[28997.463774] i915 0000:0d:00.0: [drm] GPU HANG: ecode 12:1:84dfd7f7, in Wow.exe [60784]
[28997.463795] i915 0000:0d:00.0: [drm] Wow.exe[60784] context reset due to GPU hang
[29133.673175] i915 0000:0d:00.0: [drm] GPU HANG: ecode 12:1:85dff5fb, in Wow.exe [61401]
[29133.673196] i915 0000:0d:00.0: [drm] Wow.exe[61401] context reset due to GPU hang

Uunderstyx 2026-06-26 github

ah proton log didnt get added for some reason, but its in the drive link too
edit: i realize my mesa version is bit old. i'll update and see if it still reproduces

updated mesa to latest available in arch repos. GPU still crashes.
[ 173.395274] i915 0000:0d:00.0: [drm] GPU HANG: ecode 12:1:84dfd7f7
[ 173.395278] i915 0000:0d:00.0: [drm] GPU error state saved to /sys/class/drm/card1/error

Ddoitsujin maintainer 2026-06-26 github

Does the hang reproduce for you when you replay the trace?

Replays clean here without validation errors (edit: at least without any unexpected ones, D3D9 forces us into doing some janky stuff), so might be best to report that to Mesa folks.

Maybe also try throwing DXVK_CONFIG="dxvk.enableDescriptorBuffer=True" at it, although that shouldn't really change anything.

Ddoitsujin maintainer 2026-06-26 github

Actually, another thing, does Alchemist not use the Xe kernel driver by default? I'm really not up to date with Intel stuff, but given that we use transfer queues much more in 3.0 I wouldn't be surprised if there were some i915 issues in that area.

All pre-release Intel testing was done on Battlemage (by @Blisto91) FWIW, don't think there were any hangs.

Ddjdeath 2026-06-26 github

You can run with export ANV_QUEUE_OVERRIDE=c=0,b=0 to rule out transfer/compute queue issues.

Uunderstyx 2026-06-26 github

DXVK_CONFIG="dxvk.enableDescriptorBuffer=True" worked around hang in wow

apitrace caused gpu hang too. (assuming i did it correctly)

alchemist cards use i915 by default, battlemage+ uses xe by default

Ddoitsujin maintainer 2026-06-26 github

DXVK_CONFIG="dxvk.enableDescriptorBuffer=True" worked around hang in wow

Okay, that is... weird.

Only thing I can think of is that with fixed-function and Shader Model 1 pipelines, we do conditionally access textures as different types (2D/3D/Cube) because that's all figured out at runtime in D3D9, and we pass the actual texture type to the shader via a spec constant or Inline UBO depending on how the pipeline is compiled, but... we've been doing that ever since D3D9 support was added, it's not a new thing.

Uunderstyx 2026-06-26 github

You can run with export ANV_QUEUE_OVERRIDE=c=0,b=0 to rule out transfer/compute queue issues.

Still crashing.

Uunderstyx 2026-06-26 github

Sorry. Made a mistake. Proton 11 in steam is crashing too. Proton 10 is last good version of proton that's working on steam. xe and i915 behaved identically.

Uunderstyx 2026-06-26 github

if it helps:

4b0795359f470804a53fa3b7852e47bc9b72633d is the first bad commit
commit 4b0795359f470804a53fa3b7852e47bc9b72633d
Author: Robin Kertels [email protected]
Date: Thu Sep 11 00:45:40 2025 +0200

[d3d9] Enable FF ubershaders by default

:D

src/d3d9/d3d9_options.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

edit: i realize that wasnt prob useful so

f5b82033ede38adddb9c51c70410a26a3bdab648 is the first bad commit
commit f5b82033ede38adddb9c51c70410a26a3bdab648 (HEAD)
Author: Robin Kertels [email protected]
Date: Wed Sep 10 19:10:36 2025 +0200

[d3d9] Hook up fixed function vertex ubershader
Ddjdeath 2026-06-27 github

Same commit that broken a bunch of older Intel GPUs.

Ddoitsujin maintainer 2026-06-27 github

that is even weirder, FFVS doesn't do anything special... especially regarding binding models. It's just a bunch of UBOs.

Would be nice to understand what's going on exactly, but it also works everywhere else, so :shrug:

Ddjdeath 2026-06-27 github

The main difference between legacy & descriptor_buffer/descriptor_heap is the update-after-bind being required in the later extensions.

We'll try to promote UBOs to the HW fast path if possible. If there is a bug in dxvk in that area that could explain it.

One way to can test that hypothesis is running with export ANV_DEBUG=bindless, this will prevent any promotion on legacy descriptors. If it works wit that option, it means there is likely a bug somewhere in dxvk.

Ddoitsujin maintainer 2026-06-27 github

I think one thing that might be useful here is running with validation enabled, i.e. making sure that validation layers are installed and then running with DXVK_DEBUG=validation VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation (ideally while replaying the apitrace so you don't have to fuck around with 32-bit libraries).

There's nothing that sticks out on AMD/NV on the legacy path though so I really don't know why there would be breakage, but we might be missing some random device limit somewhere.

We'll try to promote UBOs to the HW fast path if possible. If there is a bug in dxvk in that area that could explain it.

Does this extend to PUSH_ADDRESS UBO mappings with heap? Only happens for programmable shaders in D3D9, but clearly that has been working fine too.

Uunderstyx 2026-06-27 github

One way to can test that hypothesis is running with export ANV_DEBUG=bindless, this will prevent any promotion on legacy descriptors. If it works wit that option, it means there is likely a bug somewhere in dxvk.

Same behaviour.
There's easier reproduce way to reproduce too: either have "Full Screen Glow Effect" turned on or "Hardware Cursor" off. Game settings can be modified without having to log into any account. Will cause gpu to hang nearly instantly.

Ddoitsujin maintainer 2026-06-27 github

Ok, only thing in there before the GPU hang is the usual spew about our aliased texture bindings, but that's pixel shader only and, as mentioned before, not new in the slightest...

Does the hang occur without MSAA? If not then there might be secondary command buffer memes at work somehow, buuuut that would also be incredibly weird.

Uunderstyx 2026-06-28 github

Yeah, hang occurs with MSAA off too.

I tried it on windows too with DXVK. There it only seems to crash the game intermittently. Like 1/10 loading into game world ends with a crash.

err: Exception on CS thread!
err: Failed to allocate descriptor set: VK_ERROR_OUT_OF_POOL_MEMORY_KHR

Linux trace played fine under windows. Made 2 traces under windows: https://drive.google.com/drive/folders/19mCkqWO0cPvkIwrZ2y4WMkZXrbyuoqn_ they crash under linux.

I suppose it's just some weird hardware bug?

Ddoitsujin maintainer 2026-06-28 github

err: Exception on CS thread!
err: Failed to allocate descriptor set: VK_ERROR_OUT_OF_POOL_MEMORY_KHR

Please check if https://github.com/doitsujin/dxvk/pull/5746 fixes that. This was already reported with #5742, but I'd really appreciate some quick feedback on whether the PR actually works around the issue because I have no way to test Intel on Windows.

EErwin-Iosef 2026-06-30 github

I faced the same problem in D3D9 games(TES IV Oblivion, Silent Hill 2) after upgrading to 3.0, with DXVK outputting infinite err: DxvkSubmissionQueue: Command submission failed: VK_ERROR_DEVICE_LOST when starting/loading the game.

Jun 30 15:40:48 Arch-PC kernel: i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
Jun 30 15:40:48 Arch-PC kernel: i915 0000:00:02.0: [drm] sh2pc.exe[10208] context reset due to GPU hang
Jun 30 15:40:48 Arch-PC kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:85dfffff, in sh2pc.exe [10208]
Jun 30 15:40:48 Arch-PC kernel: i915 0000:00:02.0: [drm] GPU error state saved to /sys/class/drm/card1/error

the earlier advice to run with DXVK_CONFIG="dxvk.enableDescriptorBuffer=True" worked!.

glxinfo -B
Device: Mesa Intel(R) HD Graphics 530 (SKL GT2) (0x1912)
Version: 26.1.3

Any useful logs I can post?

EDIT: For some reason, it seems to happen only in D3D9, D3D11 games like Skyrim Anniversay Edition work fine.
EDIT2: I tried out https://github.com/doitsujin/dxvk/actions/runs/28396913460 without any parameters, didn't work.

Uunderstyx 2026-06-30 github

@Erwin-Iosef Just curious, if you try proton-ge (you can easily install it with 'protonup-qt'), does it still gpu hang or just crash with wine error in proton logs?

EErwin-Iosef 2026-07-01 github

@understyx Tried it, I don't think it works for regular wine, I don't use steam much as well.
Edit: The bug I produced was with regular wine + DXVK.

EErwin-Iosef 2026-07-01 github
warn:  D3D8WrappedObject::QueryInterface: Unknown interface query
warn:  22222222-1c77-4d40-b0cf-98fefdffffff
warn:  D3D8WrappedObject::QueryInterface: Unknown interface query
warn:  11111111-1c77-4d40-b0cf-98fefdffffff
warn:  D3D8WrappedObject::QueryInterface: Unknown interface query

@understyx do you get this message spammed when you run with DXVK_CONFIG="dxvk.enableDescriptorBuffer=True"?
EDIT:Nvm, it seems it's when d3d9 runs in d3d8 compat mode.

Uunderstyx 2026-07-01 github

@understyx Tried it, I don't think it works for regular wine, I don't use steam much as well. Edit: The bug I produced was with regular wine + DXVK.

yeah all good. just was curious since i don't get as many gpu hangs with that. (is very rng though)

In the end I guess it doesn't matter that much either way. With mesa 26.2 ANV will enable descriptor heap by default and that should work around this too? I guess I'll close the issue when that happens.

EErwin-Iosef 2026-07-01 github

Sorry I couldn't help, and yeah hopefully I suppose, looks like a tricky bug for the devs.

Uunderstyx 2026-07-02 github
Ddjdeath 2026-07-03 github

Would you be able to give a go at https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42665 see if it helps?

Uunderstyx 2026-07-03 github

Would you be able to give a go at https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42665 see if it helps?

Doesn't seem to fix it unfortunately.

Uunderstyx 2026-07-03 github

Hang shifted few d3d9 calls down.

Image 96104 @0 IDirect3DDevice9::SetTransform(this = 0x42d8b40, State = D3DTS_VIEW, pMatrix = [{m = [[-0.587636, -0.455379, -0.668815, 0], [0.809125, -0.330724, -0.485734, 0], [-3.34249e-09, 0.82659, -0.562804, 0], [0, 0, 0, 1]]}]) = D3D_OK
Ddoitsujin maintainer 2026-07-03 github

Keep in mind that the GPU runs asynchronously so the D3D9 call executed at the time the hang occurs is more or less random and has nothing to do with the actual hang itself.

Can you post a Proton log with the Mesa build in question?

EErwin-Iosef 2026-07-03 github

@understyx what app are you using for the log?(Sorry GitHub app glitched)

Uunderstyx 2026-07-03 github

steam-14374311965495394304.log

I swapped to GE proton and running with wow64, but that shoudn't make a difference, right?

Ddjdeath 2026-07-03 github

For what it's worth, I think the MR is fixing the issue on my side, running without the MR and replaying the trace from the initial comment I get a hang, with the MR it's not hanging.

EErwin-Iosef 2026-07-03 github

I unfortunately can't apply the patch for mesa 26.1.4 and looks like your
commit needs rebasing.

Ddjdeath 2026-07-03 github

Here is a backport, but for some reason it's not triggering the issue on 26.1

https://gitlab.freedesktop.org/llandwerlin/mesa/-/commits/review/anv-limit-vs-push-constant-data.26.1

EErwin-Iosef 2026-07-03 github

Just tested, can still reproduce on Silent Hill 2.
GPU: Intel® Graphics (RPL-P)

Ddoitsujin maintainer 2026-07-03 github

That's a D3D12 game though? Not sure how that is related to D3D9 fixed-function stuff.

Mmbriar 2026-07-03 github

There is also original Silent Hill 2 using D3D8.

EErwin-Iosef 2026-07-03 github

I meant the original Silent Hill 2, there's an Enhanced Edition mod which lets it play using d3d9, although in my experience the bug also happened in its native d3d8 mode(maybe d3d9->8 compat mode)

Uunderstyx 2026-07-22 github

tried latest mesa git with dxvk 3.0.2 &
info: Effective configuration:
info: dxvk.hideIntegratedGraphics = True
info: dxvk.enableDescriptorHeap = false
info: dxvk.enableDescriptorBuffer = false

and seems to not crash the gpu anymore for me.

EErwin-Iosef 2026-07-30 github

Can also confirm issue fixed in Silent Hill 2 original.

Proton versions

Launch options

Upstream links