Game-Optimizer-CPUs-Threads-Optimizer README

The project's README from github.com/charlie754/Game-Optimizer-CPUs-Threads-Optimizer. As one markdown file: README.md.

Game Optimizer

CPU threads optimizer.

Game Optimizer in use

Per-game CPU Set isolation for split-topology CPUs — the isolation of BIOS "Turbo Game Mode", applied only to the game you chose, and only while it is running.

Please turn off

On a dual-CCD AMD part (7950X3D, 7900X3D, 9950X3D) one CCD carries 3D V-Cache and the other clocks higher. Some games run better pinned to the cache CCD with nothing else on it. The existing ways to arrange that — a BIOS game mode, or letting Windows and AMD's driver decide — are session-wide: they cost you half the machine for Discord, OBS, browsers and compilers too.

Game Optimizer applies the isolation to one process tree, keeps the other CCD free for everything else, and clears every mask the moment the game exits.

Runs on: Windows 10 or 11, x64. The manifest declares no older Windows, and there is no 32-bit or ARM build.

Which CPUs this helps

The app works this out for itself. On first run it asks Windows for the machine's core and cache layout, classifies it, and tells you on screen which of the cases below you are in, along with a confidence level and a map of which logical processors are in each group. There is no list of CPU models anywhere in the app — the decision comes from what Windows reports, so nothing here goes stale. Run it and read the first-run screen; that answer is authoritative for your machine and this table is only a guide. The first matching row wins, so a machine reporting more than one core type is classified by core type and never by cache size.

What Windows reports Shown as Masks you get How much it helps
More than one distinct efficiency class Intel hybrid (P/E cores) P-cores, E-cores, All, plus no SMT variants where they differ A real split. Game on P-cores, background apps on E-cores. High confidence
Two or more last-level-cache domains, sizes differ AMD asymmetric cache (X3D) Cache, Freq, Freq 2, …, All A real split. Game on the largest-L3 domain, background apps on the rest. High confidence
Two or more last-level-cache domains, same size Multi-CCD symmetric CCD0, CCD1, …, All A real split, but which domain gets called CCD0 is an ordering choice, not a measurement. Medium confidence — check the core map
Exactly one last-level-cache domain Single cache domain All, and All no SMT if the CPU has SMT Very little. There is no second group to move background work onto
No cache domains reported at all Unknown the same as a single domain Very little, and the first-run screen says so

Most CPUs are a single cache domain, and on those this app can only give the game one thread per physical core. That is the whole of it — no isolated cores, no background separation. If the CPU has no SMT either, All no SMT is not offered at all, both defaults fall back to All — every processor — and the app changes nothing on that machine.

The multi-domain cases are the ones worth installing for: parts such as AMD's dual-chiplet X3D desktop processors, where 3D V-Cache sits on one chiplet only, and Intel's hybrid parts with both performance and efficient cores. Those are examples rather than a specification — a single-chiplet X3D part is one cache domain, some chips in Intel's hybrid generations ship with no efficient cores at all, and a dual-chiplet part with V-Cache on both chiplets reports two equal domains and lands in the symmetric row instead. The group names borrow vendor vocabulary but the tests do not: no branch anywhere checks who made the CPU, so any processor Windows reports with two efficiency classes is shown under the Intel name whoever built it.

If Windows cannot describe the topology at all, the app says so at startup and governs nothing — that is a failure to detect, not the Unknown row above.

Two things are untested rather than unsupported. Machines with more than 64 logical processors, which Windows splits across several processor groups, have never been run: the masks are CPU Set Ids, which are not scoped to a processor group, so this is expected to work, but expected is not measured. Windows on Arm has never been run either — there is no Arm64 build, and while Windows 11 on Arm emulates x64 applications, nobody has checked what topology this app sees under emulation.

Example CPUs by class

These are examples, not a compatibility list — the app reads your machine's topology at first run, and that screen is the authoritative answer for your CPU.

Intel hybrid (P/E cores)

🔴 Trap — a hybrid generation is not a hybrid CPU. Plenty of 12th–14th gen parts ship with zero E-cores and land in the single cache domain row instead: i5-12400, i3-12100, i3-12300, i3-13100, i3-14100, Pentium Gold G7400, Celeron G6900. Generation name tells you nothing.

AMD asymmetric cache (X3D)

Two chiplets, 3D V-Cache stacked on one of them. This is the layout the app exists for.

