Repository navigation
Releases: Phoenix-/ForceAutoHDR.Net
Release list
ForceAutoHDR.Net 1.0.0
Feature complete, and the first release you install rather than unzip.
Windows decides on its own which games get Auto HDR, and the per-game switch is buried three
clicks deep in Settings — one game at a time, with no list of what you have already configured.
This puts all of it in one window.
What it does
- One row per configured game, with two independent switches on each.
- Auto HDR — the same per-game switch the Settings page writes. Turning it off writes an
explicit "disabled"; removing the entry entirely is a separate button, because those are two
different states and tools that conflate them will confuse you later. - Force — the undocumented
D3DBehaviorsoverride, which pushes the D3D swapchain to 10-bit
so Auto HDR engages for titles Windows will not offer it for. It matches on file name rather
than path, so flipping it on one row updates every other row with the same executable, in place,
where you can see it happen. - It finds your games itself. Not by enumerating Steam or Epic: launcher-fronted games render
from a different executable than the one the store starts, which is how you end up toggling
Launcher.exeand wondering why nothing changed. It reads what Windows actually observed
rendering, what is already configured, and — for anything Windows never recorded — what is
drawing on the GPU right now. - Add game lists what has been seen running, newest first, instead of asking you to go hunting
through Program Files. There is a Browse… escape hatch if you need it. - Offers to clean up entries left behind by games you have uninstalled. Only the per-app
preference goes; aForceoverride stays, because it matches on file name and a second install
of the same game may still rely on it. - Never asks for admin. Both mechanisms are strings under
HKCU. Nothing here needs
elevation, at install time or after.
A C# rewrite of 7gxycn08/ForceAutoHDR on .NET 10 and
Native AOT.
Install
With winget, which is the short way and skips the SmartScreen warning described below:
winget install MikhailKazakov.ForceAutoHDRNet
Or by hand, from the assets on this release:
ForceAutoHDR-1.0.0-win-x64.msi — the one winget installs. For your user alone: a Start Menu
entry, a row in Add/Remove Programs to uninstall from, and no elevation prompt.
ForceAutoHDR-1.0.0-win-x64.zip — the same build with nothing around it. Unpack it anywhere,
run ForceAutoHDR.exe, delete the folder when you are done with it.
Windows 11 22H2 or newer, x64. Native AOT and self-contained either way: no .NET runtime to
install first, no Windows App SDK either.
About the SmartScreen warning
Installing through winget avoids this entirely: the community repository is a trusted
source, so the client verifies the hash and runs the installer without the reputation check.
If you download by hand, though, neither file is code-signed, and Windows will say so the
first time you run one — "Windows
protected your PC", with the button you want hidden behind More info. If you would rather
check the file than trust a dialog, a .sha256 sits next to each download:
Get-FileHash ForceAutoHDR-1.0.0-win-x64.msi -Algorithm SHA256Since 0.1.0
Nothing in the app itself — the binary does what 0.1.0's did. What is new is the packaging: a
per-user MSI, and the winget package, accepted into the community repository on 25 October 2026
after a long wait in the review queue — winget install MikhailKazakov.ForceAutoHDRNet.
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.