Releases: charlie754/Game-Optimizer-CPUs-Threads-Optimizer
Release list
v0.3.2 — Add mask… from the dropdown, and three false claims removed from the docs
Create a mask without leaving the page you are on.
⚠️ Not yet code-signed — and v0.3.1 said this one would bev0.3.1's notes said the next patch would ship code-signed. This is that patch, and the
certificate is not in place yet, so it is not signed. Saying so here rather than quietly
letting the earlier note stand.Signing has been chosen — SignPath Foundation, which is free for open-source projects — and
is being set up. It is not in place yet, and the release that carries it is the one to wait
for if you would rather not deal with the warning below. Nothing else
about the situation has changed since v0.3.1, and this build has the same standing as that
one: Windows may quarantine it.Why it happens, measured on one machine with the same engine and the same definition
version within a single hour: an older build scanned clean, a build that had been flagged
earlier the same day scanned clean again — its verdict had reverted on its own — and the
freshly published one was flagged. No definitions changed between those scans. The verdict
is cloud-delivered and it moves. Windows judges every brand-new, rarely-seen, unsigned file
on its own, and Microsoft documents that unsigned files start from zero reputation on every
new version, so nothing an older build earned carries over.Verify what you downloaded against the hashes at the bottom before trusting it — hash
the zip, or the loose exe if that is all you kept. If the hash matches and Windows still
quarantines it, that is a false positive on this build. Restoring it from quarantine is your
call to make with that information; this project is not going to tell you to switch your
antivirus off, add an exclusion, or ignore a warning.You can also report it at https://www.microsoft.com/en-us/wdsi/filesubmission — choose
"incorrectly detected" and set the priority to Medium; expect a few days, and a review is
not a promise. Please also open an issue here with the detection name and the date.What was seen on v0.3.1, kept here because this release supersedes it: the detection
name wasProgram:Win32/Contebrew.A!ml, severity High, category "Settings Modifier". The
three-verdict measurement above used engine 1.1.26080.3 and definition version
1.457.447.0 throughout — v0.2.0 clean, an older flagged build clean again, v0.3.1 flagged.Why a scanner scores this app at all, stated plainly: it enumerates processes, opens
the game's process to set its CPU Sets, controls one AMD service when you ask it to,
writes a Start-with-Windows entry when you ask for one, and briefly runs an elevated copy
of itself for the one action that needs administrator rights. All of it is in this
repository.If it was quarantined: Windows also deletes the Start-with-Windows entry it finds, so
switch "Start with Windows" back on in Settings afterwards.
Add mask… where you actually need it
"Add mask…" is now an entry in the mask dropdowns on the Profiles page, at the bottom of the
list, in both Game mask and Heavy apps mask. Choosing it asks for a name, copies the mask
you were looking at, and selects the new one — the same thing the button on the Core map page
does, without going there.
- Cancel the prompt, pick a name that already exists, or pick a reserved one, and your previous
selection comes back. The entry is never left selected. - It works from the keyboard as well as the mouse.
- The Core map page keeps its Add mask… and Remove mask buttons; nothing moved away from
there.
A mask cannot be named "Add mask..." — that name is now refused, so nothing in the list can
impersonate the action.
Also in this release
Everything from v0.3.1, which was public for barely an hour:
- Named custom masks on the Core map — Add mask… and Remove mask. Removal refuses while a
profile still uses the mask and tells you which profiles; an empty selection is rejected at edit
time, because an empty CPU Set list is how this app clears an assignment rather than applying
one. - Custom masks survive a topology change. The re-derive merges instead of overwriting and tells
you how many of yours were kept — their processor numbers may mean different cores afterwards,
so check them. - Names the app derives on its own —
All,Cache,Freq,CCD0and so on,P-cores,
E-cores, and theno SMTform of each — are reserved on every machine, not only one that
has that hardware today, so a config carried to a new CPU cannot collide with a detected mask.
Existing configurations are untouched: the rule applies when you create a mask, never when one
is loaded. - The README's "If Windows Defender flags it" section.
Verify your download
certutil -hashfile GameOptimizer-v0.3.2-x64.zip SHA256
certutil -hashfile GameOptimizer.exe SHA256
| file | SHA256 |
|---|---|
GameOptimizer-v0.3.2-x64.zip |
8F8D30CB47B9A89CBFF338375D856E869D9EE9C51A24E6723CF87F537A575CC0 |
GameOptimizer.exe (inside the zip) |
39FDD42D257D801DF41381A70C46BD58B809F0E1CB67DA25C31FD8BD68A25A26 |
Notes
- Requires Windows 10/11 x64. Unzip and keep
WebView2Loader.dllbesideGameOptimizer.exe. - Building from source gives you a binary you compiled yourself; it will not be byte-identical to
this one.
v0.3.1 — custom Core map masks, and a straight answer about Defender
⚠️ Superseded by v0.3.2 — and Windows Defender may quarantine this buildSince publishing, Defender has flagged this exact build as
Program:Win32/Contebrew.A!ml
on at least one machine. It is a false positive.This note originally said the next patch would ship code-signed. It is not signed yet —
the certificate is not in place — so rather than leave a promise standing that the next
release did not keep, it is corrected here. Signing is still the fix and is still coming;
the release that carries it is the one to wait for.Use v0.3.2 instead of this build. It supersedes v0.3.1 and repeats the detection details
and the recovery step below.What that detection name means: the
!mlsuffix is a machine-learning verdict — no analyst
looked at the file — and Microsoft's own page for that name carries a generic template with
"Technical details are currently not available."Why it hits this release and not the previous one, measured on one machine with the same
engine and the same definition version (1.457.447.0) within the same hour:
build offline scan result v0.2.0 no threats found an older development build, flagged earlier the same day no threats found — that earlier verdict had already reverted on its own v0.3.1 flagged No definitions changed between those scans. The verdict is cloud-delivered and it moves:
Windows judges every brand-new, rarely-seen, unsigned file on its own, and a fresh release
is exactly that. An older build having been cleared once does not carry over to a new one —
Microsoft documents that unsigned files start from zero reputation on every version.What you can do: verify the hashes below against your download before trusting it. If
Defender quarantines it anyway and the hash matches, restoring it from quarantine is your
call to make with that information — this project is not going to tell you to switch your
antivirus off, add an exclusion, or ignore a warning. If you would rather wait, the signed
build is the release to wait for.Reporting it to Microsoft yourself is also an option, at
https://www.microsoft.com/en-us/wdsi/filesubmission — choose "incorrectly detected" and set
the priority to Medium.
Named custom masks on the Core map, and a straight answer about Windows Defender.
Custom masks
The Core map page gains Add mask… and Remove mask beside Reset to detected.
- A new mask starts as a copy of the mask you are editing, under a name you choose. An empty mask is not a useful starting point, and an empty CPU Set id list is how this app clears an assignment rather than applying one.
- Remove mask refuses while a profile still uses the mask, and tells you which profiles. Point them somewhere else first.
- Emptying a mask on the map is rejected at edit time, for the same reason: a mask must keep at least one processor.
- Custom masks now survive a topology change. The re-derive that runs when your CPU layout changes merges instead of overwriting, and the message box tells you how many of your masks were kept — their processor numbers may mean different cores afterwards, so check them.
- Names the app derives on its own —
All,Cache,Freq,CCD0and so on,P-cores,E-cores, and theno SMTform of each — are reserved on every machine, not just one that happens to have that hardware today. A config you carry to a new CPU cannot collide with a freshly detected mask.
Existing configurations are untouched: the rule applies when you create a mask, never when one is loaded.
If Windows Defender flags it
Some machines have shown a "Threat blocked" toast for a Game Optimizer build. The README now has a section explaining it, and it is worth reading before you decide what to do.
Short version: the exe is unsigned, it is new, few machines have seen it, and it does things a scanner scores — it enumerates processes, opens the game's process to set its CPU Sets, controls one AMD service when you ask, writes a Start-with-Windows entry when you ask, and briefly elevates a copy of itself for the one action that needs administrator rights. All of that is in this repository.
Verify what you downloaded. Both hashes below are of the files in this release. If you unpacked the zip and kept only the exe, hash the exe:
certutil -hashfile GameOptimizer-v0.3.1-x64.zip SHA256
certutil -hashfile GameOptimizer.exe SHA256
| file | SHA256 |
|---|---|
GameOptimizer-v0.3.1-x64.zip |
A3B177F0091C6B4EFB1B066D6C37E95F7A2EB6D01E55A3E06D9AD15F34F15985 |
GameOptimizer.exe (inside the zip) |
899BC12A96D25E662DD096118B84322A24BCFAA195FEE34A300FE9499CC23BE2 |
If the hash matches and Defender still quarantines it, that is a false positive on this build. You can report it at https://www.microsoft.com/en-us/wdsi/filesubmission — choose "incorrectly detected" and set the priority to Medium; expect a few days, and note a review is not a promise. Please also open an issue here with the detection name and date.
Defender's clean-up also deletes the Start-with-Windows entry it finds, so switch it back on in Settings afterwards.
Nothing here asks you to add an exclusion or turn Defender off.
Notes
- This build is not code-signed, so SmartScreen will still say the publisher is unknown, and reputation starts from zero for every unsigned release. Signing has been chosen - SignPath Foundation, free for open-source projects - and is being set up. It is the real fix for the detection above and it is not in place yet.
- Building from source gives you a binary you compiled yourself; it will not be byte-identical to this one.
- Requires Windows 10/11 x64. Unzip and keep
WebView2Loader.dllbesideGameOptimizer.exe.
v0.2.0 — stop the optimizer, don't disable the driver
Stop AMD's 3D V-Cache optimizer instead of disabling its driver
AMD's optimizer is three components, and only one of them decides anything:
| component | what it does |
|---|---|
amd3dvcacheSvc |
a Windows service — launches the agent below, nothing else |
amd3dvcacheUser.exe |
a background process, not a service — watches which window has focus and picks a CCD |
amd3dvcache |
a kernel driver — relays that one choice to firmware |
Stopping the service stops the agent immediately. No restart, and no change to the kernel driver.
What changed
- Settings now has "Stop AMD's 3D V-Cache optimizer". Ticking it disables and stops the service; clearing it restores AMD's own default (Automatic) and starts it again. The checkbox reads the live machine, never a stored setting.
- The startup warning's button does the same thing. It previously disabled the kernel driver as well and asked you to restart — it no longer touches the driver at all.
- The startup warning now fires on the agent, not on the service or driver. The old rule fired on essentially every X3D machine whether or not anything was steering.
- The environment panel no longer reports the kernel driver. It is loaded by Plug and Play and runs whether or not the service does, so seeing it "Running" next to a stopped service looked like a failed stop when nothing was wrong.
- If you used the old disable feature, a restore control appears so your driver's original startup setting can be put back.
Fixes
- The app no longer disables a kernel driver from a button that offered to stop an optimizer.
- Removed a message claiming a restart was required; stopping the service takes effect at once.
WebView2Loader.dlland the WebView2 licence files ship in the package again. Without the loader beside the exe the sponsor strip silently falls back to a plain drawing.- The manifest's version now matches the version resource. It had read
1.0.0.0since before the first release.
Notes
Windows Game Mode and any BIOS CCD-parking option are separate from all of this and are not changed by the app.
Gate: 902 unit tests, all passing.
v0.1.0 — first public build
First public build. Pre-release — read this page before running it on anything you care about.
Game Optimizer gives a game one part of your CPU and pushes background programs onto the rest,
using Windows CPU Sets. It does that per game, only while the game is running, and it never
touches SetProcessAffinityMask.
Before you download
The exe is not code-signed. SmartScreen will warn on first run, and the app's one optional
elevated action shows a UAC prompt reading "Unknown publisher". Both have the same cause: there
is no certificate. The README explains what to expect and how to check the file. If that is not
acceptable to you, build from source instead — it needs only MSVC Build Tools and a Windows 10 SDK.
Unblock the zip before extracting, or Windows marks the exe. Right-click the zip → Properties →
tick Unblock → OK.
Whether it will help you
The app classifies your CPU on first run and tells you which case you are in. Briefly:
- A real split on CPUs Windows reports with more than one core type, or with two or more
last-level-cache domains — Intel hybrid parts, and AMD parts with more than one chiplet. - Very little on a single cache domain, which is most CPUs. There it can only give the game one
thread per physical core, and on a CPU without SMT it does nothing at all.
Run it and read the first-run screen; that is the authoritative answer for your machine.
What has and has not been verified
Verified on this release:
- Gate A: builds clean, 758 tests pass, and the affinity-mask ban is checked in the built binary's
import table with a positive control. - Gate B: end-to-end against the live OS, measuring placement by sampling which processors a
governed process actually runs on — reading an assignment back is not treated as evidence,
because Windows will happily confirm an assignment it then ignores. - Exits cleanly. Every build before this one access-violated on exit, on every close, silently.
That is fixed and confirmed against a control build that still crashes.
Not verified, and stated rather than omitted:
- Anti-cheat. Some protected games deny access to their processes; the app shows
ACCESS DENIED
when that happens and changes nothing. It has not been tested broadly against anti-cheat systems. - Machines with more than 64 logical processors, and Windows on Arm. Untested, not unsupported.
- The optional AMD 3D V-Cache setting has not been exercised end to end.
If you use the AMD 3D V-Cache setting
It disables an AMD driver and needs a restart. Turn it off before uninstalling. The record of
your driver's original value lives in the app's settings folder, so deleting that folder first
leaves the driver disabled with nothing left to restore it. The app shows the recorded value on
screen so you can write it down.
Contents
GameOptimizer.exe, WebView2Loader.dll, LICENSE, NOTICE.md, README.md, and Microsoft's
licence and notices for the loader. No installer, no service, no driver. Nothing is written outside
your user profile unless you turn on the V-Cache setting.
To remove it: exit from the tray icon, delete the folder you unzipped, and delete
%LOCALAPPDATA%\GameOptimizer\ if you want the settings gone too.
Gate results for this build
GATE_A1=PASS build ok, exe newer than every source
GATE_A2=PASS SetProcessAffinityMask not imported; positive control present
TOTAL 758 PASSED 758 FAILED 0
=== GATE A RESULT: FAIL=0 ===
GATE_B1 PLACEMENT PASS
GATE_B2 CHILD INHERITANCE PASS
GATE_B3 CRASH RECOVERY PASS
GATE_B4 NO RESIDUE PASS
GATE_B TOTAL 4 PASSED 4 FAILED 0
GameOptimizer.exe SHA256 53FFB3727E5957D92E3A9CC0D8140BAA635831C30E08468E29B74FBFDBD8965D