AMD X3D Scheduling Explained - LordBlacksun/x3d-ccd-optimizer GitHub Wiki

AMD's X3D Scheduling: The Full Picture

Before diving into what X3D CCD Optimizer does, it's worth understanding what AMD and Microsoft have already built. The scheduling system for dual-CCD X3D processors is a multi-layered stack -- and when every layer is correctly configured, it works well. The challenge is that it's fragmented, largely invisible, and has a history of not working reliably for many users.

This page aims to be the most complete plain-English explanation of the system that exists. If something here is wrong, please open a GitHub issue.

The Five Layers

Layer 1: CPPC (Collaborative Processor Performance Control)

CPPC is an AMD-wide feature, not specific to X3D. It's a communication protocol between the processor firmware and the operating system, delivered through ACPI registers.

The CPU firmware ranks each core by quality -- how high it can boost, how efficiently it runs at a given voltage. These rankings account for silicon lottery (manufacturing variation) -- not all cores are equal, even on the same CCD.

Windows uses these rankings to make smarter scheduling decisions. Instead of treating all cores as identical, it knows that core 4 might boost to 5.7 GHz while core 11 peaks at 5.5 GHz. Higher-ranked cores get priority for single-threaded and lightly-threaded workloads.

On dual-CCD X3D processors, CPPC rankings also reflect the CCD split. CCD1 (frequency-optimized) cores typically receive higher CPPC rankings than CCD0 (V-Cache) cores for general workloads, because CCD1 cores clock higher. The V-Cache CCD's cores are slightly frequency-limited due to the additional 3D-stacked cache on top of the die adding thermal constraints.

This means for non-gaming tasks, Windows naturally prefers the faster-clocking CCD1 cores -- which is actually the correct default behavior. You want your web browser and productivity apps on the fastest cores.

Layer 2: CPPC Dynamic Preferred Cores (BIOS Setting)

This is a BIOS-level setting found under AMD CBS > SMU Common Options. It controls how the CCD preference system operates. The exact menu location and naming varies by motherboard manufacturer -- ASUS, MSI, Gigabyte, and ASRock all place it slightly differently, which is a source of confusion.

The modes:

  • Auto: Lets the system decide dynamically. This is the default on most motherboards. In theory, this should "just work." In practice, community testing indicates that Auto often does not reliably trigger correct core parking behavior (this finding was widely publicized by JayzTwoCents in a video examining 7950X3D core parking). Under Auto, the system may prefer the high-frequency CCD1 cores even during gaming, negating the V-Cache advantage.

  • Driver: Defers the CCD preference decision to the AMD 3D V-Cache driver (Layer 4). Community testing indicates this is the setting that resolves core parking issues on dual-CCD X3D processors. When set to Driver, the installed AMD 3D V-Cache driver service takes explicit control of CCD preference, producing reliable and consistent core parking behavior. This is the recommended setting for dual-CCD X3D chips.

  • Cache: Forces preference toward the V-Cache CCD (CCD0) for all workloads. This means even non-gaming tasks will prefer the lower-clocking V-Cache cores. Useful for testing or if you exclusively game on your PC, but suboptimal for mixed workloads since V-Cache cores clock lower than frequency CCD cores.

  • Frequency: Forces preference toward the frequency CCD (CCD1). Essentially disables V-Cache preference entirely -- the system will avoid CCD0's V-Cache cores for foreground tasks.

The recommended setup for dual-CCD X3D: Set CPPC Dynamic Preferred Cores to Driver, and ensure the AMD chipset drivers (including the 3D V-Cache driver) are installed and the service is running.

Layer 3: Windows Game Mode and the GameMode Power Sub-Profile

Windows has a built-in concept of "Game Mode" -- accessible under Settings > Gaming > Game Mode. When Game Mode detects a foreground game, it activates a special power sub-profile called GameMode.

This is not just a "do not disturb" toggle. The GameMode power sub-profile is a core part of AMD's X3D scheduling chain:

What AMD's chipset driver installs: When you install AMD's chipset drivers on an X3D system, part of the installation includes PPM (Processor Power Management) provisioning files. These are XML configuration files that modify the Balanced power plan's GameMode sub-profile specifically for X3D processors. They set parameters like:

  • CPConcurrency -- controls how aggressively the system allows multiple cores to be active simultaneously
  • CPMinCores -- minimum number of cores that should remain unparked during gaming

