Skip to content

ForceAutoHDR.Net 0.1.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 11:33
· 12 commits to main since this release

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 D3DBehaviors override, 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
# 39269B973EF523E61619896F7DB44CC8D9B83CA37A58D36B2123042989046157

Worth 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 Force override can drive several games at once — two installs of the same title, or two
    unrelated games that both ship Launcher.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.