9950X3D / 7950X3D 9900X3D / 7900X3D 7800X3D / 9800X3D NVIDIA RTX VR & Flatscreen Windows 11

Stutter-free iRacing
on Ryzen X3D

Six steps. About 30 minutes plus a reboot. Every fix was measured on a real rig, and every one is reversible.

Pick your chip and how you race β€” the page adjusts to show exactly what applies to you. (5800X3D owners: pick 7800X3D β€” same 8-core layout.)
Start the steps ↓ ⬇ Download the kit

Curious how it works? The idea Β· Deep detail? Reference Β· Problems? Troubleshooting

Your progress
0/0
30 seconds of background

The idea

Your CPU has two halves: a V-Cache die (games love it) and a frequency die. Stutters happen when Windows lets background work β€” GPU interrupts, antivirus scans, update tasks β€” fight the sim for the V-Cache die. The fix: put the sim there, move everything else off, and stop Windows from interrupting. That's all six steps do.

Your whole CPU is one V-Cache die β€” nothing to pin, which makes this simpler for you. Your stutters come from Windows letting background work β€” GPU interrupts, antivirus scans, update tasks, a Windows 11 timer quirk β€” pile onto the cores the sim is using. The fix: stop Windows from interrupting. The steps below skip the core-pinning parts automatically for your chip.

The full story β€” the dies, and four rules this guide lives by
CPUV-Cache die (sim goes here)Frequency die (everything else)
9950X3D / 7950X3Dlogical cores 0–15logical cores 16–31
9900X3D / 7900X3Dlogical cores 0–11logical cores 12–23

Your chip (7800X3D / 9800X3D / 5800X3D) is a single 8-core die β€” all 16 threads share the V-Cache, so Rules 1 and 2 below don't apply to you (nothing to pin, no die to keep clear). Rules 3 and 4, and every automatic fix, still do.

