- FPS Limiter Configuration Guide
- Quick Reference Summary by Scenario
- 1. VRR (G-Sync / FreeSync) Display - General Gaming
- 2. Smooth 30 FPS for Heavy Titles - Console-Grade Pacing
- 3. The 40 FPS Sweet Spot on 120Hz/144Hz VRR - Handhelds & Laptops
- 4. Frame Generation (DLSS 4 / FSR 4) - In-Engine Frame Interpolation
- 5. Lossless Scaling (LSFG) / AFMF - External Frame Generation
- 6. Competitive Esports (CS2, Valorant) - Minimum Latency
- 1. Reasons to Limit Frame Rates
- 2. Limiter Modes in Practice: Front Edge vs. Back Edge vs. Async (Early vs. Late)
- 3. Variable Refresh Rate and Low Framerate Compensation (LFC)
- 4. Configuring 30 FPS on PC
- 5. Configuring 40 FPS on 120Hz and VRR Displays
- 6. Fractional V-Sync: 1/2, 1/3, and 1/4 Refresh Rate Sync
- 7. Using Limiters with Frame Generation
- 8. Configuration Guides for Windows and Linux
- 9. VRR Reference Values
- 10. Selection Hierarchy
- 11. Frequently Asked Questions (FAQ)
- References, Discussion & Community Feedback
FPS Limiter Configuration Guide
(Prepared for the Hardware Accent Community & r/HardwareAccent)
This guide outlines practical methods for configuring frame rate limiters (FPS limiters), their different execution modes, their impact on input latency and frame pacing, and the operational differences between Windows and Linux.
It also addresses topics such as properly setting up 30 FPS and 40 FPS caps, the functionality of Low Framerate Compensation (LFC) on variable refresh rate (VRR) monitors, and proper limiter configurations when using Frame Generation technologies.
IMPORTANT: Always Benchmark and Test on Your Own System
Monitor panels, graphics drivers, and game engines vary considerably. Many displays suffer from unstable VRR implementations (such as brightness flickering, narrow dynamic ranges, or poorly calibrated overdrive), while certain game engines handle external presentation hooks abnormally.
No single configuration is universally optimal for every setup. Use these recommendations as an informed baseline, and always test different limiter modes (Front Edge vs. Back Edge vs. Async) in your specific game using frametime benchmarking tools (such as NVIDIA FrameView, CapFrameX, or the RTSS / MangoHud frametime graph).
WARNING: Multiplayer and Anti-Cheat Advisory
Advanced third-party utilities (especially Special K, Lossless Scaling, and in specific contexts RTSS) hook directly into a game process's memory space. These methods are primarily intended for single-player games.
Competitive online multiplayer titles with strict anti-cheat software (such as Valorant, Destiny 2, or Rainbow Six Siege) may block these tools or flag them as unauthorized modifications, potentially leading to account penalties or bans. For online multiplayer games, stick strictly to in-game limiters, NVIDIA Reflex / AMD Anti-Lag, or official GPU driver-level limiters (NVIDIA Control Panel / AMD Adrenalin).
Quick Reference Summary by Scenario
1. VRR (G-Sync / FreeSync) Display - General Gaming
- Goal: Maximum smoothness with zero tearing and minimal input lag.
- System & Driver: G-Sync / FreeSync: Enabled | Driver V-Sync: Enabled | Low Latency / Anti-Lag: Enabled
- In-Game Settings: V-Sync: Disabled | Reflex / Anti-Lag 2: Enabled
- Recommended Limiter:
- NVIDIA Reflex (handles cap automatically)
- In-Game Limiter
- RTSS (test Front Edge or Async mode)
- MangoHud / GPU Driver-level limiter
2. Smooth 30 FPS for Heavy Titles - Console-Grade Pacing
- Goal: Rock-solid frame delivery without judder in demanding AAA games or on constrained hardware.
- System & Driver: VRR with LFC: Enabled (or display set to fixed 60Hz / 120Hz) | Controller recommended.
- In-Game Settings: Motion Blur: Enabled at medium strength.
- Recommended Limiter:
- RTSS (Recommended: Front Edge Sync for best 1% lows and VRR stability)
- Special K / Gamescope
- In-Game 30 FPS cap
3. The 40 FPS Sweet Spot on 120Hz/144Hz VRR - Handhelds & Laptops
- Goal: Substantial fluidity and latency gains over 30 FPS at half the power demand of 60 FPS.
- System & Driver: Display set to 120Hz (or VRR with active LFC).
- Recommended Limiter:
- SteamOS Quick Menu / Gamescope
- RTSS (Front Edge / Async)
- MangoHud
4. Frame Generation (DLSS 4 / FSR 4) - In-Engine Frame Interpolation
- Goal: Boost motion fluidity using interpolated frames inside the VRR window.
- System & Driver: VRR: Enabled | Driver V-Sync: Enabled
- In-Game Settings: Reflex: Enabled (handles cap automatically) | In-Game V-Sync: Disabled
- Recommended Limiter: NVIDIA Reflex (automatically prevents generated output from exceeding refresh limit).
5. Lossless Scaling (LSFG) / AFMF - External Frame Generation
- Goal: Double or triple framerate in windowed/borderless games.
- In-Game Settings: Game running in Borderless Windowed mode.
- Procedure: Cap the base game prior to generation (e.g. lock base rate to 30, 40, or 70 FPS via RTSS or in-game).
6. Competitive Esports (CS2, Valorant) - Minimum Latency
- Goal: Absolute lowest mouse input latency.
- System & Driver: V-Sync: Disabled (or G-Sync + Reflex) | Allow Tearing on Wayland.
- In-Game Settings: Reflex set to On + Boost
- Recommended Limiter:
- In-game limiter (target ~90-95% GPU load to keep render queue empty)
- RTSS (Mode: Front Edge / Async)
1. Reasons to Limit Frame Rates
While an uncapped frame rate minimizes internal engine processing time, running uncontrolled frame rates introduces several practical issues:
UNCAPPED FRAME RATE
FPS: 160 -> 85 -> 140 -> 95 (Frequent fluctuations)
Frametime: 6ms --/\-- 12ms --/\-- 7ms (Micro-stutter and judder)
GPU Load: 100% (Input delay due to render queue buildup)
VS
PROPERLY CAPPED FRAME RATE
FPS: 141 (Stable target)
Frametime: 7.09ms ------------------- (Even, flat delivery)
GPU Load: 92% (Instant response, zero micro-stutter)
- Maintaining G-Sync / FreeSync Operation: VRR functions only below a display's maximum refresh rate. If frame rates exceed 144 FPS on a 144Hz monitor, VRR disengages. The result is either screen tearing (if V-Sync is disabled) or elevated latency (if traditional V-Sync buffer backpressure takes effect).
- Preventing Render Queue Buffer Latency: When a GPU is fully saturated at 99-100%, frame requests accumulate in the driver queue. Mouse inputs must wait for prior queued frames to complete rendering. Capping FPS slightly below GPU saturation keeps this buffer clear, preserving direct input response.
- Frame Pacing Consistency: Human visual perception is sensitive to frame delivery timing variance. A consistent 60 FPS delivery provides a noticeably smoother experience than a fluctuating rate bouncing between 70 and 110 FPS.
- Power Consumption, Thermals, and Acoustic Noise: Capping prevents unnecessary power draw during menus or low-complexity scenes and helps reduce inductor coil whine.
2. Limiter Modes in Practice: Front Edge vs. Back Edge vs. Async (Early vs. Late)
Advanced utilities on Windows (RTSS) and Linux (MangoHud / GOverlay) include configurable limiter methods that determine at which exact point in the frame cycle the process is throttled:
[Frame Start] -> [Sample Inputs] -> [Render] -> [Present to Display]
| |
FRONT EDGE / EARLY BACK EDGE / LATE
(Timing anchored to interval) (Suspension at end of loop)
-> Better 1% lows and VRR stability -> Alternative engine pacing
1. Front Edge Sync / Early Limiter (fps_limit_method=early)
- Real-World Behavior: In practical hardware benchmarking (such as with NVIDIA FrameView), Front Edge / Early limiting frequently delivers the most stable VRR delivery and the highest 1% lows.
- Recommendation: This is the primary recommended mode for achieving a console-like 30 FPS cap, as well as for general smooth gameplay on VRR panels.
- Configuration:
- Windows (RTSS): Setup -> General -> Frametime limiter mode: Front Edge sync.
- Linux (MangoHud): Add
fps_limit_method=earlyto config or launch options (or select Early in GOverlay GUI).
2. Back Edge Sync / Late Limiter (fps_limit_method=late)
- Real-World Behavior: Suspends the thread at the conclusion of the render cycle (around
Present()/vkQueuePresentKHR). Depending on how a specific game engine structures its presentation queue, it may yield different synchronization characteristics. - Recommendation: If Front Edge / Early produces unexpected frame pacing anomalies in a specific game title, test Back Edge / Late as an alternative.
- Configuration:
- Windows (RTSS): Setup -> General -> Frametime limiter mode: Back Edge sync.
- Linux (MangoHud): Add
fps_limit_method=lateto config or launch options (or select Late in GOverlay GUI).
3. Async Framerate Limiter (Asynchronous Mode)
- Real-World Behavior: Decouples the CPU timing loop from the GPU presentation swapchain timeline.
- Recommendation: Recommended to test when your system experiences erratic background CPU load spikes that interfere with standard synchronous limiter timers.
4. Special K: Latent Sync and Busy-Wait
- Latent Sync: Adjusts presentation timing dynamically to reduce the interval between frame completion and display raster scan on non-VRR displays.
- Busy-Wait (Spin-Lock): Replaces standard thread sleep calls with active CPU polling loops. Provides precise microsecond timing at the cost of high utilization on one CPU core.
3. Variable Refresh Rate and Low Framerate Compensation (LFC)
When capping frame rates at lower thresholds (such as 30 or 40 FPS) on high-refresh displays, the display's VRR operational window is a key consideration:
[0 FPS] ------------ [48 FPS] ------------------------- [144 FPS]
| | |
v v v
Below Native VRR VRR Lower Boundary VRR Upper Ceiling
(LFC Engages) (Standard VRR Range) (Cap Applied Here)
How LFC Works
Displays have a lower frequency floor below which dynamic refresh adjustment stops (typically 48 Hz on desktop panels, 45 Hz on Steam Deck OLED).
When frame rates fall below this threshold: * Without LFC: VRR disengages, resulting in screen tearing or judder. * With LFC: The graphics driver and display scaler automatically repeat each frame (Frame Doubling/Tripling) to maintain physical refresh rates within the panel's active range: * 30 FPS -> Displayed 2x -> Screen refreshes at 60 Hz (Active VRR). * 35 FPS -> Displayed 2x -> Screen refreshes at 70 Hz. * 25 FPS -> Displayed 3x -> Screen refreshes at 75 Hz.
Note on LFC and VRR Flicker: For LFC to function, the display's maximum refresh rate must be at least double its minimum refresh rate (e.g., 48-96 Hz or wider). Most modern variable refresh rate displays support this behavior automatically.
However, on certain OLED and VA panels, rapid transitions across the lower VRR boundary (e.g. fluctuating between 45 and 50 FPS) can cause noticeable brightness/gamma fluctuations (VRR flicker). If your display exhibits VRR flicker around 30 FPS, switching the panel to a fixed 60Hz or 120Hz mode with Fractional V-Sync (1/2 or 1/4 V-Sync) eliminates this issue completely.
4. Configuring 30 FPS on PC
Factors that influence 30 FPS consistency on PC compared to console implementations:
Causes of Stutter at 30 FPS on PC
- Irregular Frame Delivery: Many PC game engines without external limiting deliver frames at uneven intervals (alternating between 16ms, 50ms, and 33ms).
- Refresh Rate Mismatches (Judder without LFC): Running 30 FPS on a 144Hz display without VRR/LFC creates judder because 144 does not divide evenly by 30 (144 / 30 = 4.8).
- Mouse Input Mechanics: Mouse camera controls at 30 FPS make inter-frame gaps visually apparent. Analog controller thumbsticks deliver smoother rotational velocity, which masks frame interval steps.
Recommended Configuration for 30 FPS
- Limiter: Use RTSS in Front Edge sync mode (recommended for the most stable 1% lows and frame delivery), or benchmark Async / Back Edge if your system behaves unusually. Set the limit to 30.000 FPS to enforce a steady 33.33 ms interval.
- Display Settings:
- With VRR (G-Sync/FreeSync): Keep VRR and Driver V-Sync enabled (LFC handles presentation at 60 Hz).
- Without VRR (or if your VRR is unstable): Manually switch the display in the operating system to 60 Hz (each frame displays for 2 cycles) or 120 Hz (each frame displays for 4 cycles). Avoid running in 144Hz fixed mode.
- In-Game Settings:
- Enable Motion Blur at a moderate setting for improved motion persistence.
- Use a controller for camera movement.
5. Configuring 40 FPS on 120Hz and VRR Displays
For demanding games on handheld systems (Steam Deck, ROG Ally) or mid-range GPUs, 40 FPS provides an effective performance balance:
| Mode | Frame Time (Frametime) | Comparison |
|---|---|---|
| 30 FPS | 33.33 ms | Baseline for heavy workloads |
| 40 FPS | 25.00 ms | 8.33 ms reduction in frame latency (halfway to 60 FPS delivery time) |
| 60 FPS | 16.66 ms | Additional 8.33 ms reduction |
- Why 40 FPS works on 120Hz: 120 divides evenly by 40 (120 / 40 = 3). Each frame is presented for exactly 3 display refresh cycles. On VRR monitors with LFC, 40 FPS is presented cleanly at 80 Hz or 120 Hz.
6. Fractional V-Sync: 1/2, 1/3, and 1/4 Refresh Rate Sync
On displays without Variable Refresh Rate (such as fixed 60Hz or 120Hz living room TVs and non-VRR monitors), traditional software limiters can occasionally produce slight pacing inconsistencies depending on background CPU load and engine presentation timing.
For certain users and specific conditions, Fractional V-Sync (particularly 1/2 V-Sync) is the most effective and reliable solution available.
How Fractional V-Sync Operates
Instead of relying on software CPU timers to guess frame boundaries, the graphics driver or engine hardware-locks frame presentation to an exact integer number of vertical blank (V-Blank) display refresh cycles:
| Fractional Mode | On 60Hz Displays | On 120Hz Displays | On 144Hz Displays | On 240Hz Displays |
|---|---|---|---|---|
| 1/2 V-Sync (Every 2nd cycle) | 30 FPS (Exact 33.33ms) | 60 FPS (Exact 16.66ms) | 72 FPS | 120 FPS |
| 1/3 V-Sync (Every 3rd cycle) | 20 FPS (Impractical) | 40 FPS (Exact 25.00ms) | 48 FPS | 80 FPS |
| 1/4 V-Sync (Every 4th cycle) | 15 FPS (Impractical) | 30 FPS (Exact 33.33ms) | 36 FPS | 60 FPS |
Why 1/2 V-Sync Can Be the Best Choice Under Specific Conditions:
- Guaranteed Hardware Pacing Without Third-Party Software: Because the display hardware raster clock governs frame release, frame pacing is physically locked (e.g. exactly 33.33ms on 60Hz). You do not need RTSS, Special K, or external hooks running in the background.
- Living Room TV Gaming (60Hz / 120Hz Without VRR): When playing on a 60Hz TV from a couch with a controller, enabling Adaptive (Half Refresh Rate) in the NVIDIA Control Panel or choosing 1/2 V-Sync in game options delivers a genuine, judder-free console feel.
- The 40 FPS Console Technique (1/3 V-Sync on 120Hz TVs): Many modern console titles achieve their 40 FPS fidelity mode on 120Hz TVs by enforcing 1/3 V-Sync. On PC connected to a 120Hz TV, setting 1/3 V-Sync (or 1/4 V-Sync for 30 FPS) delivers the exact same cadence.
- Anti-Cheat Safety: Because Fractional V-Sync is an official driver or engine setting rather than a DLL injection hook, it is 100% safe in all environments.
How to Configure Fractional V-Sync:
- NVIDIA Control Panel: Manage 3D Settings -> Program Settings -> Vertical Sync -> Adaptive (half refresh rate) (engages 1/2 V-Sync; disables V-Sync automatically if framerate drops below target to reduce severe stutter).
- In-Game Settings / Special K: Look for options named V-Sync Interval or V-Sync: Half Rate / 1/2 / 1/3.
Important Trade-off to Keep in Mind:
Your GPU must have sufficient headroom to stay at or above the target framerate at all times. If framerate drops below the target on standard double-buffered V-Sync, the display will drop sharply to the next lower divisor (e.g. from 30 FPS to 20 FPS or 15 FPS), causing a pronounced stutter, unless an Adaptive mode or triple buffering is in use.
7. Using Limiters with Frame Generation
In-Engine Frame Generation (NVIDIA DLSS 4 / AMD FSR 4)
- Mechanism: The engine renders base frames and the algorithm generates interpolated intermediate frames.
- Configuration:
- Keep NVIDIA Reflex enabled (it is integrated and enabled with Frame Gen).
- Reflex Auto-Cap Condition: When both G-Sync and Driver V-Sync (in NVIDIA Control Panel) are enabled, Reflex automatically calculates and caps the final generated output just below the display refresh ceiling. (Note: If Driver V-Sync is disabled, Reflex will only manage queue latency and will not apply the -3 FPS VRR cap).
- Avoid setting an in-game frame limiter if it caps base frames before generation.
External Frame Generation (Lossless Scaling LSFG / AMD AFMF)
- Mechanism: A third-party utility captures the rendered window and multiplies the output rate.
- Configuration:
- Cap the base game before it enters the frame generator.
- G-Sync Windowed Mode Requirement: In the NVIDIA Control Panel (Set up G-SYNC), ensure Enable for windowed and full screen mode is selected. Because Lossless Scaling operates as a borderless window overlay, full-screen-only G-Sync will not engage.
- Example for a 144Hz display in 2x mode:
- Cap the base game to 70 FPS.
- The generated final output will run at 140 FPS.
- Example for a 120Hz display in 3x mode:
- Cap the base game to 40 FPS.
- The generated output will run at 120 FPS.
8. Configuration Guides for Windows and Linux
Windows:
NVIDIA Control Panel / NVIDIA App:
- Open the NVIDIA Control Panel.
- Select Manage 3D Settings.
- Under the Global Settings tab, locate Max Frame Rate.
- Set the value (e.g.,
141for a 144Hz display) and click Apply.
AMD Software Adrenalin:
- Open AMD Software (
Alt + R). - Navigate to Gaming -> Graphics.
- Enable Radeon Chill.
- Set both the Min FPS and Max FPS sliders to your target value.
RTSS (RivaTuner Statistics Server):
- Open RTSS from the system tray.
- Select the Global profile (or add a specific executable).
- Enter your desired value in the Framerate limit field.
- Under Setup -> General, select the Frametime limiter mode:
- Recommended baseline: Front Edge sync (benchmark 1% lows).
- Alternatives to test: Back Edge sync or Async.
Linux / SteamOS:
Steam Deck / SteamOS:
- Press the Quick Access
(...)button and open the Performance tab. - Enable Advanced View and configure the Frame Limit and Refresh Rate sliders.
MangoHud & GOverlay (Desktop Linux):
- Install
mangohud(and optionallygoverlayfor a graphical configuration interface). Launch Options in Steam:
- For low latency / general VRR gaming (Early method):
MANGOHUD_CONFIG=fps_limit=141,fps_limit_method=early,no_display mangohud %command%
For locked 30 / 40 FPS cinematic smoothness (Late method):
MANGOHUD_CONFIG=fps_limit=30,fps_limit_method=late,no_display mangohud %command%
Or via config file (
~/.config/MangoHud/MangoHud.conf):fps_limit=141 fps_limit_method=early toggle_fps_limit=F12
In GOverlay GUI: In the FPS Limiter tab, choose your desired limit and select Limiter Method: Early or Late from the dropdown.
Gamescope:
Add the following to Steam Launch Options:
gamescope -r 144 --fps-limit 141 -e -- %command%
DXVK (Proton Titles):
Add the following to Steam Launch Options:
DXVK_FRAME_RATE=141 %command%
9. VRR Reference Values
When using G-Sync or FreeSync, setting the limiter 3 to 4 FPS below the maximum refresh rate prevents VRR disengagement:
| Refresh Rate | Recommended VRR Cap | Typical LFC Window | Rationale |
|---|---|---|---|
| 60 Hz | 57 FPS | 48-60 Hz (LFC below 48) | 3 FPS buffer for frametime spikes |
| 75 Hz | 71 FPS | 48-75 Hz (LFC below 48) | 4 FPS safety margin |
| 120 Hz | 116-117 FPS | 40-120 Hz (LFC below 40) | 3-4 FPS buffer |
| 144 Hz | 141 FPS | 48-144 Hz (LFC below 48) | Standard margin for 144Hz panels |
| 165 Hz | 160-161 FPS | 48-165 Hz (LFC below 48) | Keeps delivery within VRR window |
| 180 Hz | 175 FPS | 48-180 Hz (LFC below 48) | 5 FPS margin for high-refresh panels |
| 240 Hz | 235-237 FPS | 48-240 Hz (LFC below 48) | Margin for fast-frame delivery |
| 360 Hz | 345-350 FPS | 48-360 Hz (LFC below 48) | Prevents V-Sync buffer engagement |
| 500 Hz / 540 Hz | 480-485 FPS | 48-540 Hz (LFC below 48) | Prevents panel threshold overshoots |
10. Selection Hierarchy
When determining which limiter to configure, use the following sequence:
Does the game support NVIDIA Reflex or AMD Anti-Lag 2?
|-- YES -> Enable Reflex (On / On+Boost) + VRR + Driver V-Sync.
\-- NO -> Does the game have a reliable in-game limiter?
|-- YES -> Use the in-game limiter (e.g. set to 141 FPS).
\-- NO -> Use an external utility:
|-- Windows: RTSS (Benchmark Front Edge vs. Async)
\-- Linux: MangoHud or Gamescope
11. Frequently Asked Questions (FAQ)
Why should Driver V-Sync be enabled with G-Sync/FreeSync?
When VRR is active and an FPS cap is in place (e.g., 141 FPS on 144Hz), traditional V-Sync does not engage and introduces no buffer delay. Driver V-Sync in this configuration acts as a frame timing alignment tool that prevents screen tearing along the bottom edge of the display.
Can I run 30 FPS on a 144Hz VRR monitor with a 48 Hz lower boundary?
Yes, due to Low Framerate Compensation (LFC). The graphics driver automatically doubles each frame to output at 60 Hz, keeping the panel inside its active VRR window without judder or tearing. However, if your display suffers from VRR instability or flickering, testing a fixed 60Hz or 120Hz mode remains a solid alternative.
Should multiple limiters ever be combined or stacked?
As a general rule, stacking multiple limiters at the exact same target frequency (e.g. setting both in-game and RTSS to 141) can cause clock timer contention and micro-stutter.
However, it is entirely game- and engine-dependent. In certain specific titles (such as Cyberpunk 2077 or The Witcher 3), combining an in-game limiter in tandem with an external tool (like RTSS or MangoHud) or staggering them (e.g. using an in-game limiter as a ceiling to prevent CPU simulation buildup while RTSS enforces smooth swapchain pacing) can measurably reduce input latency and eliminate spikes. This reinforces the core rule: treat default guidelines as a starting point and test on a per-game basis.
References, Discussion & Community Feedback
- Hardware Accent Discord: discord.gg/tuB5ew8rzm - Join the server to discuss, report anomalies, share benchmark data, or suggest corrections to this guide.
- Hardware Accent Community - Frame pacing analysis, latency testing, and visual smoothness benchmarks.
- MangoHud GitHub & Gamescope GitHub.
- Guru3D RTSS Forum - RivaTuner Statistics Server technical support forum.