Community Troubleshooting Guide

iRacing Stutter Fix
AMD Ryzen X3D + NVIDIA

Field-tested guide to eliminating frame time spikes in iRacing on Ryzen 7000/9000 X3D systems with NVIDIA GPUs. Based on 24+ CapFrameX capture sessions and real LatencyMon analysis.

Ryzen 7800X3D Ryzen 9800X3D NVIDIA RTX Windows 11 iRacing DX11
Last updated June 2026
Buy Me A Coffee Find this helpful? Buy me a coffee — it keeps the troubleshooting going.
Worst Frame Time
32.10ms
↓ 67%
8.80ms
Spikes >12ms / 5min
2–3 spikes
↓ 100%
0 spikes
Hard Pagefaults
70,000+
↓ 97%
~2,000

iRacing was throwing 2–3 frame spikes every 5 minutes — mid-corner, mid-battle, exactly when it hurts most. Worst frametimes were over 32ms on a Ryzen 7800X3D / RTX 4090 rig that should have been rock solid. Something was wrong.

Over 24 CapFrameX sessions in May 2026, every variable got isolated one at a time. The causes weren't where we expected: a monitor running at 120Hz instead of 240Hz, RivaTuner hiding inside CapFrameX, GPU interrupt handling defaulting to the wrong CPU core. None of these showed up without measurement.

End state: 0 spikes, worst frametime under 9ms, 97% fewer hard pagefaults. The fixes are documented here in the order they matter — start with the highest-impact items and work down.