Rule 1 β€” EasyAntiCheat blocks hard CPU affinity. Pinning iRacing the forceful way gets reverted seconds after launch. We use CPU Sets (a scheduler hint EAC can't block). The affinity mask still reading 0xFFFFFFFF afterward is normal, not a failure.

Rule 2 β€” All cores unparked, NOT the Balanced plan. Single-CCD guides recommend Balanced; on a dual-CCD chip with VR, Balanced's core parking strands the VR compositor on a parked die and starves the GPU (measured: ~55% GPU util β†’ 11%, unplayable). Single-CCD chips are the opposite β€” keep Balanced.

Rule 3 β€” The Windows 11 focus/timer trap. Windows only honors a game's 1 ms timer while it owns window focus β€” and the VR compositor steals focus constantly, dropping the timer to 15.6 ms mid-race. Signature: stutters that stop the moment you click the sim window. Step 3 fixes it permanently.

Rule 4 β€” Measure, don't guess. Change one thing, log a race, compare. The kit's tools do the logging for you.

Adapted for dual-CCD from the single-CCD guide by rcsracing93 β€” see what flips and why.

Do it

The six steps

In order. Boxes remember themselves, so you can leave and come back β€” there's a reboot in the middle anyway.

Step 1 Β· 2 min
Download the kit & unzip it somewhere permanent

Download the .zip and unzip to a folder you'll keep β€” e.g. C:\iRacingTuning\. Not Downloads, not the desktop clutter β€” things reference this folder later.

Step 2 Β· 10 min
Step 2 Β· 2 min
Process Lasso β€” the only app setup
Power plan β€” nothing to install

One free app does the two fixes no script can: Process Lasso (the free version does everything needed).

  • Install it from bitsum.com.
  • Power plan: Main menu β†’ Power β†’ activate Bitsum Highest Performance. (Keeps every core awake.)
  • Launch iRacing and enter any race (a test or AI session is fine) so iRacingSim64DX11.exe shows up in Process Lasso's list. Then you can exit.
  • Pin the sim: right-click iRacingSim64DX11.exe β†’ CPU Sets (⚠ not CPU Affinity) β†’ select cores 0–15.
  • Protect it: right-click it again β†’ ProBalance β†’ exclude.
Why CPU Sets and not Affinity? And what about my wheel/overlay apps?

EasyAntiCheat rejects hard affinity β€” the sim reverts to all cores seconds after launch. CPU Sets are a scheduler hint EAC can't block, and they work just as well.

Optional extras in Process Lasso: put background apps (VR runtime, SimHub, overlays, wheel software, browsers) on the frequency die (cores 16–31), and give iRacing High CPU/I/O/memory priority. Nice-to-haves, not required.

If you use ParkControl (same developer): set Parking = Off and untick β€œDynamic Boost” β€” it flips the power plan mid-race and caused our worst hard freezes.

Your chip has one die, so every core already has the V-Cache β€” there's nothing to pin and no app to install. This step is basically "leave your power plan alone."
  • Keep your normal Balanced power plan. Single-CCD X3D runs best on it (it keeps AMD's V-Cache core preference working). Do not force an all-cores-unparked plan β€” that's a dual-CCD-only fix and does nothing good here.
  • That's it. Skip straight to Step 3.
Optional: Process Lasso for ProBalance (not required)

If you already run Process Lasso, one nice-to-have: right-click iRacingSim64DX11.exe β†’ ProBalance β†’ exclude, so it's never throttled. No CPU Sets, no power-plan change. If you don't have it, don't bother installing it just for this.

Step 3 Β· 3 min
Run the optimizer β€” one double-click

In the kit folder, double-click Apply-Baseline.bat. It confirms your CPU, shows a short advisory, then applies all five script fixes in one window with one admin prompt. Nothing to type.

⚑ Apply-Baseline.bat

The fast path β€” everything in one go.

πŸ–±οΈ Start-Tuning-Menu.bat

Prefer one step at a time, with each explained? The guided menu does the same fixes plus troubleshooting tools and undos.

What the five fixes actually change
  1. Defender exclusions β€” stops Windows Defender scanning every iRacing texture read mid-race (a constant micro-stutter source). Defender stays fully active everywhere else.
  2. USB Selective Suspend + Game Bar off β€” stops wheel/VR USB power-cycling and removes Game Bar/DVR hooks.
  3. Diagnostic log on β€” enables the Task Scheduler log so the troubleshooting tools can name culprits later. Changes nothing else.
  4. Timer fix β€” registry key so Windows honors the 1 ms timer even when the sim loses window focus. Kills the β€œstutters until I click” problem (Rule 3).
  5. GPU interrupts off the sim's core β€” NVIDIA's interrupts default to CPU 0, exactly where the sim's main thread runs. This steers them to core 16, well clear of CPU 0. (That core is on the frequency die.)(Picked automatically for your chip β€” a valid core, never one that doesn't exist.)

Every fix has an undo: Start-Tuning-Menu.bat β†’ Advanced. Registry, power, and Defender changes only β€” no drivers, no overclocking.

Rather run the scripts by hand?

Each fix is a readable .ps1 in scripts\ (browse them, and see scripts\README.txt). Run one with:

powershell -ExecutionPolicy Bypass -File "path\to\script.ps1"

Setting-changers need an elevated PowerShell (Start β†’ type PowerShell β†’ right-click β†’ Run as administrator). Or run Create-Launchers.ps1 once to get double-click shortcuts that self-elevate. 12-core chips: the launchers and menu set your core numbers automatically; only pure-manual runs need the one-line edit described in scripts\README.txt.

Step 4 Β· 1 reboot
Reboot

The GPU-interrupt and timer fixes only take effect after a restart. Do it now β€” the boxes will still be ticked when you're back.

Step 5 Β· one race
Prove it worked
  • Quick check: Start-Tuning-Menu.bat β†’ Troubleshoot β†’ Preflight-Check. Green READY = every fix is live.
  • Real proof: run FullTrace (menu β†’ Troubleshoot, or press T at the end of Apply-Baseline). Race ~10 minutes, press Ctrl+C, open the CSV from your Desktop.

What good looks like: no skipped seconds in the timestamp column. A jump like 12:04:40 β†’ 12:04:42 is a stall β€” none means zero system-wide hiccups.

Reading the rest of the CSV (for the curious)
  • power_plan β€” should stay on your unparked plan the whole session (a mid-race flip = ParkControl Dynamic Boost, see Step 2).
  • ccd0_cpu vs ccd1_cpu β€” CCD0 busier = the sim is on the V-Cache die where it belongs.
  • cpu0_int low, freqcore_int higher β€” GPU interrupts moved off the sim's core.
  • gpu_util β€” steady, no collapses to single digits.
  • hardfaults_s β€” near zero while racing (bursts during loading are normal).
Step 6 Β· when you're smooth
The graphics pass β€” last on purpose

Do this only after Step 5 looks clean β€” that way, if a new stutter appears, you know exactly what caused it.

iRacing settings (edit with the sim fully closed)

iRacing rewrites these files on exit, so close the sim first. Files are in Documents\iRacing.

πŸ₯½ Your renderer file depends on your headset runtime: rendererDX11OpenXR.ini for most modern headsets, rendererDX11Oculus.ini for the Oculus/Meta runtime, rendererDX11OpenVR.ini for SteamVR. Not sure? Sort the folder by date modified after a VR session β€” the one iRacing just touched is yours.

FileSetWhy
rendererDX11.inirendererDX11OpenXR.ini (or your runtime's β€” see above)LoadTexturesWhenDriving=0Preload textures instead of streaming off disk mid-lap
rendererDX11.inirendererDX11OpenXR.ini (same file)CacheSwap3HighResCars=0No mid-race texture swapping
app.inispoolingEnabled=0Stops continuous replay-to-disk writes
Graphics options (in-sim)CrowdDetail=0Fewer draw calls, near-zero visual impact
NVIDIA Control Panel (per-app: iRacingSim64DX11.exe)
SettingValue
Low Latency ModeOn β€” not Ultra (Ultra caused present-queue stalls)
Power ManagementPrefer Maximum Performance
Vertical SyncOff
Threaded OptimizationOn
Shader Cache SizeUnlimited
Anisotropic Filtering16x

Also disable the GeForce/NVIDIA App in-game overlay β€” DirectX hooks and DPC load for no benefit. Same goes for RTSS / MSI Afterburner: notorious stutter sources, close them unless you truly need them.

VR: clarity without hiccups
  • Supersampling beats MSAA. MSAA only smooths polygon edges; resolution anti-aliases everything (fences, distant lines, shimmer). Keep MSAA at 4x (8x often crashes iRacing in VR) and spend GPU headroom on resolution.
  • Set resolution in ONE place β€” the headset runtime's panel or the sim, never both (they multiply).
  • Quad-views / foveated rendering (e.g. Pimax Advanced Quad-View) is a big free win β€” sharp center, cheap periphery. The runtime's panel is authoritative; tune center resolution for crispness, peripheral for savings.
  • Sharpening amplifies shimmer β€” turn it down and let resolution do the work.
  • Keep ~15% GPU headroom (peaks under ~85%). A missed VR frame means reprojection judder, which looks worse than slightly lower settings.
Every race from now on: the menu's Each-Race routine quiets Windows Update/Search (and optionally Defender) before you drive and restores everything after. Optional, but it removes the last periodic stall source. (Pre-Race-Quiet / Post-Race-Restore β€” don't skip the restore.)
If it's still not perfect

Troubleshooting β€” name the culprit, don't guess

Match your symptom. Every tool below is in Start-Tuning-Menu.bat β†’ Troubleshoot.

Stutters that stop when I click the sim window

The focus/timer trap. Run Watch-TimerResolution: if the timer jumps from ~1 ms to ~15.6 ms when the sim loses focus, the timer fix isn't active β€” re-run it from the menu (Advanced) and reboot.

A stutter every few minutes, like clockwork

Scheduled-task cadence (Windows Update scans fire every ~5–7 min). Run FullTrace during a race, then Scan-Stutter-Events β€” it finds each stall in your trace and lists which task fired at that moment. The Each-Race routine silences the usual offenders.

Random hitches, no pattern

Usually a driver's DPC latency. Run LatencyMon (free) while racing β€” it names the driver behind the spike. nvlddmkm.sys on CPU 0 means the GPU-interrupt fix reverted (an MSI-mode quirk) β€” re-run it from the menu and reboot. Also close RTSS/Afterburner while diagnosing.

Still stuck? Set-NIC-USB-IRQ-Affinity (menu β†’ Advanced) steers network + USB interrupts off CPU 0 too β€” the same trick as the GPU fix, worth trying when something remains.

FullTrace's per-core columns are empty

Your Windows performance counters are corrupt (surprisingly common). Menu β†’ Advanced β†’ Repair-PerfCounters, reboot, re-trace.

Something feels wrong β€” undo everything

Menu β†’ Advanced has an undo for every fix (GPU IRQ, NIC/USB, timer, guide extras). Power plan and Process Lasso changes are reverted in their own apps. Post-Race-Restore turns Update/Search/Defender back on. Reboot after undoing IRQ or timer changes.

For the tech-minded

Reference

Every script in the kit β€” what it touches

Diagnostics (read-only): FullTrace (1 Hz CSV: per-CCD load, CPU0 vs frequency-core interrupt/DPC, GPU util/power/clocks/throttle, sim & VR CPU, pagefaults, power plan β€” timestamp gaps = stalls caught live), Preflight-Check, Scan-Stutter-Events, Watch-TimerResolution.

Fixes (each reversible): Enable-GlobalTimerResolution (GlobalTimerResolutionRequests=1 under HKLM\...\Session Manager\kernel), Set-GPU-IRQ-Affinity (DevicePolicy=4 + AssignmentSetOverride on the NVIDIA device), Set-NIC-USB-IRQ-Affinity (same, PCI NICs + USB hosts, spread over cores 17–19), Add-Defender-Exclusions, Apply-Guide-Extras (USB suspend, Game Bar/DVR), Pre-Race-Quiet / Post-Race-Restore (Update/Search tasks + services, optional Defender realtime β€” needs Tamper Protection off), Repair-PerfCounters (lodctr /R both arches + WMIADAP), Enable-DiagnosticLogs.

HAGS (Hardware-Accelerated GPU Scheduling) is deliberately not scripted β€” it's a genuine toss-up on newer cards. Test both ways.

Full inventory with admin flags: scripts\README.txt Β· browse the source.

Why this differs from single-CCD X3D guides

Adapted from rcsracing93's excellent single-CCD guide. Most of it transfers; two things flip on dual-CCD:

  1. Power plan. Single-CCD: Balanced (keeps V-Cache firmware prioritization active). Dual-CCD + VR: Balanced's core parking starves the compositor β€” use all-cores-unparked instead.
  2. CCD pinning matters. Single-CCD has nothing to pin β€” every core has V-Cache. On dual-CCD, getting the sim onto the cache die and everything else off it is half the battle.

This guide supports single-CCD chips too β€” pick 7800X3D / 9800X3D at the top and it hides the pinning steps, keeps you on Balanced, and still applies the timer, GPU-interrupt, Defender and background fixes.

Glossary
  • CCD β€” one of the CPU's two core clusters; one has stacked V-Cache, the other clocks higher.
  • CPU Set β€” a soft β€œplease run here” scheduler hint. Used because EAC blocks hard affinity.
  • DPC / interrupt β€” kernel-level work the CPU does for hardware. Piled onto the sim's core, it becomes micro-stutter.
  • Timer resolution β€” how finely Windows slices time. Games want ~1 ms; Windows 11 falls back to 15.6 ms when the game loses focus.
  • Hard pagefault β€” the PC stopping to read from disk. Fine while loading, not while racing.
  • HAGS β€” Hardware-Accelerated GPU Scheduling. Toss-up; test both ways.