You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cpu): the dual-CCD panel misread a working AMD install, and recommend CPPC=Cache
Three problems in the dual-CCD dependency panel, reported from a 9950X3D with
AMD chipset drivers already installed.
Service detection probed four guessed names, two of which do not exist. The list
was "AMD3DVCacheSvc", "Amd3DVCacheSvc", "AmdV3DCacheSvc" and
"AMDProvisioningPackagesSvc"; on a real install the services are actually named
amd3dvcacheSvc and AmdPpkgSvc, so half the list could never match anything and
the fourth entry was probing the provisioning service as if it were the
optimizer. It now enumerates the service list and matches on the distinctive part
of the name or display name, which survives casing and any rename, and it reports
the name it found so the row is diagnosable instead of a dead end.
"Stopped" was reported as a fault. The optimizer installs with StartMode=Auto and
sits stopped until it has routing work, so stopped is its normal idle state --
confirmed on this machine, where it reads Stopped/Auto. The old panel told the
user to go and start it. The state is now split into Idle and Disabled, and only
Disabled is treated as unmet.
"Xbox Game Bar: unknown" came from a second, worse copy of a reader that already
existed. CpuPlanStatus read only AutoGameModeEnabled and returned null when the
value was absent, while GameModeMonitor.ReadCurrent already falls back to
AllowAutoGameMode. It now calls that one, and an absent value resolves to the
Windows default (Game Mode on) rather than "unknown". The row is also relabelled:
it reads Game Mode, not Game Bar, and said so incorrectly.
CPPC guidance now recommends Cache rather than Driver on asymmetric dual-CCD
X3D. Driver is AMD's official setting and routes dynamically, but that routing
depends on Xbox Game Bar recognising the title, which it often does not --
non-Steam launchers, emulators and older games all miss. Cache pins preferred
cores to the V-Cache CCD so routing does not depend on detection at all. It is a
tradeoff rather than a correction, so BiosRecommendation gained an Alternative
field and the panel renders Driver alongside with the reason to prefer each. The
prose in CpuPlanDetails and SettingDocsCatalog that asserted CPPC=Driver as a
hard dependency was reworded to match, and SETTINGS-REFERENCE.md regenerated.
Verified against this machine's real service list: the detector resolves
amd3dvcacheSvc / "AMD 3D V-Cache Performance Optimizer Service" as Idle, where
the old code reported Stopped and the panel said "start it". The dual-CCD panel
itself cannot be rendered here -- this is a single-CCD 9850X3D -- so the catalog
output the panel consumes is pinned by tests instead.
762 stable / 744 beta tests pass.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/SETTINGS-REFERENCE.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -170,19 +170,19 @@ powercfg /setactive SCHEME_BALANCED # restore the Balanced plan
170
170
171
171
| Choice | Pro | Con |
172
172
|---|---|---|
173
-
| Build the optimized plan (recommended) | A Balanced clone tuned to your CPU -- aggressive boost and the right core-parking -- without High Performance's heat/boost cost. | For asymmetric dual-CCD X3D it isn't enough alone; it relies on BIOS CPPC=Driver + the AMD V-Cache service the app can't set. |
173
+
| Build the optimized plan (recommended) | A Balanced clone tuned to your CPU -- aggressive boost and the right core-parking -- without High Performance's heat/boost cost. | For asymmetric dual-CCD X3D it isn't enough alone; it relies on the BIOS "CPPC Dynamic Preferred Cores" setting the app cannot set -- Cache pins games to the V-Cache CCD, Driver routes dynamically via the AMD V-Cache service. |
174
174
| Keep Balanced / a stock plan | Zero setup, and fine on most modern CPUs whose own boost is already good. | Misses the per-CPU parking/boost tuning (notably for X3D chips). |
| Asymmetric dual-CCD X3D (9950X3D / 7950X3D) | Build optimized -- parks frequency CCD; also verify BIOS CPPC=Driver + AMD V-Cache service + Game Bar|
181
+
| Asymmetric dual-CCD X3D (9950X3D / 7950X3D) | Build optimized -- parks frequency CCD; also set BIOS CPPC=Cache (or Driver + the AMD V-Cache service + Game Mode)|
182
182
| Non-X3D / Intel hybrid | Build optimized (no parking / leave Thread Director) or suggest Balanced |
183
183
| Unknown CPU | Build optimized uses a labeled generic tune, or suggest the best prebuilt plan |
184
184
185
-
**Risks.** Low. The plan is additive -- your existing Windows plans are never modified or deleted, and you can switch back at any time. For asymmetric dual-CCD X3D the power plan alone is not sufficient: it depends on the AMD CCD-routing stack (BIOS CPPC=Driver, the 3D V-Cache Optimizer service, and Xbox Game Bar), which the app surfaces but cannot set.
185
+
**Risks.** Low. The plan is additive -- your existing Windows plans are never modified or deleted, and you can switch back at any time. For asymmetric dual-CCD X3D the power plan alone is not sufficient: which CCD a game lands on is decided by the BIOS "CPPC Dynamic Preferred Cores" setting. Cache pins games to the V-Cache CCD outright; Driver routes them dynamically and then also depends on the 3D V-Cache Optimizer service and Xbox Game Bar game-detection. The app surfaces this but cannot set it.
Copy file name to clipboardExpand all lines: src/GamerGuardian/Services/SettingDocsCatalog.cs
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -416,11 +416,11 @@ public static IReadOnlyList<ChoiceTradeoff> ProsConsFor(string settingId)
416
416
HowItHelps:"Aggressive boost lets the CPU reach and hold its gaming clocks; correct parking keeps game threads on the right cores; faster ramp thresholds reduce clock-up latency. All without the heat/boost-headroom cost of High Performance.",
("Asymmetric dual-CCD X3D (9950X3D / 7950X3D)","Build optimized -- parks frequency CCD; also verify BIOS CPPC=Driver + AMD V-Cache service + Game Bar"),
419
+
("Asymmetric dual-CCD X3D (9950X3D / 7950X3D)","Build optimized -- parks frequency CCD; also set BIOS CPPC=Cache (or Driver + the AMD V-Cache service + Game Mode)"),
420
420
("Non-X3D / Intel hybrid","Build optimized (no parking / leave Thread Director) or suggest Balanced"),
421
421
("Unknown CPU","Build optimized uses a labeled generic tune, or suggest the best prebuilt plan")),
422
422
Recommended:"Build optimized for your CPU (or suggest Balanced)",
423
-
Risks:"Low. The plan is additive -- your existing Windows plans are never modified or deleted, and you can switch back at any time. For asymmetric dual-CCD X3D the power plan alone is not sufficient: it depends on the AMD CCD-routing stack (BIOS CPPC=Driver, the 3D V-Cache Optimizer service, and Xbox Game Bar), which the app surfaces but cannot set.",
423
+
Risks:"Low. The plan is additive -- your existing Windows plans are never modified or deleted, and you can switch back at any time. For asymmetric dual-CCD X3D the power plan alone is not sufficient: which CCD a game lands on is decided by the BIOS \"CPPC Dynamic Preferred Cores\" setting. Cache pins games to the V-Cache CCD outright; Driver routes them dynamically and then also depends on the 3D V-Cache Optimizer service and Xbox Game Bar game-detection. The app surfaces this but cannot set it.",
424
424
ReversibleVia:"Switch the active plan back via Settings > System > Power, or 'powercfg /setactive SCHEME_BALANCED'. The GamerGuardian plan can be deleted from the legacy Power control panel if you no longer want it."),
425
425
426
426
// ---- System toggles -----------------------------------------------
@@ -1235,7 +1235,7 @@ public static IReadOnlyList<ChoiceTradeoff> ProsConsFor(string settingId)
1235
1235
("Balanced (default)","Lets modern CPUs' boost algorithms run (often better than a pegged plan) and saves power when idle.","A few ms of clock-ramp latency at the start of bursts on older CPUs.")),
1236
1236
1237
1237
["cpuplan"]=Pc(
1238
-
("Build the optimized plan (recommended)","A Balanced clone tuned to your CPU -- aggressive boost and the right core-parking -- without High Performance's heat/boost cost.","For asymmetric dual-CCD X3D it isn't enough alone; it relies on BIOS CPPC=Driver + the AMD V-Cache service the app can't set."),
1238
+
("Build the optimized plan (recommended)","A Balanced clone tuned to your CPU -- aggressive boost and the right core-parking -- without High Performance's heat/boost cost.","For asymmetric dual-CCD X3D it isn't enough alone; it relies on the BIOS \"CPPC Dynamic Preferred Cores\" setting the app cannot set -- Cache pins games to the V-Cache CCD, Driver routes dynamically via the AMD V-Cache service."),
1239
1239
("Keep Balanced / a stock plan","Zero setup, and fine on most modern CPUs whose own boost is already good.","Misses the per-CPU parking/boost tuning (notably for X3D chips).")),
0 commit comments