protonscr

World of Warcraft Classic Beta (`WowB.exe`): reproducible Xid 109 GPU hang ~25 s into a cold login in one zone; existing Wow.exe/WoWClassic.exe workarounds do not help

vkd3dopen
HansKristian-Work/vkd3d-proton#3304 · opened 2026-09-19 by wiggy9999 · updated 2026-09-22 · 8 comments · github
Wwiggy9999 2026-09-19 github

Software information

World of Warcraft Classic Beta, build 1.60.1.69913, launched from the Battle.net client under umu-launcher + GE-Proton 11-7. Executable is WowB.exe (beta), not Wow.exe / WoWClassic.exe.

Reproduction (100 %, ~15 attempts tonight):

  1. Fresh WowB process.
  2. Log directly into a character standing outdoors in Dun Morogh (anywhere in the zone: Coldridge Valley, Kharanos, just outside the Ironforge gate).
  3. ~25–35 s after Dx12 Device Create, still on the loading screen or a few seconds after entering the world: Xid 109 CTX SWITCH TIMEOUT, VK_ERROR_DEVICE_LOST, game does GxRestart, then freezes.

Does not reproduce:

  • Same character, same process, if any other zone was loaded first (log in a char in Teldrassil, log out, then the Dun Morogh char). Occasionally still hangs a few minutes into play.
  • Cold login into Ironforge (indoor city) or Teldrassil — clean, played for extended time.
  • New character created in Dun Morogh (spawn point) — clean (the intro loads fine and then you spawn into the zone normally after the intro even if it's cancelled).

Game settings: game defaults (graphicsQuality 6, D3D12, vsync on) and also max (quality 9, MSAA 8x) — identical behaviour. D3D11 mode (dxvk) hangs identically.

What I have already ruled out (one variable per attempt)

  • GE-Proton 10-34 (vkd3d-proton 3.0.0) vs 11-7 (af89350cc): identical hang.
  • VKD3D_CONFIG=descriptor_heap: applied (log confirms), identical hang.
  • Built af89350cc with WowB.exe added to application_override[] and application_shader_quirks[] with the same flags/quirks as WoWClassic.exe (AVOID_IMAGE_BUFFER_ALIASING, DESCRIPTOR_HEAP, wow_classic_quirks); log confirms the patched DLL loaded: identical hang. So the Classic ray-query workaround is not the cause here.
  • Resizable BAR: was off (BAR1 256 MiB, vkd3d logged "small BAR situation"); enabled it (32768 MiB, vkd3d now logs "HVV usage is allowed"): identical hang.
  • Deleted vkd3d-proton.cache, NVIDIA GLCache, game caches, all WTF settings; reboot; no compositor rules (Hyprland vanilla), window fullscreen or tiled — no difference.

System information

  • GPU: NVIDIA GeForce RTX 4090 (Ada), 24 GB
  • Driver: nvidia-open-dkms 610.57.04 (open kernel modules, GSP firmware enabled)
  • Kernel: 7.2.x, Wayland compositor (Hyprland 0.56), XWayland 24.1
  • Wine version: GE-Proton 11-7 (Wine 11)
  • VKD3D-Proton version: af89350cc (vkd3d-1.1-5604-gaf89350cc), also tested v3.0.0 via GE-Proton 10-34

Log files

Kernel:

NVRM: Xid (PCI:0000:01:00): 109, pid=N, name=WowB.exe, channel 0x00000014, errorString CTX SWITCH TIMEOUT, Info 0x18016

vkd3d (VKD3D_DEBUG=warn), the device-lost reason varies between runs:

warn:d3d12_device_mark_as_removed: Device ... is lost (reason 0x887a0005, "VK_ERROR_DEVICE_LOST").
warn:d3d12_device_mark_as_removed: Device ... is lost (reason 0x80004005, "Failed to execute pending memory clears.").
err:d3d12_command_queue_execute: Failed to submit queue(s), vr -4.
err:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.

Game's own gx.log (D3D12 path), every hang:

[0] Dx12 Device Create Successful
[0] Render Settings Changed. Format: RGBA16Float Size: 2560x1440
[1] Slow Pipeline Create: 348ms, "" vs(2991147|3) ps(2990950|50)     <- same vs/ps pair right before most hangs
[0] Failure in WaitForFence
[0] Device Removed Reason: GPU Hung. Timeout when waiting for queue: Graphics (0x80070102) count:1
[0] Doing GxRestart. Reason:DeviceRecovery

VKD3D_CONFIG=breadcrumbs produced no checkpoint output with the GE-Proton build. Shader dump (VKD3D_SHADER_DUMP_PATH) of the run is ~700 DXIL+SPIR-V pairs, no compile errors; I can attach it or the full vkd3d log if useful. A PROTON_LOG of this game is several GB within a minute of loading, so I have not attached one; happy to capture a filtered one on request.

Since the zone dependency is so sharp (one outdoor zone hangs, the adjacent indoor city and a different continent's start zone are clean, and a warm process usually survives the same zone) it looks like a specific piece of terrain-load work in this build, but I could not narrow it further from the outside.

Ggangrif 2026-09-19 github

I am hitting this same issue i think,
Bazzite 44, Nvidia RTX 3060, 615.71.09. In case the info is helpful.

Ttheknurz 2026-09-20 github

I have a close issue to that same Xid error on wayland:
Driver is: 615.71.09
Kernel: 7.2.6-arch2-1
Card: NVIDIA Corporation AD102 [GeForce RTX 4070 Ti SUPER] (rev a1)

For my setup the switch to DX11 let it run stable for several hours.

Ggangrif 2026-09-20 github

For what its worth. dx11 did not help my setup at all. Game runs splendidly on my non-nvidia laptop (that ones got an amd ryzen AI chip, framework 13).

Ggangrif 2026-09-20 github

The robot and I put a little more work into this over coffee this morning.

I have some game gx.log's that help eloborate. These are both with DX11 set, as thats what I was testing after @theknurz 's comment.

9/20 09:56:14.344 LogOpen
9/20 09:56:14.345 Mapping thread (ID 2112) as 0
9/20 09:56:14.345 [0] World of Warcraft Beta x86_64 1.60.1.69913
9/20 09:56:14.346 [0] Windows 10 (10.0.19045.1165) [Wine (11.0.0) Linux 7.2.4-ogc3.1.fc44.x86_64] x86_64
9/20 09:56:14.346 [0] AMD Ryzen 7 5800 8-Core Processo | Sockets:1 Cores:8 Threads:16 Hybrid:false
9/20 09:56:14.346 [0] Max Frequency: 4.7GHz | Vendor:AuthenticAMD | Microcode:0x0
9/20 09:56:14.346 [0] Family:0x19 Model:0x21, Stepping:0x0
9/20 09:56:14.346 [0] Features: sse sse2 sse3 ssse3 sse41 sse42 avx avx2
9/20 09:56:14.346 [0] movbe popCnt bmi1 bmi2 lzcnt adx f16c fma aesni clmul sha vaesni vclmul rdrand rdseed cmpxchg16b lahf64 prefetchw
9/20 09:56:14.346 [0] Motherboard: "0TYR0X" by "Alienware" (BIOS:Alienware version:2.3.3 date:11/15/2022)
9/20 09:56:14.347 [0] 31.2 GB System Memory
9/20 09:56:14.347 [0] ThreadPool Size: High:6 Mid:6 Low:6 PerThreadAllocator:enabled
9/20 09:56:14.347 [0] Power State Unknown - Battery Unknown
9/20 09:56:14.347 [0] Force API D3D11
9/20 09:56:17.715 [0] Adapter 0: "NVIDIA GeForce RTX 3060" 12GB family:Ampere type:Discrete location:0 driver_date:20-Sep-2026 driver_ver:35.0.99.9999 vendor:0x10de device:0x2503 dx11:true dx12:false
9/20 09:56:17.715 [0] Monitor 0 "Default" Size(3440x1440) Pos(0, 0) Refresh Rate(100Hz)
9/20 09:56:17.715 [0] Monitor 1 "Default" Size(1440x2560) Pos(3440, -892) Refresh Rate(75Hz)
9/20 09:56:17.715 [0] Unable to load "d3d12.dll"
9/20 09:56:17.715 [0] NVIDIA driver_version:615.71 | driver_branch:r61683_v0.9.2
9/20 09:56:17.725 [0] Choosing gpu with monitor attached: "NVIDIA GeForce RTX 3060"
9/20 09:56:17.726 [0] Disabled Settings: LOW_LATENCY_CBS
9/20 09:56:17.726 [0] GpuInfo: sm:dx_5_0, rt:None, vrs:0, bary:0, mesh:0 pull:1
9/20 09:56:18.827 [0] Invalid: GFSDK_Aftermath_EnableGpuCrashDumps Failed: Unsupported driver version - requires at least an NVIDIA R495 display driver. (Aftermath:(-1160773620))
9/20 09:56:18.827 [0] Success: Nvidia Aftermath failed to load. This will be disabled. (Prism:(0))
9/20 09:56:19.316 [0] Notify responders to DeviceCreate event
9/20 09:56:19.318 [0] Dx11 Device Create Successful (1592.7 ms)
9/20 09:56:19.318 [0] Using shader family dx_5_0
9/20 09:56:19.318 [0] UAV format support BGRA8:true RG16F:true RGBA16F:true
9/20 09:56:19.318 [0] No
9/20 09:56:19.324 [0] Detected Graphics Defaults: 5 (CPU = 7, GPU = 5, MEM = 7) WindowSize: 3440x1440
9/20 09:56:19.328 [0] GxLowLatencyMode: None
9/20 09:56:19.436 [0] Render Settings Changed. Format: RGBA16Float Size: 1x1
9/20 09:56:19.436 [0] GxLowLatencyMode: AutoDetect
9/20 09:56:23.403 [0] App is background
9/20 09:56:23.404 [0] App is foreground
9/20 09:56:23.414 [0] Render Settings Changed
9/20 09:56:23.620 [0] Periodic Gpu Status Report: Mem Budget: 1.6GB / 9.6GB (16.6%) Freq:0.31GHz Temp:48C
9/20 09:56:38.624 [0] Render Settings Changed
9/20 09:56:46.238 [0] Render Settings Changed
9/20 09:56:56.844 [0] Failure in WaitForFence
9/20 09:56:56.844 [0] Device Removed Reason: GPU Hung. Timeout when waiting for queue: Graphics (0x80070102) count:1
9/20 09:56:56.844 [0] Device Lost on NVIDIA driver version 999.99.
9/20 09:56:56.896 [0] Device context was lost. Attempting recovery. Occurrence: 1
9/20 09:56:56.902 [0] Doing GxRestart. Reason:DeviceRecovery
9/20 09:56:56.902 [0] Dx11 Device Destroy
9/20 09:57:06.906 [0] Failure in WaitForFence
9/20 09:57:16.906 [0] Failure in WaitForFence
9/20 09:57:26.906 [0] Failure in WaitForFence
9/20 09:57:26.906 [0] Notify responders to DeviceDestroy event
9/20 09:57:26.957 Mapping thread (ID 2664) as 1
9/20 09:57:26.957 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/20 09:57:26.957 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/20 09:57:26.957 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/20 09:57:47.435 Mapping "WatchdogThread" (ID 2612) as 2
9/20 09:57:47.435 [2] Crash Summary: ERROR #109 (0x8510006d) A thread has become unresponsive. Freeze Detected: thread 2112 has been frozen for 20 seconds
(DBG-OPTIONS DBG-ADDR<00006ffffc90b275>("dxgi.dll") <- DBG-ADDR<00006ffff8009c02>("WowB.exe") <- DBG-ADDR<00006ffff7f67b5d>("WowB.exe") DBG-OPTIONS<>)

We noticed that the gpu was in sleep mode, and we eliminated that as a possible issue by locking it to around 2100Mhz. that didnt help, but heres the log from that if its useful:

9/20 10:14:40.057 LogOpen
9/20 10:14:40.059 Mapping thread (ID 2412) as 0
9/20 10:14:40.059 [0] World of Warcraft Beta x86_64 1.60.1.69913
9/20 10:14:40.060 [0] Windows 10 (10.0.19045.1165) [Wine (11.0.0) Linux 7.2.4-ogc3.1.fc44.x86_64] x86_64
9/20 10:14:40.060 [0] AMD Ryzen 7 5800 8-Core Processo | Sockets:1 Cores:8 Threads:16 Hybrid:false
9/20 10:14:40.060 [0] Max Frequency: 4.7GHz | Vendor:AuthenticAMD | Microcode:0x0
9/20 10:14:40.060 [0] Family:0x19 Model:0x21, Stepping:0x0
9/20 10:14:40.060 [0] Features: sse sse2 sse3 ssse3 sse41 sse42 avx avx2
9/20 10:14:40.060 [0] movbe popCnt bmi1 bmi2 lzcnt adx f16c fma aesni clmul sha vaesni vclmul rdrand rdseed cmpxchg16b lahf64 prefetchw
9/20 10:14:40.060 [0] Motherboard: "0TYR0X" by "Alienware" (BIOS:Alienware version:2.3.3 date:11/15/2022)
9/20 10:14:40.060 [0] 31.2 GB System Memory
9/20 10:14:40.060 [0] ThreadPool Size: High:6 Mid:6 Low:6 PerThreadAllocator:enabled
9/20 10:14:40.060 [0] Power State Unknown - Battery Unknown
9/20 10:14:40.060 [0] Force API D3D11
9/20 10:14:43.341 [0] Adapter 0: "NVIDIA GeForce RTX 3060" 12GB family:Ampere type:Discrete location:0 driver_date:20-Sep-2026 driver_ver:35.0.99.9999 vendor:0x10de device:0x2503 dx11:true dx12:false
9/20 10:14:43.341 [0] Monitor 0 "Default" Size(3440x1440) Pos(0, 0) Refresh Rate(100Hz)
9/20 10:14:43.341 [0] Monitor 1 "Default" Size(1440x2560) Pos(3440, -892) Refresh Rate(75Hz)
9/20 10:14:43.341 [0] Unable to load "d3d12.dll"
9/20 10:14:43.341 [0] NVIDIA driver_version:615.71 | driver_branch:r61683_v0.9.2
9/20 10:14:43.354 [0] Choosing gpu with monitor attached: "NVIDIA GeForce RTX 3060"
9/20 10:14:43.354 [0] Disabled Settings: LOW_LATENCY_CBS
9/20 10:14:43.354 [0] GpuInfo: sm:dx_5_0, rt:None, vrs:0, bary:0, mesh:0 pull:1
9/20 10:14:44.440 [0] Invalid: GFSDK_Aftermath_EnableGpuCrashDumps Failed: Unsupported driver version - requires at least an NVIDIA R495 display driver. (Aftermath:(-1160773620))
9/20 10:14:44.440 [0] Success: Nvidia Aftermath failed to load. This will be disabled. (Prism:(0))
9/20 10:14:44.907 [0] Notify responders to DeviceCreate event
9/20 10:14:44.909 [0] Dx11 Device Create Successful (1556.0 ms)
9/20 10:14:44.909 [0] Using shader family dx_5_0
9/20 10:14:44.909 [0] UAV format support BGRA8:true RG16F:true RGBA16F:true
9/20 10:14:44.909 [0] No
9/20 10:14:44.916 [0] Detected Graphics Defaults: 5 (CPU = 7, GPU = 5, MEM = 7) WindowSize: 3440x1440
9/20 10:14:44.918 [0] GxLowLatencyMode: None
9/20 10:14:45.001 [0] Render Settings Changed. Format: RGBA16Float Size: 1x1
9/20 10:14:45.001 [0] GxLowLatencyMode: AutoDetect
9/20 10:14:47.640 [0] App is background
9/20 10:14:47.640 [0] App is foreground
9/20 10:14:47.645 [0] Render Settings Changed
9/20 10:14:47.817 [0] Periodic Gpu Status Report: Mem Budget: 1.8GB / 9.7GB (19.0%) Freq:1.90GHz Temp:61C
9/20 10:15:00.922 [0] Render Settings Changed
9/20 10:15:08.691 [0] Render Settings Changed
9/20 10:15:18.909 [0] Failure in WaitForFence
9/20 10:15:18.909 [0] Device Removed Reason: GPU Hung. Timeout when waiting for queue: Graphics (0x80070102) count:1
9/20 10:15:18.909 [0] Device Lost on NVIDIA driver version 999.99.
9/20 10:15:18.967 [0] Device context was lost. Attempting recovery. Occurrence: 1
9/20 10:15:18.973 [0] Doing GxRestart. Reason:DeviceRecovery
9/20 10:15:18.973 [0] Dx11 Device Destroy
9/20 10:15:28.977 [0] Failure in WaitForFence
9/20 10:15:38.977 [0] Failure in WaitForFence
9/20 10:15:48.977 [0] Failure in WaitForFence
9/20 10:15:48.977 [0] Notify responders to DeviceDestroy event
9/20 10:15:49.035 Mapping thread (ID 2772) as 1
9/20 10:15:49.035 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/20 10:15:49.035 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/20 10:15:49.035 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/20 10:16:10.145 Mapping "WatchdogThread" (ID 2708) as 2
9/20 10:16:10.145 [2] Crash Summary: ERROR #109 (0x8510006d) A thread has become unresponsive. Freeze Detected: thread 2412 has been frozen for 20 seconds
(DBG-OPTIONS DBG-ADDR<00006ffffc90b275>("dxgi.dll") <- DBG-ADDR<00006ffff8009c02>("WowB.exe") <- DBG-ADDR<00006ffff7f67b5d>("WowB.exe") DBG-OPTIONS<>)

This lead the robot to suggest that this is not a a shader compilation issue.

Also just to hilight, we tried ruling out the clock state switch from gpu sleep as a possibility by locking the clock at around its maximum, that had not effect.

Also, if it matters. I am launching battle.net from lutris, using the latest proton-ge runner, and launching WoW from the battle.net UI.

This strikes me as weird:

9/20 09:56:56.844 [0] Device Removed Reason: GPU Hung. Timeout when waiting for queue: Graphics (0x80070102) count:1
9/20 09:56:56.844 [0] Device Lost on NVIDIA driver version 999.99.

That version 999.99 feels like we're actually getting a garbled response or crash from the driver? Like it substituted this placeholder version instead of the actual driver version. Maybe we're dealing with a driver problem and not userspace?

Bbcorey85 2026-09-20 github

Another data point, on Ampere rather than Blackwell, and not zone-specific here.

System

  • RTX 3080 Ti (GA102), nvidia-open-dkms
  • Arch, kernel 7.2.6-arch2-1, Lutris 0.5.22 + umu, GE-Proton11-7
  • WowB.exe build 1.60.1.69913, Battle.net prefix (not Steam)

Symptom
Xid 109 CTX SWITCH TIMEOUT roughly 20-90 s after entering the world, 8 occurrences today. gx.log shows:

Failure in WaitForFence
Device Removed Reason: GPU Hung. Timeout when waiting for queue: Graphics (0x80070102) count:1
Device context was lost. Attempting recovery. Occurrence: 1
Doing GxRestart. Reason:DeviceRecovery

Recovery never completes, so the watchdog fires ERROR [#109](/issue/HansKristian-Work/vkd3d-proton/109) A thread has become unresponsive after 20 s and the client has to be killed.

Ruled out, each verified in gx.log or nvidia-smi on the failing run

Variable Values tried Result
Graphics API D3D12 (vkd3d) / D3D11 (DXVK) hangs on both
Driver 615.71.09 / 610.57.04 hangs on both
Power limit 250 W / 400 W (default) hangs on both
Core clock unlocked / nvidia-smi -lgc 300,1600 hangs on both
Graphics quality 6 / 4 (Detected Graphics Defaults: 5) hangs on both
Secondary lighting graphicsLightMode 2 / 1 hangs on both
DXVK dxvk.enableGraphicsPipelineLibrary=True no effect

Two observations that may narrow it

  1. Not zone-specific for me. This issue reports Dun Morogh. I reproduce it in Dun Morogh, Durotar, and Tirisfal Glades, on three separate characters. Loading a different zone first does not help.

  2. Retail WoW is stable on the identical prefix, driver, and GPU. The only rendering difference I can see in gx.log is latency mode:

    • retail: GxLowLatencyMode: None
    • classic beta: GxLowLatencyMode: None then immediately GxLowLatencyMode: AutoDetect

    Retail also reports rt:DXR 1.1, vrs:2, mesh:1 against the beta's rt:None, vrs:0, mesh:0, so the two clients take quite different paths.

Happy to gather any trace or run a patched build.

Ttheknurz 2026-09-21 github

9/21 17:58:43.526 LogOpen
9/21 17:58:43.527 Mapping thread (ID 2576) as 0
9/21 17:58:43.527 [0] World of Warcraft Beta x86_64 1.60.1.69913
9/21 17:58:43.529 [0] Windows 10 (10.0.19045.5796) [Wine (11.0.0) Linux 7.2.6-arch2-1] x86_64
9/21 17:58:43.529 [0] AMD Ryzen 7 7800X3D 8-Core Processo | Sockets:1 Cores:8 Threads:16 Hybrid:false
9/21 17:58:43.529 [0] Max Frequency: 5.1GHz | Vendor:AuthenticAMD | Microcode:0x0
9/21 17:58:43.529 [0] Family:0x19 Model:0x61, Stepping:0x2
9/21 17:58:43.529 [0] Features: sse sse2 sse3 ssse3 sse41 sse42 avx avx2 avx512f avx512dq avx512ifma avx512cd avx512bw avx512vl avx512vbmi avx512vbmi2 avx512vnni avx512bitalg avx512vpopcntdq avx512bf16
9/21 17:58:43.529 [0] movbe popCnt bmi1 bmi2 lzcnt adx f16c fma aesni clmul sha gfni vaesni vclmul rdrand rdseed cmpxchg16b lahf64 prefetchw
9/21 17:58:43.529 [0] Motherboard: "B650 GAMING X AX V2" by "Gigabyte Technology Co., Ltd." (BIOS:American Megatrends International, LLC. version:F5 date:04/10/2024)
9/21 17:58:43.529 [0] 30.5 GB System Memory
9/21 17:58:43.529 [0] ThreadPool Size: High:6 Mid:6 Low:6 PerThreadAllocator:enabled
9/21 17:58:43.529 [0] On AC Power - Battery Not Present
9/21 17:58:44.503 [0] Adapter 0: "NVIDIA GeForce RTX 4070 Ti SUPER" 16GB family:Ada type:Discrete location:0 driver_date:21-Sep-2026 driver_ver:35.0.99.9999 vendor:0x10de device:0x2689 dx11:true dx12:true
9/21 17:58:44.503 [0] Monitor 0 "Display1" Size(2560x1440) Pos(0, 0) Refresh Rate(360Hz)
9/21 17:58:44.503 [0] Monitor 1 "Display2" Size(1440x2560) Pos(-1440, -812) Refresh Rate(144Hz)
9/21 17:58:44.503 [0] Monitor 2 "Display3" Size(2560x1440) Pos(2560, -173) Refresh Rate(144Hz)
9/21 17:58:44.503 [0] NVIDIA driver_version:615.71 | driver_branch:r59596_proton-11.0-2c+
9/21 17:58:44.521 [0] Choosing gpu with monitor attached: "NVIDIA GeForce RTX 4070 Ti SUPER"
9/21 17:58:44.521 [0] Disabled Settings: LOW_LATENCY_CBS
9/21 17:58:44.521 [0] GpuInfo: sm:dx_5_0, rt:None, vrs:0, bary:0, mesh:0 pull:1
9/21 17:58:45.221 [0] Invalid: GFSDK_Aftermath_EnableGpuCrashDumps Failed: Unsupported driver version - requires at least an NVIDIA R495 display driver. (Aftermath:(-1160773620))
9/21 17:58:45.221 [0] Success: Nvidia Aftermath failed to load. This will be disabled. (Prism:(0))
9/21 17:58:45.583 [0] Notify responders to DeviceCreate event
9/21 17:58:45.585 [0] Dx11 Device Create Successful (1063.9 ms)
9/21 17:58:45.585 [0] Using shader family dx_5_0
9/21 17:58:45.585 [0] UAV format support BGRA8:true RG16F:true RGBA16F:true
9/21 17:58:45.585 [0] No
9/21 17:58:45.590 [0] Detected Graphics Defaults: 7 (CPU = 7, GPU = 7, MEM = 7) WindowSize: 2560x1440
9/21 17:58:45.593 [0] GxLowLatencyMode: None
9/21 17:58:45.665 [0] Render Settings Changed. Format: RGBA16Float MSAA: 8x Size: 1x1
9/21 17:58:45.665 [0] GxLowLatencyMode: AutoDetect
9/21 17:58:47.034 [0] App is background
9/21 17:58:47.034 [0] App is foreground
9/21 17:58:47.040 [0] Render Settings Changed
9/21 17:58:47.163 [0] Periodic Gpu Status Report: Mem Budget: 1.7GB / 12.2GB (13.7%) Freq:2.65GHz Temp:47C
9/21 17:59:01.987 [0] Render Settings Changed
9/21 17:59:13.834 [0] Render Settings Changed
9/21 17:59:53.430 [0] App is background
9/21 18:02:16.851 [0] App is foreground
9/21 18:03:47.175 [0] Periodic Gpu Status Report: Mem Budget: 5.6GB / 12.2GB (46.2%) Freq:2.81GHz Temp:56C
9/21 18:04:03.678 [0] App is background
9/21 18:04:14.619 [0] App is foreground
9/21 18:05:38.895 [0] App is background
9/21 18:05:47.792 [0] App is foreground
9/21 18:05:54.826 [0] App is background
9/21 18:06:12.078 [0] App is foreground
9/21 18:06:28.427 [0] App is background
9/21 18:06:47.239 [0] App is foreground
9/21 18:06:50.134 [0] App is background
9/21 18:06:51.747 [0] Dx11 Device Destroy
9/21 18:06:51.751 [0] Notify responders to DeviceDestroy event
9/21 18:06:51.917 [0] Device Destroy Successful (170.5 ms)
9/21 18:06:51.946 [0] GxShutdown

A successful run, game runs stable, gets some stuttering when entering a layer w. some shaders to compile.
Ive used the steam-provided Proton11.0 for that run.


9/21 18:10:06.839 LogOpen
9/21 18:10:06.840 Mapping thread (ID 2400) as 0
9/21 18:10:06.840 [0] World of Warcraft Beta x86_64 1.60.1.69913
9/21 18:10:06.841 [0] Windows 10 (10.0.19045.5796) [Wine (11.0.0) Linux 7.2.6-arch2-1] x86_64
9/21 18:10:06.841 [0] AMD Ryzen 7 7800X3D 8-Core Processo | Sockets:1 Cores:8 Threads:16 Hybrid:false
9/21 18:10:06.841 [0] Max Frequency: 5.1GHz | Vendor:AuthenticAMD | Microcode:0x0
9/21 18:10:06.841 [0] Family:0x19 Model:0x61, Stepping:0x2
9/21 18:10:06.841 [0] Features: sse sse2 sse3 ssse3 sse41 sse42 avx avx2 avx512f avx512dq avx512ifma avx512cd avx512bw avx512vl avx512vbmi avx512vbmi2 avx512vnni avx512bitalg avx512vpopcntdq avx512bf16
9/21 18:10:06.841 [0] movbe popCnt bmi1 bmi2 lzcnt adx f16c fma aesni clmul sha gfni vaesni vclmul rdrand rdseed cmpxchg16b lahf64 prefetchw
9/21 18:10:06.841 [0] Motherboard: "B650 GAMING X AX V2" by "Gigabyte Technology Co., Ltd." (BIOS:American Megatrends International, LLC. version:F5 date:04/10/2024)
9/21 18:10:06.841 [0] 30.5 GB System Memory
9/21 18:10:06.841 [0] ThreadPool Size: High:6 Mid:6 Low:6 PerThreadAllocator:enabled
9/21 18:10:06.841 [0] Power State Unknown - Battery Unknown
9/21 18:10:07.839 [0] Adapter 0: "NVIDIA GeForce RTX 4070 Ti SUPER" 16GB family:Ada type:Discrete location:0 driver_date:21-Sep-2026 driver_ver:35.0.99.9999 vendor:0x10de device:0x2689 dx11:true dx12:true
9/21 18:10:07.839 [0] Monitor 0 "Default" Size(2560x1440) Pos(0, 0) Refresh Rate(360Hz)
9/21 18:10:07.839 [0] Monitor 1 "Default" Size(1440x2560) Pos(-1440, -812) Refresh Rate(144Hz)
9/21 18:10:07.839 [0] Monitor 2 "Default" Size(2560x1440) Pos(2560, -173) Refresh Rate(144Hz)
9/21 18:10:07.839 [0] NVIDIA driver_version:615.71 | driver_branch:r61683_v0.9.2
9/21 18:10:07.855 [0] Choosing gpu with monitor attached: "NVIDIA GeForce RTX 4070 Ti SUPER"
9/21 18:10:07.855 [0] Disabled Settings: LOW_LATENCY_CBS
9/21 18:10:07.855 [0] GpuInfo: sm:dx_5_0, rt:None, vrs:0, bary:0, mesh:0 pull:1
9/21 18:10:08.562 [0] Invalid: GFSDK_Aftermath_EnableGpuCrashDumps Failed: Unsupported driver version - requires at least an NVIDIA R495 display driver. (Aftermath:(-1160773620))
9/21 18:10:08.562 [0] Success: Nvidia Aftermath failed to load. This will be disabled. (Prism:(0))
9/21 18:10:08.943 [0] Notify responders to DeviceCreate event
9/21 18:10:08.945 [0] Dx11 Device Create Successful (1089.7 ms)
9/21 18:10:08.945 [0] Using shader family dx_5_0
9/21 18:10:08.945 [0] UAV format support BGRA8:true RG16F:true RGBA16F:true
9/21 18:10:08.945 [0] No
9/21 18:10:08.950 [0] Detected Graphics Defaults: 7 (CPU = 7, GPU = 7, MEM = 7) WindowSize: 2560x1440
9/21 18:10:08.953 [0] GxLowLatencyMode: None
9/21 18:10:09.018 [0] Render Settings Changed. Format: RGBA16Float MSAA: 8x Size: 1x1
9/21 18:10:09.018 [0] GxLowLatencyMode: AutoDetect
9/21 18:10:10.971 [0] App is background
9/21 18:10:10.971 [0] App is foreground
9/21 18:10:10.977 [0] Render Settings Changed
9/21 18:10:11.102 [0] Periodic Gpu Status Report: Mem Budget: 1.7GB / 12.1GB (13.8%) Freq:2.65GHz Temp:50C
9/21 18:10:26.050 [0] Render Settings Changed
9/21 18:10:37.780 [0] Render Settings Changed
9/21 18:10:48.211 [0] Failure in WaitForFence
9/21 18:10:48.211 [0] Device Removed Reason: GPU Hung. Timeout when waiting for queue: Graphics (0x80070102) count:1
9/21 18:10:48.211 [0] Device Lost on NVIDIA driver version 999.99.
9/21 18:10:48.577 [0] Crash Summary: ASSERTSAFES(texture->GetSize() == C2iVector(texturePool.resolution), ...) Expected size 128x128, but got size 1x1 from at d:\BuildServer2\Builder\checkouts\0\Engine\Source\ShaderEffect\IndirectTextureArray.cpp(229)

9/21 18:10:49.631 [0] Crash Summary: ASSERTSAFES(texture->GetSize() == C2iVector(texturePool.resolution), ...) Expected size 132x132, but got size 1x1 from at d:\BuildServer2\Builder\checkouts\0\Engine\Source\ShaderEffect\IndirectTextureArray.cpp(229)

9/21 18:10:50.660 [0] Crash Summary: ASSERTSAFES(texture->GetSize() == C2iVector(texturePool.resolution), ...) Expected size 128x128, but got size 1x1 from at d:\BuildServer2\Builder\checkouts\0\Engine\Source\ShaderEffect\IndirectTextureArray.cpp(229)

9/21 18:10:51.640 [0] Device context was lost. Attempting recovery. Occurrence: 1
9/21 18:10:51.656 [0] Doing GxRestart. Reason:DeviceRecovery
9/21 18:10:51.656 [0] Dx11 Device Destroy
9/21 18:11:01.662 [0] Failure in WaitForFence
9/21 18:11:11.662 [0] Failure in WaitForFence
9/21 18:11:21.662 [0] Failure in WaitForFence
9/21 18:11:21.662 [0] Notify responders to DeviceDestroy event
9/21 18:11:21.761 Mapping thread (ID 2760) as 1
9/21 18:11:21.761 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/21 18:11:21.761 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/21 18:11:21.761 [1] Invalid: Get Timestamp Disjoints Failed (HR:0x887A0001) Invalid call.
9/21 18:11:42.757 Mapping "WatchdogThread" (ID 2684) as 2
9/21 18:11:42.757 [2] Crash Summary: ERROR #109 (0x8510006d) A thread has become unresponsive. Freeze Detected: thread 2400 has been frozen for 20 seconds
(DBG-OPTIONS DBG-ADDR<00006ffffd11b275>("dxgi.dll") <- DBG-ADDR<00006ffff7ef9c02>("WowB.exe") <- DBG-ADDR<00006ffff7e57b5d>("WowB.exe") DBG-OPTIONS<>)

Kernel-Log reads:
[18655.858530] NVRM: Xid (PCI:0000:01:00): 109, pid=83522, name=WowB.exe, channel 0x00000040, errorString CTX SWITCH TIMEOUT, Info 0xdc03d

This was my run with the GE-Proton 11.7 layer.

00xBMoney 2026-09-22 github

Same issue but on different hardware
System: Gigabyte RX 9070 XT (RDNA4, gfx1201), Mesa 26.2.2 and 26.2.3 (RADV), kernel 7.2.6-200.fc44, KDE Plasma Wayland. Same game build (1.60.1.69913, WowB.exe) via Lutris + umu + GE-Proton 11-7.

Matches your report:

  • Cold launch directly on D3D12 hangs during or shortly after world load, now on every character
  • Warm process survives: launching on D3D11, loading into the world, then switching to D3D12 in-game runs fine

Differs:

  • Cold launch on D3D11 (DXVK) does not hang for me
  • Hangs began mid-play (9–47 min) before becoming load-time; a character of the new race triggered it fastest. Zone: [FILL IN]
  • Confirmed on D3D11: gx.log shows Dx11 Device Create at 20:27:16, amdgpu logs a ring timeout at 20:27:48 attributed to thread dxvk-submit, and the client recreates the Dx11 device 160 ms later. Same hang through DXVK, recovered rather than fatal.

Kernel (amdgpu):
[gfxhub] page fault ... Faulty UTCL2 client ID: SQC (data) (0xa), PERMISSION_FAULTS: 0x3
ring gfx_0.0.0 timeout ... Process WowB.exe thread vkd3d_queue

GCVM_L2_PROTECTION_FAULT_STATUS is 0x00501430 in every fault over 3 days, and the faulting address is consistently in the 0x8400xxxxxxxx range. Later hangs are attributed to WoW's own threads (Disk Queue 0, ThreadPool Mid).

Ruled out: RADV_DEBUG=zerovram and nohiz, Mesa 26.2.2 → 26.2.3, lower shadow quality. Ray tracing is unavailable in-game, so DXR isn't involved.

Attached: amdgpu devcoredump, dmesg, system info.

wow-radv-bugreport-2026-09-22-2037.tar.gz

Update

  • keeping the DX setting on Auto-detect seems to have fixed the issue, log shows DX12 works with this setting

9/22 21:33:24.795 [0] Dx12 Device Create Successful (276.4 ms)

Eeelemons 2026-09-22 github

Same hang on 580.178.04 (proprietary) — not specific to the open modules, DX12, or clocks

I hit what looks like the same bug on an almost identical setup, and ran a workaround
matrix today (10 hangs, all Xid 109 CTX SWITCH TIMEOUT, all WowB.exe). Posting the
negative results so nobody repeats them.

Environment

GPU RTX 4090
Driver nvidia-open-dkms 610.57.04, and nvidia-580xx-dkms 580.178.04 (proprietary)
Kernel 7.2.3-arch1-3 (Arch)
Proton GE-Proton11-7, via umu-launcher (Battle.net prefix)
Client WoW Classic beta, WowB.exe build 69913
Compositor Hyprland 0.56.2 (Wayland), game on XWayland, 3840x2160@120

Symptom

Always during a world load, ~25–35 s after device creation:

gx.log:  Slow Pipeline Create: 267ms, "" vs(2991147|3) ps(2990950|50)
kernel:  NVRM: Xid (PCI:0000:01:00): 109, pid=N, name=WowB.exe, channel 0x4a,
         errorString CTX SWITCH TIMEOUT
gx.log:  Device Removed Reason: GPU Hung. Timeout when waiting for queue: Graphics (0x80070102)
gx.log:  Device Lost ... Doing GxRestart. Reason:DeviceRecovery -> Dx12 Device Destroy

Renderer recovery then fails and the process takes SIGSEGV inside libnvidia-glcore
20–30 s later. 9 core dumps today.

Tried, did not help

Change Result
SET GxApi "D3D11" (DXVK instead of vkd3d-proton) same hang
DX11 + dxvk.enableGraphicsPipelineLibrary = True (confirmed graphicsPipelineLibrary : 1 in the client's DXVK log) same hang
Memory clock locked (nvidia-smi -lmc, 10251 MHz held) same hang
Core clock locked (nvidia-smi -lgc 2100,2790, no idle→peak transition) same hang
Window pinned to one output, fullscreen, no mid-session resolution change same hang
Clearing _classic_beta_/Cache same hang
610.57.04 open → 580.178.04 proprietary same hang

So it is not specific to the open kernel modules, not the DX12 path, and not a clock or
power-state transition.

Two observations that may narrow it down

1. One shader pair recurs shortly before some hangs, but is not required. In 3 of the
10 hangs the last graphics event before the timeout is
Slow Pipeline Create: 231/281/267 ms, "" vs(2991147|3) ps(2990950|62 or 50) — same vs/ps
IDs, hours apart, on both 610-open and 580-proprietary. In another hang the client logged
no Slow Pipeline Create line at all and still timed out, so it is a correlation worth
a look rather than a precondition. (The client truncates gx.log per launch, so I only
have logs for 4 of the 10 runs.) In the one hang I have complete GPU telemetry for
(580.178.04), the GPU sits at 100% / 2775 MHz / ~78 W for 5 s and the timeout fires at the
end of that.

2. 580 fails more gracefully than 610-open. I sampled nvidia-smi once a second
through three of the hangs. In both sampled 610.57.04 (open) hangs, three to four
consecutive samples are missing around the Xid — the driver stopped answering an
unrelated process, i.e. the whole GPU stalled, not just the client's context. In the
sampled 580.178.04 (proprietary) hang, sampling continued uninterrupted; only the client's
channel timed out. Same bug, different blast radius, which might point at where preemption
is failing.

Notes

  • Not limited to Dun Morogh: this is a new character loading into the Forsaken starting
    zone, on ordinary outdoor world loads.
  • Ray tracing is off. Graphics quality 9.
  • Per-second GPU sampling + journalctl -k -f logs available if useful.

Related threads

Proton versions

Launch options

DLLs

Error codes