Skip to content

Releases: charlie754/Game-Optimizer-CPUs-Threads-Optimizer

v0.3.2 — Add mask… from the dropdown, and three false claims removed from the docs

Choose a tag to compare

@charlie754 charlie754 released this 02 Sep 06:32

Create a mask without leaving the page you are on.

⚠️ Not yet code-signed — and v0.3.1 said this one would be

v0.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 was Program: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, CCD0 and so on, P-cores,
    E-cores, and the no SMT form 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.dll beside GameOptimizer.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

Choose a tag to compare

@charlie754 charlie754 released this 02 Sep 04:47

⚠️ Superseded by v0.3.2 — and Windows Defender may quarantine this build

Since 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 !ml suffix 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, CCD0 and so on, P-cores, E-cores, and the no SMT form 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.dll beside GameOptimizer.exe.

v0.2.0 — stop the optimizer, don't disable the driver

Choose a tag to compare

@charlie754 charlie754 released this 31 Aug 20:57

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.dll and 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.0 since 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

Choose a tag to compare

@charlie754 charlie754 released this 30 Aug 22:37

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