Do These First Each one directly caused spikes. Start here before anything else.
1
Remove RTSS and MSI Afterburner
RivaTuner Statistics Server was hiding as a CapFrameX overlay dependency and causing 50,000+ hard pagefaults per session — directly responsible for 3 measured spikes. Uninstall both. CapFrameX works fine without them.
Confirmed — 3 spikes eliminated immediately
2
Verify your monitors are running at max refresh rate
Samsung and many other monitors default to 120Hz after reboot or sleep even when set to 240Hz in Windows. Running below max Hz creates present timing mismatches. Check: Settings → System → Display → Advanced display → refresh rate. Do this for every monitor. This was a significant contributor that wasn't obvious until measured.
Confirmed — major contributor to spike pattern
3
Lower MSAA and turn off Crowds
MSAA 4x was the biggest single GPU driver of Type A burst spikes (scene complexity → GPU burst → missed present). Drop to 2x. Crowds off has near-zero visual impact at racing speeds and significantly reduces draw call count. These two changes together eliminated the Type A spike pattern entirely.
Confirmed — eliminated GPU burst spikes entirely
4
Add Windows Defender exclusions for iRacing
Without exclusions, msmpeng.exe was the top hard pagefaulter every session. Adding exclusions for the iRacing install folder and Documents\iRacing dropped pagefaults by ~97%. Use admin PowerShell: Add-MpPreference -ExclusionPath "C:\Program Files (x86)\iRacing" — and also for your iRacing documents path.
Confirmed — 97% pagefault reduction
Do These Always Foundation settings — low effort, confirmed beneficial, run before every session.
5
Create and activate AMD Ryzen Balanced power plan
Windows High Performance and Bitsum Highest Performance both disable the AMD firmware that prioritizes the 3D V-Cache core on X3D CPUs. The AMD Ryzen Balanced plan keeps V-Cache prioritization active. Surprisingly, it may not exist on your system even after installing AMD drivers — you may need to create it manually via powercfg /duplicatescheme. See guide for full steps.
Required for correct X3D core prioritization
6
Disable background Windows services before sessions
Windows Update, Update Orchestrator, and Windows Search must be disabled (not just stopped) — they restart themselves. Backblaze, WiFi, Bluetooth, and Xbox Live can be stopped. These services compete for CPU and disk during sessions. The pre-launch script handles this automatically on every run.
Confirmed — reduces pagefault floor and CPU contention
7
NVIDIA Control Panel — iRacing program settings
Low Latency Mode = On (not Ultra — Ultra caused present queue stall patterns in testing). Power Management = Max Performance. Threaded Optimization = On. Shader Cache = Unlimited. V-Sync = Off. Also: uninstall GeForce Experience — it adds DirectX hooks and background DPC load with no benefit if you're downloading drivers directly.
Confirmed — cleaner present queue behavior
8
Enable texture preloading in app.ini
By default, iRacing streams high-res car textures as cars enter view — this causes GPU bursts mid-lap. Preloading eliminates it at the cost of longer session load times (expected behavior). Under [Graphics] in app.ini: carPreloadAll=1, trackTexturePreload=1, streamingTextureSize=256. Also disable "Video mem swap high-res cars" in iRSidekick Extras.
Confirmed — eliminates mid-lap texture streaming bursts
Advanced / If Still Broken Confirmed working but more complex — worth doing if spikes persist after the above.
9
NVIDIA interrupt affinity — steer GPU interrupts to CPU 7
LatencyMon showed CPU 0 handling 473,907 ISRs per 6-minute session with nvlddmkm.sys DPCs up to 1,543µs — while iRacing's sim thread is hardcoded to CPU 0. Steering GPU interrupts to CPU 7 via registry (AssignmentSetOverride) removes that conflict. On Windows 11, the RTX 4090 uses MSI mode (not MSI-X), so the setting doesn't persist across reboots — the pre-launch script re-applies it every session across all device instances. Regression is measurable when it slips, which confirms it works.
Confirmed working — persistence workaround required
10
Process Lasso — iRacing priority, isolate Discord
Set iRacingSim64DX11.exe to High CPU priority and High I/O, excluded from ProBalance. Note: you cannot set CPU core affinity for iRacing — EasyAntiCheat silently blocks all external affinity changes. Discord on odd cores only at Below Normal priority. CapFrameX excluded from ProBalance (don't restrict it or captures will be unreliable).
Beneficial — prevents ProBalance from throttling iRacing
11
Disable HAGS, Game Mode, and USB Selective Suspend
Hardware-Accelerated GPU Scheduling (HAGS), Windows Game Mode, Xbox Game Bar, and USB Selective Suspend can all contribute to scheduling irregularities. The pre-launch script disables all of these via registry on each run and restores them post-session. Low effort — the script handles it — but these settings revert between sessions on their own.
Incremental — handled automatically by the script
Session data
Progress Report — 24 Capture Sessions
Full history of every CapFrameX and LatencyMon session from May 11–14, 2026. Shows the progression of fixes, regression when RTSS was discovered, and final results. Useful context for understanding which changes made the biggest difference.
24 sessions CapFrameX data LatencyMon comparison
Automation Scripts
Run as Administrator before and after every session. pre_iracing_launch.bat is the script you use, but it refuses to run until it's been given three values specific to your system. Download find_my_values.bat into the same folder and run it first — it writes those values to my_values.bat, which pre_iracing_launch.bat loads automatically; the guide explains each value.
🔍
find_my_values.bat [SETUP]
Run once during setup — read-only, changes nothing. Writes my_values.bat (next to itself) with the three values pre_iracing_launch.bat needs: your NVIDIA VEN/DEV path + device instances, driver version, and AMD Ryzen Balanced power-plan GUID.
Download .bat
⚙️
pre_iracing_launch.bat [MAIN SCRIPT]
Run before every session. Disables background services, Defender real-time monitoring, HAGS, Game Mode, and USB Suspend. Disables MSI mode + applies NVIDIA interrupt affinity to all device instances. Sets AMD Ryzen Balanced power plan. Verifies monitors at max refresh rate.
⚠ Won't run until your values are filled in: run find_my_values.bat in the same folder first (auto-loaded) or see guide Section 05
Download .bat
🔄
post_iracing_session.bat
Run after every session. Restores Defender real-time monitoring and re-enables all services that were disabled — Windows Update, Windows Search, Bluetooth, WiFi, Backblaze, and Xbox Live. Stops Process Lasso.
⚠ Run this after every session so Windows Update and backups resume normally
Download .bat
Download find_my_values.bat into the same folder as pre_iracing_launch.bat and run it first — it writes your three system-specific values (AMD GUID, NVIDIA instance IDs, driver version string) to my_values.bat, which pre_iracing_launch.bat loads automatically. No copy/paste needed. Guide Section 05 explains each value.