DOOM: The Dark Ages — Vulkan Streamline / Reflex Limiter / Path Tracing Reproduction
Why this investigation started. There are two separate questions. First: how can DOOM: The Dark Ages be held slightly below a 144 Hz VRR ceiling so it does not repeatedly enter the higher-latency VSync ceiling? Many shipped Reflex / Frame Generation titles do this automatically, but DOOM: The Dark Ages exposes no normal frame-rate limiter in its video menu. The game does, however, contain a hidden Streamline/Reflex limiter: r_streamlineReflexMinFrameTimeUs.
The second problem. That hidden limiter works on the normal rendering path, including with 2× DLSS Frame Generation. But when Path Tracing / Ray Reconstruction is active and FG is actually presenting generated frames, the limiter stops governing final output even though the CVar remains set. In menus, where FG reports Presented 1x, the limiter immediately starts working again.
Goal 1: keep output below the VRR ceiling
On a 144 Hz G-SYNC/VRR display, the practical target is roughly 138 FPS rather than repeatedly touching 144 FPS and entering the VSync ceiling. This is familiar behavior in many shipped Reflex + Frame Generation titles: the presentation path stays slightly below maximum refresh, preserving VRR behavior and avoiding the additional latency associated with hitting the VSync ceiling.
DOOM: The Dark Ages does not expose a normal frame-rate limiter in its video menu. The engine does expose one through Streamline/Reflex.
The key CVar
r_streamlineReflexMinFrameTimeUs 7250 1,000,000 / 7250 = 137.93 FPS
The engine itself describes the CVar as the minimum frame time sent to Reflex, in microseconds. Empirically, while Streamline is active, 7250 µs behaves as a real pacing target. It still works when visible Reflex Low Latency is set to Off. If Streamline is disabled entirely, the same CVar becomes inert.
What NVIDIA documents developers actually doing
NVIDIA's Streamline Reflex programming guide treats the Frame Rate Limiter as a separate Reflex-plugin sub-feature, controlled by sl::ReflexOptions::frameLimitUs. The same options structure independently controls Reflex Low Latency mode.
At integration time, the developer sets the desired options with slReflexSetOptions(), then calls slReflexSleep() at the point in the application's frame loop where it should sleep for pacing / latency behavior. NVIDIA specifically says slReflexSleep() should continue to be called even when Reflex Low Latency mode itself is Off.
For DLSS Frame Generation, NVIDIA's Streamline guide also requires the host application to integrate Streamline Reflex and provide correctly matched frame markers.
What the engine says
r_streamlineEnabled "is":"2" default:"2" 0 = Disable Streamline 1 = Enable Streamline 2 = Enable Streamline using slSetTagForFrame() API r_streamlineEnabled can only be set on the command line
LOG: Disabling Vsync because it is not supported while FG is active.
These statements establish two useful boundaries visible from the game itself: Streamline residency is effectively a process-level integration choice, and the engine knowingly disables VSync when Frame Generation becomes active.
Observed state matrix
| Path | VSync | FG | PT / RR | CVar | Observed output |
|---|---|---|---|---|---|
| Streamline active | Off | Off | Off | 0 | ~190+ FPS |
| Streamline active | On | Off | Off | 0 | ~144 FPS |
| Streamline active | Forced off by FG | 2x active | Off | 0 | ~330+ FPS |
| Streamline active | Off | 2x active | Off | 7250 µs | ~69 real → ~138 final |
| Streamline active | Off | 2x active | PT + NRR | 7250 µs | ~110–114 real → ~220–228 final |
| Streamline active, menu | Off | 2x configured / Presented 1x | PT + NRR | 7250 µs | ~138 FPS |
| Streamline active, menu | Off | Off | PT + NRR | 7250 µs | ~138 FPS |
| Streamline disabled | Varies | Unavailable | Varies | 7250 µs | Limiter inert |
Findings
With Streamline loaded and FG off, VSync off allows roughly 190+ FPS, while VSync on clamps output to the display ceiling.
This is logged directly by the engine; it is not inferred from FPS behavior.
With normal 2× FG, 7250 µs lowers real rendering to roughly 69–70 FPS and holds final output near 138 FPS. It also functions with visible Reflex Low Latency mode disabled.
Disabling Streamline at launch leaves the CVar registered, but the limiter becomes inert.
The CVar remains at 7250, but final output rises to roughly 220–228 FPS. PT without active generated-frame presentation does not reproduce the failure.
Receipts
Click any screenshot to open the original embedded image in a centered modal. Page scrolling is locked until the image is closed. Click the image again, click outside it, or press Esc to return.
Receipt group 1 — Finding the hidden below-refresh limiter
The first receipts establish the normal presentation behavior: VSync with and without FG, Streamline residency, the hidden frame-limit CVar, and the fact that 7250 µs can reproduce the desired ~138 FPS sub-refresh target.
Receipt 1: Baseline: Reflex limiter works with Reflex/ VSync / FG off
r_streamlineReflexMinFrameTimeUs =7250. Engine, Steam overlay, and monitor hardware counter all sit at ~138 FPS. 1,000,000 / 7250 = 137.93 FPS.Receipt 2: Streamline can be disabled only at process launch
Receipt 3: Streamline disabled exposes the internal DLSS-sized viewport
Receipt 4: Vendor and graphics DLLs loaded by the process
Receipt 5: Streamline on, FG off, in-game VSync off
Receipt 6: Streamline on, FG off, in-game VSync on
Receipt 7: FG active: engine explicitly disables VSync
Receipt 8: FG active + 7250 us limiter: final output becomes ~138
r_streamlineReflexMinFrameTimeUs =7250, real rendering falls to roughly 69-70 FPS and final presented output is ~138 FPS. The value behaves as an FG -aware final-output pacing target on this path.Receipt 9: Menu state: FG configured 2x, Presented 1x, limiter still applies
Receipt group 2 — Path Tracing breaks the limiter only while FG is actively presenting
From this point forward, the test changes from “does the limiter work?” to “why does the limiter stop working when Path Tracing / Ray Reconstruction is enabled?” The receipts isolate the failure to PT/RR plus actively presented Frame Generation. The same limiter works again in menus where FG becomes Presented 1x, and it also works with PT still active when FG is disabled.
Receipt 10: Path Tracing OFF: 7250 us limiter behaves normally
Receipt 11: Path Tracing + Ray Reconstruction + active FG : limiter stops governing final output
r_streamlineReflexMinFrameTimeUs still reads 7250, yet real rendering is roughly 110-114 FPS and final FG output is roughly 220-228 FPS. The CVar value survives, but its final-output pacing effect does not.Receipt 12: PT + FG configured, menu Presented 1x: limiter works again
Receipt 13: PT active + FG disabled in menu: limiter also works
Interpretation
On the ordinary 2× DLSS FG path, the Streamline/Reflex pacing system appears to treat 7250 µs as a final-output target: host rendering drops to roughly 69–70 FPS so generated presentation lands near 138 FPS.
With Path Tracing + Ray Reconstruction and actively presented FG, that coordination changes. The game instead renders around 110–114 real FPS and FG doubles it to roughly 220–228 FPS despite the CVar still reporting 7250.
The menu state is the strongest discriminator. As soon as generated-frame presentation is suspended to Presented 1x, the limiter starts working again without disabling PT. That places the defect at the intersection of the PT/RR path and active FG presentation, not in PT alone and not in storage of the CVar.
No claim is made here about AMD hardware behavior. These tests establish behavior on an RTX 5090 only.
Minimal reproduction
Display: 2560x1440 @ 144 Hz VRR GPU: RTX 5090 Driver: 591.59 Renderer: Vulkan Set: r_streamlineReflexMinFrameTimeUs 7250 1) Path Tracing OFF, DLSS FG 2x active: ~69-70 real FPS -> ~138 final FPS limiter behaves as expected. 2) Path Tracing + Ray Reconstruction ON, DLSS FG 2x actively presented: CVar still reports 7250 ~110-114 real FPS -> ~220-228 final FPS limiter no longer governs final output. 3) Keep PT/RR ON and enter a full-screen menu: FG remains configured as 2x but reports Presented 1x limiter immediately returns to ~138 FPS. 4) Keep PT/RR ON and disable FG: limiter remains ~138 FPS. Failure condition: PT/RR + actively presented DLSS Frame Generation.
Observed facts are separated from implementation inference. The screenshots are the primary evidence.