The intended effect: When the GameMode profile activates (because you're playing a game), the core parking thresholds change. CCD0 (V-Cache) cores become preferred for the foreground game workload, while CCD1 cores may be parked or deprioritized. When you stop gaming, the GameMode profile deactivates, and CPPC rankings revert to favoring CCD1's higher clocks for general tasks.

Critical detail -- Balanced power plan required: The GameMode sub-profile modifications are stored within the Balanced power plan. If you're running High Performance, Ultimate Performance, or any custom power plan that doesn't inherit from Balanced, these AMD-specific GameMode modifications don't exist. The core parking behavior won't activate during gaming. This is one of the most common sources of "core parking isn't working" reports in the community -- gamers often switch to High Performance thinking it's better, but it actually disables AMD's X3D-specific scheduling.

Community-created workarounds: This power plan dependency has led to community members creating custom power plans that include the X3D-specific GameMode modifications while also offering different default behavior. Notable examples include ManniX-ITA's custom Ryzen power plans on Overclock.net, which attempt to combine AMD's X3D scheduling with more aggressive performance settings.

Layer 4: AMD 3D V-Cache Performance Optimizer Driver

When you install AMD's chipset drivers on an X3D system, several components are installed:

  • AMD 3D V-Cache Performance Optimizer Driver: Shows up in Device Manager under System Devices. This is the kernel-mode driver that manages CCD preference at the OS level.
  • amd3dvcacheSvc.exe: A background service that runs continuously. This service is responsible for monitoring workload patterns and adjusting CCD preference dynamically.
  • amd3dvcacheUser.exe: A user-mode component that works alongside the service to implement preference changes.
  • AMD PPM Provisioning File Driver: Installs the power plan modifications described in Layer 3.

The V-Cache driver works with the CPPC rankings and GameMode profile to steer the right workloads to the right CCD. It uses a registry interface to store and adjust preferences -- this is the same registry interface that cocafe's vcache-tray tool documented, and that X3D CCD Optimizer's Driver Preference strategy uses.

Important: If the V-Cache driver service (amd3dvcacheSvc.exe) is not running -- perhaps because of a failed chipset driver installation, a Windows update that broke the service, or because the user uninstalled chipset drivers -- the CPPC Dynamic Preferred Cores = Driver setting has no driver to defer to. The system falls back to basic CPPC rankings, which favor CCD1 (frequency). This is a silent failure mode.

You can verify the service is running in Task Manager > Services > look for amd3dvcacheSvc.

Layer 5: Xbox Game Bar (KGL -- Known Game List)

Xbox Game Bar maintains a list of known games called the KGL (Known Game List). When a game from this list is running in the foreground, Game Bar signals Windows to activate the GameMode power sub-profile, which triggers the X3D-specific scheduling changes described in Layer 3.

The KGL is updated through the Microsoft Store independently of Windows updates. This is why AMD's setup documentation requires checking that Xbox Game Bar is updated to the latest KGL version -- an outdated game list means newer games won't be recognized, and the CCD preference won't activate for them.

Checking your KGL version: Press Win+G to open Game Bar, go to Settings (gear icon) > General > scroll to the bottom to find the KGL Version Loaded and KGL Service Version numbers. These should match.

Manually adding games: If a game isn't in the KGL, you can tell Game Bar it's a game: launch the game, press Win+G, and Game Bar should offer to remember the application as a game. This adds it to a local game list.

The Game Bar paradox: Many performance-conscious gamers disable Xbox Game Bar because it's perceived as bloatware that hurts performance. Ironically, on dual-CCD X3D processors, disabling Game Bar also disables the game detection that triggers CCD preference switching -- the very feature that would improve their gaming performance. AMD hasn't communicated this dependency clearly.

The Full Intended Flow

When every layer is correctly configured, the chain works like this:

  1. System boots -- CPPC rankings default to favoring CCD1 (frequency) for general tasks
  2. You launch a game that Xbox Game Bar recognizes via the KGL
  3. Game Bar signals Windows that the foreground app is a game
  4. Windows activates the GameMode power sub-profile within the Balanced plan
  5. The AMD PPM provisioning settings adjust core parking thresholds, favoring CCD0 (V-Cache)
  6. The AMD 3D V-Cache driver (because CPPC is set to Driver) adjusts CCD preference to reinforce V-Cache scheduling
  7. Windows scheduler uses the updated preferences to place game threads on CCD0 and background work on CCD1
  8. Core parking may park some CCD1 cores that aren't needed, reducing power and thermal overhead
  9. When you stop gaming, the GameMode profile deactivates, CPPC rankings revert, and general tasks resume on CCD1's faster cores

Prerequisites Checklist

For AMD's system to work correctly, ALL of the following must be true:

  • BIOS updated to latest version with AGESA support for your X3D chip
  • CPPC Dynamic Preferred Cores set to Driver in BIOS (not Auto)
  • C-States enabled in BIOS (required for CPPC to function)
  • AMD chipset drivers installed (latest version from AMD's website)
  • AMD 3D V-Cache Performance Optimizer visible in Device Manager
  • amd3dvcacheSvc.exe service running in Task Manager
  • amd3dvcacheUser.exe running in Task Manager
  • Windows 10 21H2+ or Windows 11 22H2+ (supported Windows builds)
  • Windows Game Mode enabled (Settings > Gaming > Game Mode)
  • Xbox Game Bar installed and updated to latest KGL version
  • Windows Balanced power plan active (not High Performance or Ultimate)
  • No conflicting motherboard-specific settings (Core Flex, Gaming Preset, etc.) enabled
  • No third-party tools interfering (Process Lasso, ParkControl, etc.)

If any one of these is misconfigured, the system may appear to work (no errors) but silently fail to schedule games on the V-Cache CCD.

Known Issues and Community Findings

The "Auto" problem: Community testing indicates that CPPC Dynamic Preferred Cores = Auto does not reliably produce correct core parking. Setting it to Driver consistently resolves this. The exact reason Auto fails is unclear -- it may be AGESA-dependent or motherboard-specific.

Chipset driver regressions: Community testing indicates that multiple AMD chipset driver versions have broken previously working core parking setups. Community members have documented cases where updating chipset drivers removes the core parking behavior that the previous version established correctly. There is no official AMD communication about which chipset driver versions are known to work correctly for each processor.

GFXOFF interaction: On some motherboard/BIOS combinations (notably ASRock), community testing indicates the GFXOFF BIOS setting needs to be explicitly set to Enabled alongside the CPPC = Driver change for core parking to function correctly.

Motherboard inconsistency: Different motherboard vendors implement CPPC settings in different menus, with different names, and sometimes with additional proprietary options that can interfere. ASRock, ASUS, MSI, and Gigabyte boards have all been reported to behave differently with the same CPU and same Windows installation.

Windows update disruptions: Community testing indicates that Windows updates can reset power plan configurations, potentially undoing AMD's PPM provisioning. Users may need to reinstall chipset drivers after major Windows updates.

The 9950X3D situation: The newer Zen 5-based 9950X3D appears to have a somewhat different scheduling approach, with some reports that AMD and Microsoft may be moving toward a hybrid-like scheduling model (similar to Intel's big.LITTLE approach) that doesn't rely as heavily on core parking. This is evolving and not yet well-documented.

Where X3D CCD Optimizer Fits

X3D CCD Optimizer does not replace AMD's scheduling system. It addresses the specific gaps in the user experience:

  • Visibility: The dashboard shows you exactly which CCD each process is on, in real time. No guessing, no HWiNFO or Ryzen Master required.
  • Direct control: Process Rules let you explicitly decide what goes where, overriding implicit scheduling when you need certainty.
  • Game detection without Game Bar: The app has its own three-tier game detection pipeline -- manual rules, automatic scanning of installed Steam, Epic, and GOG libraries, and GPU usage heuristics -- completely independent of Xbox Game Bar's KGL. You don't need Game Bar enabled. You don't need to check KGL versions.
  • Background app management: AMD's system focuses entirely on steering the game to the right CCD. It does not explicitly manage where background apps go. The optimizer lets you pin specific apps (Discord, Chrome, OBS, etc.) to CCD1, ensuring they don't compete for V-Cache resources.
  • Continuous enforcement: AMD's system sets preferences and hopes the scheduler follows them. The optimizer sets hard CPU affinity masks and continuously monitors for new processes (polling at 4 seconds idle, 2 seconds active), catching anything that launches mid-game.
  • Power plan independence: Affinity Pinning mode works regardless of which power plan you're on. No Balanced requirement.
  • No BIOS dependency: The tool works regardless of your CPPC Dynamic Preferred Cores BIOS setting.
  • Transparency: Every action is logged with a timestamp. You can always verify exactly what the app did and when.

For users who have a clean Windows 11 install with correct BIOS settings, updated chipset drivers, current Game Bar, and Balanced power plan -- AMD's built-in system may be working correctly and this tool simply adds visibility. For everyone else -- which community forums suggest is a significant portion of dual-CCD X3D owners -- the optimizer provides a reliable, visible, user-controlled alternative.

References

  1. cocafe/vcache-tray -- Open-source tool that discovered and documented the AMD 3D V-Cache driver's registry interface for CCD preference. github.com/cocafe/vcache-tray.
  2. JayzTwoCents, CPPC Dynamic Preferred Cores = Driver research -- YouTube video documenting the finding that setting CPPC Dynamic Preferred Cores to "Driver" in BIOS resolves core parking issues on dual-CCD X3D processors (7950X3D). This research was widely viewed and confirmed by community members.
  3. AMD CPPC documentation -- CPPC (Collaborative Processor Performance Control) is described in AMD's Processor Programming Reference (PPR) documents and the ACPI specification. These documents cover the ACPI-based protocol for communicating core quality rankings between processor firmware and the operating system. Available through AMD's developer resources at developer.amd.com.
  4. AMD, "AMD Ryzen Processor Driver and Support" -- Chipset drivers including the 3D V-Cache Performance Optimizer Driver. Available at amd.com/en/support.
  5. Microsoft, "Processor Power Management in Windows" -- Documentation on PPM, power plans, and the GameMode power sub-profile. Available at learn.microsoft.com.
  6. ManniX-ITA, "Custom Ryzen Power Plans" -- Community-created power plans incorporating AMD's X3D-specific PPM modifications. Published on Overclock.net forums.

Note: Some claims in this document are based on community testing and user reports rather than official documentation. These are noted inline with phrases like "community testing indicates" or "has been reported." AMD's scheduling stack is largely underdocumented, and community findings remain the primary source for practical configuration guidance.