protonscr

Empire Earth 2: washed-out / too-dark fixed-function rendering since 3.0 - bisected to f572c58d ("Add more exhaustive check for FFPS texture usage")

dxvkclosed needs more info
doitsujin/dxvk#5730 · opened 2026-06-25 by HerMajestyDrMona · updated 2026-06-26 · 3 comments · github
1 matching comments, n / p to jump
HHerMajestyDrMona 2026-06-25 github

Since DXVK 3.0, the scene renders too dark / washed-out, as if overall brightness/lighting is reduced. I bisected it to a single d3d9 fixed-function commit (details below). Before/after screenshots attached.

Software information

Empire Earth 2 (2005, Direct3D 8). Retail game with Unofficial Patch 1.6. Default in-game graphics settings. DXVK provides the D3D8→D3D9 translation (DXVK's own d3d8.dll + d3d9.dll).

Symptom: the whole scene is noticeably darker with washed-out colors compared to normal (the game is normally bright). Terrain is the most affected; units look roughly normal. Nothing is missing - geometry and textures are all present - only the overall brightness/lighting/color is wrong. See before/after screenshots.

Regression - bisected:

  • Last good commit: d4359489 ([dxvk] Disable HVV usage if zeroMappedMemory option is set)
  • First bad commit: f572c58d ([d3d9] Add more exhaustive check for FFPS texture usage)
Image Image

Reverting f572c58d plus the three follow-ups built on it — a336e57b, 016af1cc, a4653815 — fully restores correct brightness on current master / 3.0. The new GetTextureStageStateFlags() / usedArgMask logic in d3d9_device.cpp appears to treat a texture stage that contributes to the final color as unused and prune it, dimming the output. This is stock DXVK d3d9 fixed-function code, reproducible with the official 3.0 d3d8.dll+d3d9.dll dropped next to EE2.exe.

System information

  • GPU: NVIDIA GeForce RTX 5070 Ti
  • Driver: NVIDIA 610.62.0
  • Wine version: N/A - native Windows (no Wine/Proton)
  • DXVK version: 3.0 (commit 97fe0c66)

Log files

Note: the regression is silent in the log - no related errors/warnings. The log is identical between the broken (3.0) and fixed (3.0 + revert) builds apart from the version string (same device, driver, extensions, features, formats). The only d3d8 warnings are pre-existing/unrelated: D3DRS_LINEPATTERN and D3DRS_PATCHSEGMENTS reported unimplemented (legacy no-op render states). The screenshots are the primary evidence.

EE2_VULKAN_d3d9.log

Ddoitsujin maintainer 2026-06-26 github

Really need an apitrace, especially since there's mods involved.

Edit: Or at least some info on how to actually reproduce the bug in game. Would be far more useful than all the LLM drivel.

Ddoitsujin maintainer 2026-06-26 github

Game looks identical on 3.0 and 2.7.1 here. 🤷

HHerMajestyDrMona 2026-06-26 github

@doitsujin Thank you for your response.

I tested on the vanilla (unpatched) release with the same results.
The only difference is that when I'm not loading a heavy game save, then the problem occurs until I select a city center in game.

I recorded apitrace of the vanilla version, hopefully it's correct:
https://patch.ee2.eu/patch15-other/EE2-apitrace.trace

And here is the video showing how it looks with the newest DXVK release:

https://github.com/user-attachments/assets/7f1b10ad-1e73-42a9-b838-b0795dc39347

Claude made the patch for me that fixes it on the newest version by reverting these commits:
revert-ffps-texture-usage.patch

DLLs