protonscr

Fallout: New Vegas HDR effect is too aggressive on NVidia

dxvkclosed d3d9not our bug
doitsujin/dxvk#4696 · opened 2025-02-19 by Sid127 · updated 2025-02-21 · 7 comments · github
1 matching comments, n / p to jump
SSid127 2025-02-19 github

Software information

Fallout: New Vegas, max settings, 1440p

System information

  • GPU: NVIDIA GeForce RTX 3070
  • Driver: 570.86.16
  • Wine version: Proton Experimental

Bug information

This is simply an investigative report on https://github.com/ValveSoftware/Proton/issues/356#issuecomment-2665797622 filed by @pr0statitis

  • On current Proton Experimental, it was found that the HDR effect in the game was too aggressive in changing the bloom.
  • Replacing DXVK by tagged versions, it was found that this was introduced by commit 3128f4ea8e90a2053d420c0c78235c8befb718f5
  • The issue was effectively worked around with the use of PROTON_DISABLE_NVAPI=1, and PROTON_HIDE_NVIDIA_GPU=1, and d3d9.customVendorId = 1002, but not dxgi.hideNvidiaGpu=True (only one of those is required)
  • I was also able to reproduce the issue on unmodified Proton 8.0-5, the "working" version in the original report, with PROTON_ENABLE_NVAPI=1
  • On current Proton Experimental, the issue was also reproducible with dxvk-nvapi v0.5. I didn't test prior versions.

Attachments

Proton Log with DXVK_NVAPI_LOG_LEVEL=trace: steam-22380.log
save file + apitraces, one with nvapi, one without: https://cloud.sidonthe.net/s/dxvk4696

BBlisto91 2025-02-19 github

Thanks for the help

Ppr0statitis 2025-02-19 github

I appreciate you investigating this further!

Any idea why this could be happening on my main rig but not on the Steam Deck, despite the same Proton version? Nvidia vs. AMD GPU?

BBlisto91 2025-02-19 github

It seems like nvapi is involved in the issue which is a Nvidia thing yea.

KK0bin maintainer 2025-02-21 github

I am pretty sure there isn't a bug here. The game just decides to use a different shader to do the HDR calculation when it detects an Nvidia GPU. There's no indication that we do anything wrong here, the game just does it differently but it should look the same when you play it on Windows on an Nvidia GPU.

Ppr0statitis 2025-02-21 github

I have played New Vegas on Windows for over 10 years, always on Nvidia cards and I can assure you it doesn't do that on Windows.

KK0bin maintainer 2025-02-21 github

Okay I figured it out.

We're hitting a different implementation for HDR that was meant as an optimization for SLI.

SLI (multiple Nvidia GPUs in one system) uses alternate frame rendering, so one GPU renders one frame and the other one already starts rendering the next frame even before the first GPU is done. (Alternate frame rendering, AFR)

The regular HDR implementation of Fallout New Vegas uses the 1x1 HDR downscale result of the previous frame. This would basically break AFR. So they added a different implementation of HDR that does not use the result of the previous frame and that gets used when the game detects SLI. It seems like their SLI check isn't all that robust though since the values dxvk-nvapi returns basically match what should be returned from single GPU systems.

Ppr0statitis 2025-02-21 github

Thank you so much @K0bin
The same issue happens in Fallout 3 as well (I checked today). But since they're basically the same game under the hood it's not all that surprising.

Proton versions

Launch options

Upstream links