protonscr

Fallout New Vegas - Depth-as-texture Usage Regression

dxvkclosed d3d9windows
doitsujin/dxvk#5665 · opened 2026-05-30 by WallSoGB · updated 2026-06-01 · 3 comments · github
WWallSoGB 2026-05-30 github

While updating Depth Resolve mod for Fallout: New Vegas, during testing I've noticed that depth-based fade added by Vanilla Plus Particles does not work on DXVK 2.7.0 and newer.

In previous/current versions of the mod, depth resolve happened twice a frame, during world render (pre/post water draw).
After I added 3rd resolve, which happens during viewmodel pass, particles (rendered before - during world pass!) no longer render their fade, effectively reverting to the vanilla state.

Rarely, under certain angles, particles flicker, briefly showing correct output. Looks similar to renderstate leaks, but after RenderDoc inspections, everything seemed fine.

Depth buffer itself gets resolved correctly into the INTZ texture, as the SSAO shader renders properly (sanity checked with RenderDoc).

I've verified the D3D9 behavior on both Nvidia and Intel drivers. No issues there.

Additionally, my friend checked on Mesa RADV 26.1.0 with DXVK 2.7.1 (Github release), and the effect works correctly on their system.


DXVK 2.6.2 and D3D9 look like this:
Image
DXVK 2.7.0 and newer look like this:
Image

While debugging the issue in RenderDoc, I've noticed that while the vkCmdDrawIndexed of each particle renders properly (with smooth depth-based fade!), the next one (of unrelated geometry) retroactively breaks it and causes "UNDEFINED IMG" in place where particle alpha has been.

Image

I narrowed it down to commit b698114.

Reverting m_state.depthStencil->GetDepthStencilView(!readOnly); to m_state.depthStencil->GetDepthStencilView(depthWrite); restores proper visuals.


Software information

Fallout: New Vegas, modded. Affected mods:

System information

  • GPU: GTX 1060 6GB
  • Driver: 582.53
  • Wine version: N/A (Windows 11)
  • DXVK version: 2.7.0, 2.7.1

Intel GPU is too old to support 2.7.0+

Apitrace file(s)

Log files

Please attach Proton or Wine logs as a text file:

Ddoitsujin maintainer 2026-06-01 github

Confirmed backend bug, somehow the tracking for the resolved depth buffer isn't working so we discard it before it is read, while simultaneously binding it as a resolve attachment in the same render pass.

I hate all this stupidly over-complicated resolve logic that only exists because of tilers.

Ddoitsujin maintainer 2026-06-01 github
WWallSoGB 2026-06-01 github

Can confirm it's fixed. Thanks.

Upstream links