🔴 Trap — most X3D parts are not in this row. Single-chiplet X3D CPUs have one cache domain and nothing to steer between: 9800X3D, 9850X3D, 7800X3D, 5800X3D, 5700X3D, 5600X3D. The X3D name says cache, not asymmetry.

🔴 Trap — the 9950X3D2 Dual Edition is not here either. V-Cache sits under both chiplets, 96 MB each, so it is Multi-CCD symmetric.

Multi-CCD symmetric

Zen 2 and earlier split each die into two four-core complexes with their own L3, so a cache domain there is four cores, not eight. The 3700X has one chiplet and two domains; the 2700X has no chiplets at all and still has two. Confining a game to one of those domains gives it four cores.

Single cache domain

One cache domain means there is nothing to steer between. The app will say so rather than pretend otherwise.

Status

Pre-release. Read what has actually been tested before using this on anything you care about.

Anti-cheat has not been tested

No anti-cheat has been tested with this app by anyone, anywhere in this work. No game was running during any measurement.

Game Optimizer requests the minimum access rights (PROCESS_SET_LIMITED_INFORMATION | PROCESS_QUERY_LIMITED_INFORMATION), never reads or writes game memory, and never injects anything — but that is a design intention, not a vendor assurance. BattlEye's FAQ notes they may kick (not ban) players for using third-party programs; that outcome cannot be prevented or detected by this app.

Use it on anti-cheat-protected titles at your own risk.

What is in this download

Eight files. There is no installer, and the app installs no service and no driver. Nothing is written outside your user profile unless you turn on the AMD 3D V-Cache setting, which writes one registry value for AMD's own driver and service.

File What it is
GameOptimizer.exe The app. Double-click this one.
WebView2Loader.dll Microsoft's WebView2 loader. Keep it in the same folder as the exe — that is the first place the app looks for it. It is optional: without it the Settings window draws its sponsor strip with GDI instead and nothing else changes.
README.md This file.
LICENSE MIT, for Game Optimizer itself.
NOTICE.md What is bundled, where it came from, and what is not third-party.
third_party\webview2\LICENSE.txt Microsoft's licence for the loader above.
third_party\webview2\NOTICE.txt Microsoft's notices for the same.
third_party\webview2\README.md Which SDK package version that loader came from.

The third_party\webview2\ folder is **documentation only** — nothing in it is loaded at run time. To remove Game Optimizer: **if you turned on the AMD 3D V-Cache setting, turn it off first and restart** — that setting disables a driver, and the record of its original value lives in config.ini, so deleting that file first leaves the driver disabled with nothing left to restore it. Then Exit from the tray icon, delete the folder you unzipped, and delete %LOCALAPPDATA%\GameOptimizer\ if you want its settings gone too.

If Windows says the file is blocked, that is the mark-of-the-web that lands on anything downloaded. Right-click the zip before extracting, Properties, tick Unblock, OK, then extract.

Double-clicking it never asks for administrator rights. The manifest requests asInvoker, so launching it raises no UAC prompt. One optional feature does: turning the AMD 3D V-Cache setting on or off launches a short-lived elevated copy of this same exe to write a single registry value, and Windows will ask you to approve it. Because the exe is unsigned, that prompt says "Unknown publisher" for the same reason SmartScreen does.

Build from source

None of this is in the download — it is for the repository at https://github.com/charlie754/Game-Optimizer-CPUs-Threads-Optimizer.

Requires MSVC (Build Tools 2019 or newer) and a Windows 10 SDK. No other dependencies.

tools\build.bat

Produces build\GameOptimizer.exe. Run tools\gate-a.bat for the build + unit-test gate.

Two diagnostic probes report what this machine actually looks like and how it actually behaves; their output is the evidence behind docs\spec\04-measurements.md:

tools\build-probe.bat      && build\topology_probe.exe
tools\build-behaviour.bat  && build\behaviour_probe.exe

Windows SmartScreen on first run

The binary is not code-signed, and no certificate is pending. SignPath Foundation, whose programme is free for open-source projects, declined this project on 3 September 2026 — it asks for established public visibility and sustained activity, and the repository was days old. That is a fair call and they invited a reapplication later.

Two things are worth saying plainly rather than leaving a promise standing. Microsoft's own low-cost signing service restricts individual developers to the United States and Canada, and its organisation list does not cover this author's country. And signing is not an off switch for the detections described below: two of the three verdicts this app has received end in !ml, and machine-learning verdicts fire on signed software too — a Microsoft-signed installer was hit by the sibling detection Wacatac.H!ml. Whether a certificate would have changed these particular detections has not been tested and cannot be tested from here, so this file does not claim it either way. What signing buys that is documented is narrower than it looks — reputation carrying from one release to the next instead of restarting at zero each time.

