Getting Started - LordBlacksun/x3d-ccd-optimizer GitHub Wiki

Getting Started

The Dashboard

The main window is split into several areas:

  • Status bar (top): Shows current mode (Monitor or Optimize), detected game, and what the app is doing
  • CCD panels: Compact 4x2 core grid layout showing CCD0 (V-Cache) and CCD1 (Frequency) with per-core load heatmaps, frequency display, L3 cache sizes, and core ranges
  • Tabbed lower section: Three tabs -- Process Router (managed processes grouped by CCD assignment), Activity Log (timestamped record of every action), and Game Library (detected games from Steam, Epic Games, and GOG Galaxy library scans)
  • Footer: Processor model, core/thread count, polling interval, and ADMIN badge confirming elevated rights

Unsupported Processors

X3D CCD Optimizer requires a dual-CCD AMD Ryzen processor. If the app detects a single-CCD processor or a non-AMD system, it displays a friendly exit dialog explaining why the tool is not needed for that hardware. Single-CCD processors do not have the cross-CCD scheduling problem this tool solves.

Two Modes

Monitor Mode (Default)

Monitor mode is completely passive. The app:

  • Watches for game processes using its detection pipeline (manual rules, Steam/Epic/GOG library scan, GPU heuristic)
  • Shows per-core CPU usage on each CCD
  • Logs when it detects a game that would be optimized
  • Does not change any process affinity

This is the safe mode. Use it to verify the app detects your games correctly before enabling optimization.

Optimize Mode

Optimize mode actively manages CPU affinity:

  • Detected games are pinned to the V-Cache CCD (CCD0)
  • Background apps matching your Process Rules are pinned to the Frequency CCD (CCD1)
  • Unmatched processes are also migrated to CCD1 to keep the V-Cache CCD clear (excluding system and protected processes)
  • Polling runs at 4 seconds when idle, switching to 2 seconds when a game is detected (and back to 4 seconds when the game exits)
  • Re-migration of newly launched processes occurs within 5 seconds
  • Every action is logged with a timestamp

To switch modes, click the Monitor / Optimize toggle in the top right corner of the dashboard.

What happens when you switch to Optimize?

  1. The app scans all running processes
  2. If a known game is running, it pins that game's process to CCD0
  3. Background apps in your rules get pinned to CCD1
  4. Other non-system processes get migrated to CCD1
  5. The continuous loop starts -- polling at 2 seconds (active) to catch new processes and apply rules
  6. The activity log shows every action in real time

What happens when you switch back to Monitor?

  1. All affinities are restored to their original values
  2. The continuous scan continues in passive mode (4-second polling)
  3. Processes return to their default Windows scheduling behavior
  4. The activity log records the restoration

Library Scanning

On first launch, the app automatically performs a background scan of your installed game libraries:

  • Steam: Reads ACF manifest files from Steam library folders
  • Epic Games Store: Parses JSON manifest files
  • GOG Galaxy: Reads the SQLite database combined with registry data

Scanned games are stored in a local LiteDB database (user_games.db) and appear in the Game Library tab. You can trigger a manual rescan at any time from Settings --> Detection --> Rescan Game Libraries.

A Typical Session

  1. Launch X3D CCD Optimizer (it starts in Monitor mode)
  2. Open Settings --> Process Rules, verify your games are listed
  3. Add any background apps you want pinned to CCD1 (Discord, Chrome, etc.)
  4. Launch your game
  5. Toggle to Optimize mode
  6. Watch the activity log confirm your game is pinned to V-Cache and background apps are on the Frequency CCD
  7. Play your game
  8. When done, toggle back to Monitor (or just close the app -- it restores everything on exit)

Safe by Design

  • Monitor mode is the default. Nothing changes until you explicitly toggle to Optimize.
  • Affinities are always restored. When you switch back to Monitor or close the app, everything returns to normal.
  • Dirty shutdown recovery. If the app crashes while in Optimize mode, it saves a recovery file. On next launch, it restores all affinities automatically.
  • System processes are protected. Critical Windows processes (csrss, lsass, dwm, svchost, etc.) are never touched, even with admin rights.