GUIDE · FPS LIMIT · VSYNC · LATENCY · DXVK 3.1.1
Limit FPS in DXVK: the 3.x way, measured
How we checked this
The quick fix
Pick one. Both set the same cap.
dxvk.maxFrameRate = 60
DXVK_CONFIG="dxvk.maxFrameRate = 60" %command%
dxvk.maxFrameRate applies to every Direct3D version. d3d9.maxFrameRate and dxgi.maxFrameRate apply to that API only (D3D9/D3D8, and D3D10/11). We have not tested which wins when both are set, so set only one.
According to DXVK’s own file, the values mean:
| Value | Meaning |
|---|---|
| 0 | Default. Limits to the display refresh rate when VSync is on and the real display mode does not match the game's. |
| n | Limit to n frames per second. |
| -n | Limit to n only if the game runs much faster for a short time. Mainly for app profiles; it does not engage when VSync or an external limiter holds the rate. |
| -1 | Always disable the limiter, for games that default to a low refresh rate with no way to change it. |
No rows match.
We tested the positive value only. If you set it and nothing changes, check that DXVK read the file: see the check step.
We measured it
The removed DXVK_FRAME_RATE variable did nothing (184 FPS); the dxvk.conf line held the cap.
Our own test program on machines with no physical GPU (F21, F22). What is measured is whether the cap works, not how a game feels.
Show the data
| Item | Value (FPS) |
|---|---|
| DXVK_FRAME_RATE=60 (Wine): ignored | 184.0 |
| dxvk.maxFrameRate = 60 (Wine) | 60.5 |
| dxvk.maxFrameRate = 60 (Windows Server 2025) | 58.0 |
| dxvk.maxFrameRate = 60 (Windows Server 2022) | 57.8 |
| DXVK_CONFIG d3d9.maxFrameRate=30 (Wine) | 28.3 |
This is a test app on a software renderer. It shows the cap mechanics only. It does not show frame pacing, which needs a real GPU and a game; we have not measured that.
Why DXVK warns about its own limiter
When the limiter is on, DXVK 3.1.1 writes this to its log (our Windows Server 2025 run):
warn: Built-in frame rate limiter enabled. Please enable an external limiter instead in order to avoid poor frame pacing.
DXVK itself recommends an external limiter.
In plain words: an average of 60 FPS can still look uneven if frames arrive unevenly. DXVK’s file says the built-in limiter exists mainly for games whose physics or simulation depends on frame rate and which have no limiter of their own, that limiters from MangoHud or Gamescope give a significantly better experience, and that in some games it may reduce performance or make frame pacing less consistent. We did not capture a frame-time trace to show this ourselves.
Pick the right limiter
| Platform / goal | Prefer | Basis |
|---|---|---|
| Linux, any game | Gamescope or MangoHud first, then dxvk.maxFrameRate | DXVK's own file |
| Windows, game has its own FPS cap | The in-game cap first | General advice, untested |
| Windows, no in-game cap | A dedicated external limiter (for example RTSS or the GPU driver's cap), then dxvk.maxFrameRate | General advice, untested; DXVK says external limiters are better |
| Old game whose physics break at high FPS | dxvk.maxFrameRate: any reliable hard cap works and a file is the simplest | DXVK's file names this as the purpose |
| Steam Deck | The Deck's own frame limit | Not tested by us |
No rows match.
VSync and tearing
| Option | What it does (from DXVK's dxvk.conf) |
|---|---|
| d3d9.presentInterval, dxgi.syncInterval | Override the game's VSync. 0 turns VSync off entirely, a positive n turns it on and repeats each image n times, a negative value (default -1) has no effect. |
| dxvk.tearFree | Auto, True or False. True uses the mailbox present mode when regular VSync is off, which removes tearing but may be unsupported; False uses relaxed FIFO when VSync is on, which can tear but cuts stutter when FPS drops. DXVK asks people not to report issues with it. |
No rows match.
For variable refresh rate (G-Sync, FreeSync) on Windows, DXVK leaves exclusive full-screen off by default; dxvk.allowFse = True can enable VRR and HDR but may break alt-tab (see the option entry). We did not test VRR.
Input latency and frame queue
d3d9.maxFrameLatency and dxgi.maxFrameLatency set a stricter maximum frame latency, 0 to 16; 0 has no effect (DXVK’s file). A smaller number keeps fewer frames queued between the CPU and GPU. dxvk.latencySleep (Auto, True or False, since 2.6) controls DXVK’s built-in latency reduction and Reflex support; the file says it assumes the game samples input after Present returns and can reduce performance in some games. We have not measured input latency, so we make no claim about how much any of this helps.
Game-specific caps
Old games often need a cap because their physics depend on frame rate; the game guides cover them one by one: Fallout: New Vegas, GTA IV, The Sims 3 and Source games, which have their own fps_max.
Questions people ask
Why does DXVK_FRAME_RATE not work any more?
DXVK removed it in version 3.0. In 3.1.1 the variable set to 60 left our test program at 184 FPS. Use dxvk.maxFrameRate = 60 in dxvk.conf instead (finding F21).
How do I cap FPS at 60?
Add dxvk.maxFrameRate = 60 to dxvk.conf next to the game's .exe. Our test app then ran at 60.5 FPS under Wine and about 58 on Windows Server (F21).
How do I cap only one game?
Put the line under a [Game.exe] section in a shared dxvk.conf, or put a dxvk.conf next to that game's .exe only (finding F24).
Is the DXVK limiter the best way to cap FPS?
DXVK's own file says not to use it if an external limiter is available, because limiters from MangoHud or Gamescope give a significantly better experience. It exists mainly for old games whose physics depend on frame rate.
Does the cap reduce input lag?
Not by itself, and DXVK warns it can make frame pacing worse. Latency settings are separate; we have not measured input lag.
Sources
- DXVK dxvk.conf at v3.1.1 (frame rate, latency, VSync sections) · accessed 2026-11-07
- DXVK releases (3.0 notes: DXVK_FRAME_RATE removed) · accessed 2026-11-07