So there is no signature, and Windows notices.

The first time you run a downloaded GameOptimizer.exe, SmartScreen shows a prompt headed "Windows protected your PC" saying the app is unrecognised. Run anyway is not on it until you click More info:

  1. More info
  2. Run anyway

That is once, for that copy of the file. Nothing here asks you to turn SmartScreen off, add a Defender exclusion, or change any other security setting; none of that is needed to run this.

"Unrecognised" is exactly what it says: no signature and no download reputation. It is not a statement about what is in the file. What this project offers instead of a signature is that the whole source is public and builds with MSVC via tools\build.bat in that repository (not in this zip), so you can read what it does and produce the binary yourself. A copy you compiled locally does not normally carry the downloaded-file marker this check is keyed to, so the prompt is a thing downloaders meet rather than builders.

If Windows Defender flags it

Some machines have shown a Defender toast for a Game Optimizer build - "Trojan:Win32 Cloxer" on an old development build, and "Trojan:Script Wacatac.H!ml" on a user's copy of a release. The "!ml" suffix marks a machine-learning verdict: no analyst looked at the file. The exe is not signed, it is new, few machines have seen it, and it does things a scanner scores as suspicious for a good reason - it enumerates processes, opens the game's process to set its CPU Sets, controls one AMD service on request, writes a Start-with-Windows entry when you ask for one, and relaunches a short-lived elevated copy of itself for the one action that needs administrator rights. None of that is hidden; all of it is in this repository.

What to check before trusting any copy:

  1. Recent releases print two SHA256 hashes in their GitHub release notes, one for the zip and one for the loose exe. Compare the published zip hash with certutil -hashfile GameOptimizer-vX.Y.Z-x64.zip SHA256 on the file you downloaded. If you already unpacked it and only have the loose exe, hash that instead with certutil -hashfile GameOptimizer.exe SHA256. Older releases do not all list a hash; if the release you downloaded does not, you cannot use this check on it.
  2. If the hash matches and Defender still quarantines the exe, that is a false positive on this build. You can report it to Microsoft at https://www.microsoft.com/en-us/wdsi/filesubmission (choose "incorrectly detected", and set the submission priority to Medium - the form says Medium gets an analyst review within a few days, while Low "may never be processed"). Expect a few days, and note that a review is not a promise: it may or may not clear the detection, for you or for anyone else. Please also open an issue here with the detection name and the date.
  3. Or build it yourself: tools\build.bat with the Visual Studio Build Tools gives you a binary you compiled from these sources. It will not be byte-identical to the released exe - the build is not reproducible bit for bit, so its SHA256 will differ and that is expected. tools\build.bat currently expects the Build Tools at one hard-coded path and stops if it is not there, so you may need to point it at your own vcvars64.bat.

Defender's clean-up also deletes the Start-with-Windows entry it finds. After restoring or reinstalling, switch "Start with Windows" back on in Settings.

Nothing here asks you to add an exclusion or turn Defender off.

Use

Double-click GameOptimizer.exe. The Settings window opens and the app gets a taskbar button, plus an icon in the notification area.

Closing the Settings window does not quit the app. It returns to the tray and keeps working. The tray icon's Settings item brings the window back; Exit is what actually quits, and quitting clears every mask it applied. If you turn on Start with Windows, the app starts quietly at login with no window.

On first launch it detects your topology, shows you a core map, and asks you to confirm it before anything is applied. Then pick a game — from the running-process list or by browsing to an .exe — and choose which named mask it should get.

On a 9950X3D the derived masks are Cache, Cache no SMT, Freq, Freq no SMT, All and All no SMT. On Intel hybrid they are P-cores / E-cores variants. On a symmetric dual-CCD part they are CCD0 / CCD1, and the app tells you it cannot determine which is better. On a single-CCD part it says plainly that no split exists and only the SMT masks will help.

A profile is a game plus a list of "heavy apps". The game and its descendants get one mask; the heavy apps get the other, for as long as the game runs. Optionally, any process that sustains more than N% CPU for M seconds while the game is in the foreground is moved to the background mask too.

Configuration is a plain INI file at %LOCALAPPDATA%\GameOptimizer\config.ini, editable by hand.

