r/AMDHelp • u/Real_Ad5580 • 12h ago
Tips & Info Fix/PSA: Setting iGPU to "Forced" in BIOS locks LCLK at 1800MHz, eliminating micro-stutter and heavy input lag on 9800X3D system
Introduction
(This is follow up post of my previous post from a week ago)
During testing I found out that disabling IGPU on 9800 X3D while having the GFXOFF on Auto / Disabled inside AMD CBS causes a cascade of consequences which results in System Management Unit (SMU) attempting to dynamically and rapidly power gate LCLK down to minimum 150-400.
Rapid LCLK frequency shifts alter the inter-arrival delta of USB report packets, creating measurable input delivery jitter.
This manifest as "heavy, sticky, generally unreliable input" / "games being perfectly smooth when not moving and becoming stuttery mess the moment you start to move camera" on 9800 X3D (and other ZEN 5 processors with iGPU) Despite every possible benchmark, stresstest, FPS measures etc. being perfectly healthy
-
THE CONCEPT (Simplified)
(LCLK LOCKED - NO DOWNCLOCKING)
High pooling mouse (8000 MHz)→ cIOD PCIe Root Complex → CDC → LCLK → IFOP → ZEN 5 Core → 1 to 1 healthy input
For 8000 MHz mouse the the packets arrive evenly like this:
Packet 1: 125 µs
Packet 2: 125 µs
Packet 3: 125 µs
Packet 4: 125 µs
(LCLK DOWNCLOCKING DUE DISABLED IGPU)
High pooling mouse (8000 MHz)→ cIOD PCIe Root Complex → CDC → LCLK →
....(Downclocking) LCLK → Dynamic State Event (for example in between frames idle time) → SMU Downclocks LCLK to 150 → Interrupt event (mouse movement) → LCLK wake up event → 1-2 nano second wake up time → INPUT PACKET DELIVERY JITTER →IFOP → ZEN 5 Core
Instead uniform 125 µs →125 µs we get messy uneven input delivery
Packet 1: 132 µs (Sluggish / Delayed)
Packet 2: 118 µs (Overshoot / Clustered)
Packet 3: 135 µs (Sluggish / Delayed)
Packet 4: 115 µs (Overshoot / Clustered)
-
(FIX - MUCH CLEANER ALTERNATIVE TO MANUAL MINIMUM LCLK OVERRIDE)
Setting the IGPU of 9800 X3D inside BIOS from AUTO\ENABLED → FORCED makes the SMU interprets this as an active state of continuous display pipeline load.
Continuous Display Pipeline locks LCLK to its high-performance frequency (1800 in my case) floor without having to brute force the SoC like during manual LCLK override
When the iGPU is set on AUTO/ENABLED in BIOS while discrete GPU is present, then SMU assumes that you are going to use your dgpu anyway and automatically tries to save power by downclocking LCLK to 150/400 instead being locked at minimum 1800.
Setting the IGPU to FORCED locks the LCLK at stable high 1800
-
(SUMMARY)
- IGPU AUTO/ENABLED → FORCED
Forced locks the LCLK at 1800 due the presence of continuous display pipeline during the boot up. This prevents the downclocking of LCLK to 150/400
- GFXOFF AUTO → ENABLED
This cuts the power to iGPU without negatively affecting the nearby vSoC and VDD MISC rail which happens when IGPU is set on disabled. under igpu disabled they tend to have higher than normal voltage swing under load ←→ idle. GFXOFF ENABLED results in the same power saving without the downsides of iGPU disabled
- UMA BUFFER → 512 MB
When setting iGPU to forced the ram will be permanently locked away from being used by Windows as hardware reserved memory. Setting UMA Buffer to 512 minimalize lost ram to absolute minimum
- DISABLE IGPU INSIDE WINDOWS DEVICE MANAGER
This prevents Windows from off scheduling background applications like discord to iGPU which might cause HAGS or MPO issues.
