Repository navigation
ForceAutoHDR.Net 0.1.0
Windows Auto HDR, per game, without the Settings app — a C# rewrite of
7gxycn08/ForceAutoHDR on .NET 10 and Native AOT.
First release.
What it does
One window, one row per configured game, two switches:
- Auto HDR — the per-game switch from Settings, buried three clicks deep there and one game at
a time. Turning it off writes an explicit "disabled"; the remove button leaves the game
unconfigured instead, which is a different thing. - Force — the undocumented
D3DBehaviorsoverride, which upgrades the game's swapchain to
10-bit so Auto HDR engages for titles Windows will not offer it for. It matches on the
executable's file name, so flipping it on one row updates every other row with the same
executable, right there in the list.
Add game does not ask you to go hunting for an executable. It lists what Windows has already
seen rendering, newest first, with the date each game last ran. That matters: a launcher-fronted
game renders from a different executable than the one the store starts, and Auto HDR is keyed to
the process that owns the swapchain — pick the wrong one and the toggle gets written while nothing
happens. Detect running game samples the GPU counters for whatever is drawing right now, which
is the answer for a game Windows never recorded, and there is a Browse… escape hatch.
Configured games that are no longer installed can be dropped in one go. Only the per-app preference
goes; any Force override stays, because it matches by file name and a second install of the same
game may still be relying on it.
Both mechanisms take effect the next time the game starts, so there is no Apply button — neither of
them is transactional.
Requirements
Windows 11 22H2 or newer, x64. No installer and nothing to install alongside it: the build is
unpackaged and self-contained. No elevation prompt either — everything it touches lives under
HKCU.
Install
Unpack the zip anywhere and run ForceAutoHDR.exe. The build is not code-signed, so SmartScreen
will warn the first time.
Verify the download:
(Get-FileHash ForceAutoHDR-0.1.0-win-x64.zip -Algorithm SHA256).Hash
# 39269B973EF523E61619896F7DB44CC8D9B83CA37A58D36B2123042989046157Worth knowing
- Games are found by what actually rendered rather than by any manifest, so the occasional Electron
app turns up in the add list. That is a checkbox to leave unticked, not something the tool should
silently filter. - Game Bar matches games against a list Microsoft ships, not against everything it sees. A title it
has never recorded shows up only through Detect running game or Browse…; Win+G → Settings
→ General → "Remember this is a game" fixes it at the source. - One
Forceoverride can drive several games at once — two installs of the same title, or two
unrelated games that both shipLauncher.exe. The list reports that honestly instead of merging
it away. - Windows writes flags of its own into the same registry values. They are round-tripped untouched,
down to ordering and key casing.
The build
.NET 10, WinUI 3 on Windows App SDK 2.4, Native AOT, unpackaged and self-contained: 18.8 MB zipped,
30 files and roughly 50 MB unpacked. Built by GitHub Actions from the v0.1.0 tag. What this stack
cost to learn along the way is written down in
notes/.
MIT. The registry mechanisms were established by
ledoge/autohdr_force and documented by Rafael Rivera; no
code was taken from either tool.