If it is killed rather than closed — Task Manager, a crash, a power cut — the assignments it had applied are recorded in %LOCALAPPDATA%\GameOptimizer\applied.journal, and the next start reads that journal and tries to clear each one, writing the result of every attempt to %LOCALAPPDATA%\GameOptimizer\GameOptimizer.log. An entry it cannot clear is logged as FAILED and not retried later, so the log is the place to check rather than an assumption. Rebooting is the guaranteed reset: a CPU Set assignment belongs to a running process and does not survive one.

Upgrading from the "CoreDirector" builds

The product was renamed. Two things move on first start of a renamed build, automatically and once, each logged to GameOptimizer.log:

Windows Game Mode

The first-run wizard checks Game Mode and reports what it finds. It never changes the setting and never requires a particular value.

Worth understanding: Game Mode does not park CCDs itself. On X3D parts, AMD's 3D V-Cache Performance Optimizer makes the same kind of decision Game Optimizer does, by a different mechanism and on Windows' idea of what counts as a game rather than yours. Running both means two systems placing your game by different rules.

That optimizer is three components, and

Game-Optimizer-CPUs-Threads-Optimizer (charlie754/Game-Optimizer-CPUs-Threads-Optimizer)

Searching Database…

这是什么?Game Optimizer 是一个 Windows 托盘应用,它使用 Windows CPU Sets API 把选定的游戏(及其子进程)绑定到正确的 CPU 缓存复合体上,而不是使用亲和性掩码、禁用 SMT 或更改 BIOS 设置。
它是后台服务,还是只是我点击打开的托盘应用?它是一个单一的原生 .exe,没有安装程序、没有服务、也没有驱动——它驻留在系统托盘,只对你选择的那一个进程树起作用,游戏一退出就立即清除隔离。
怎么安装和运行它?下载发布的 zip(共 8 个文件),如果 Windows 对它发出警告,就通过右键 > 属性 > 解除锁定来解除阻止,解压后双击 GameOptimizer.exe——没有安装程序,正常使用也不会弹出管理员提示。
我需要先安装其他东西吗?不需要。唯一可选的组件是微软的 WebView2 加载器,仅用于在设置窗口里渲染赞助条;没有它,应用会退回用 GDI 绘制那条横幅,无论哪种方式都能正常启动。
它对我的 CPU 真的有用吗?只有在具有多个缓存域或核心类型域的 CPU 上才有用,比如 Intel 混合 P/E 核心芯片或 AMD 的非对称 X3D 型号(如 7950X3D、9950X3D)。在常见得多的单缓存域 CPU 上,它没有可以调度的东西,几乎什么都不做。
在有反作弊保护的游戏里用它安全吗?未经测试——没有任何反作弊系统对这款应用做过检测,BattlEye 的 FAQ 指出他们可能因为第三方程序踢掉玩家,而这款应用既无法防止也无法检测到这种结果。
它运行在哪些系统上?Windows 10 或 11,仅限 x64——没有 32 位或 ARM 构建,Windows on Arm(通过模拟运行)也从未验证过。
它会向任何地方发送数据吗?不会。设置保存在本地,没有账号也没有遥测,应用完全不发出任何网络请求。
为什么 Windows SmartScreen 在首次运行时会标记这个应用?二进制文件未签名——SignPath Foundation 以仓库太新为由拒绝为它签名,而且应用的三项检测判定中有两项基于机器学习,即使是已签名的软件也可能触发。
它是怎么确定我的机器上该用哪个 CPU 组的?首次运行时,它会向 Windows 询问实际的内核与缓存拓扑,进行分类(Intel 混合、AMD 非对称缓存、多 CCD 对称或单域),并给你显示置信度和处理器图——没有会过时的硬编码 CPU 型号列表。
它与 BIOS 游戏模式或手动设置亲和性掩码有什么不同?BIOS 游戏模式和亲和性掩码是整个会话或静态生效的,而且不会被子进程继承;Game Optimizer 使用的 CPU Sets 只限定于所选游戏的进程树,自动纳管随后派生的子进程,并在游戏退出的那一瞬间清除一切。
我该怎么彻底移除它?如果你启用了可选的 AMD 3D V-Cache 设置,先把它关闭并重启以恢复驱动,然后从托盘图标退出,删除解压出来的文件夹,并可选择删除 %LOCALAPPDATA%\GameOptimizer\ 来清除它的设置。
Creator
charlie754
Size
54.3 MB
Stars
213
Age
1mo
Commits · 90 Days