[Linux/NVIDIA] Forever 70205: black shadows when Secondary Lighting is High; retoggle in-world fixes it

Disclaimer: written by a software engineer, not a game developer.

Build: 1.60.1.70205. Host: CachyOS, RTX 4080 SUPER, NVIDIA 615.71.09, GE-Proton11-7 via Lutris, D3D12. Game’s own shaders, no overrides. The 69913 GPU-hang workaround from the previous post is no longer needed: the hang is fixed in 70205 on both D3D11 and D3D12.

The finding

Shadows have no indirect light (no ambient, no bounce, solid black) when Secondary Lighting is Good or High at the moment the character enters the world. Direct sunlight and cast shadows are correct; only the fill inside shade is missing.

Setting Secondary Lighting to Fair in-world and then back to High restores the fill immediately. A character that logged in dark is fixed by that one cycle. Same shaders, same driver, same settings; the only difference is whether the level was active during world load or applied afterwards.

The in-world High is genuinely running, not a cosmetic menu state: in the same torch-lit tunnel, with the frame rate capped, GPU load measured by nvidia-smi steps from 43 % / 145 W at Fair to 62 % / 196 W at High, and back to 43 % / 145 W at Fair.

Workaround

Log in with Secondary Lighting at Fair, then set Good or High once in the world. Or cycle High → Fair → High after a dark login. The addon from the “Secondary Lighting Good causes GPU hang” thread automates this with a short delay after login, which is the same fix from the other side.

What this points to

An initialization-order defect in the client: the Secondary Lighting pass is started at world load before the data it reads exists. On 69913 that same ordering made the tracer loop forever (the GPU hang from the previous post); on 70205 the loop is guarded and the pass simply produces nothing. Shader readouts taken in the dark state showed the pass running against an empty sky cube and its surface results never being consumed; re-running it after the world has loaded gives correct output. The fix on Blizzard’s side is to initialize those inputs before the pass first runs, or run it again once they exist.

Ruled out (each by direct test, 70205, dark-at-login state)

Driver, NVAPI on or off, the second GPU (iGPU hidden from enumeration), NVIDIA-only shader extensions (raw access chains disabled), D3D11 vs D3D12, HDR output on or off, compositor HDR, all shader and pipeline caches, restored known-good config, Wine export hiding, driver-workaround cvars, and every shader-level patch of the lighting pass. None changed the dark-at-login state; the in-world toggle is the only thing that does.

Also noted, not the cause: the client reports rt:None on NVIDIA under Wine while vkd3d-proton offers DXR 1.1/1.2, and exposes a compat cvar for every feature flag except RAY_TRACING. An RX 9070 on the same Proton build reports no issue at any level.

Repro

graphicsLightMode "2" in Config.wtf, log in, stand in shade: black. Set Fair, then High, in-world: lit. Any Linux/Proton NVIDIA setup.

Related threads

  1. Previous post in this series: 69913 GPU hang, loop bound, shader override
  2. Blizzard bug report: “[Forever Beta 1.60.1.69913][Linux/DX12] Secondary Lighting Good causes GPU hang loading Stormwind; Fair works” (the delay addon)
  3. NVIDIA forum: “615.71.09 / RTX 5090: WoW DX12 freezes with ray tracing enabled. Xid 109”

Wow, that’s thorough, though I get the sense that it’s largely LLM-generated. Couldn’t really ask for better debug information as a dev.

I have no idea if it’s helpful, but in the off chance it is, I see no issues at all with secondary lighting, shadows, god rays, etc with the following setup:

  • Hardware: Ryzen 5950X + RX 9070
  • OS: Fedora Linux 44
  • WINE: GE-Proton11-7 via Steam

So the issue must be isolated to Nvidia + Linux/WINE specifically rather than being more generalized to Linux/WINE with other GPU vendors.

2 Likes

Thanks, that’s useful. Last week’s issue was easier because the game crashed, so it was a matter of following the crash log, writing a patch, and getting back to playing. This one fails silently.

Knowing it works on your setup makes me more suspicious that the problem is on my end. I haven’t tried a clean reinstall yet, which probably should have been my first step. I’ll do that and report back.

Can confirm OPs issue:
CachyOS 7.2.9-1
Desktop Environment: KDE Plasma 6.7.5
Window Manager: KWin (Wayland)
RTX 5070 Ti
9950X3D
64GB DDR5

Images showing the difference can be found on imgur with album id ihKU8kd

That all said, with the bug - Orgrimmar looks AMAZING at night. It took me a full day to realize this was a bug and not a really really awesome improvement you guys implemented lol.

Can also confirm the xid 109 issue is fixed. Both on Windows and Linux I’m running game at 10 and getting 160 FPS sustained (deliberately capped @ 160)

I found knocking secondary lighting to fair, then bumping back up to high fixed the issue for me. You must do this after entering the world, while the game is running. My mistake was changing the settings straight from the conf file after closing the game.

Based on GPU performance, I have reason to believe secondary lighting on high is in fact working after doing this.

Will update my post in its entirety shortly.

I also observed this, however, I have good news - I was able to isolate this bug to a single setting and found it applies on both Linux and Windows. Let me know if this fixes it for you because it would be an interesting coincidence that both of us on CachyOS had the setting and I could reproduce the bug on Windows afterwards.

In your Config.wtf (World of Warcraft/classic_beta/WTF/)
change RAIDgiQuality to 3

SET RAIDgiQuality “3”

1 Like

Actually after reviewing this issue: [Bug] Forever Beta 69977 repeatedly freezes with Error #109 on Windows - #9 by BrownBadger-3470954

It might be better to set RAIDgiQuality to 1 instead of 3 until Blizz fixes it, since nobody is raiding and it might start causing stuttering at setting 3.

1 Like

Confirmed, thank you: RAIDgiQuality “0” was the whole thing!

1 Like