Frame times show what averages hide
Average FPS can remain high while a few frames take hundreds of milliseconds. At 60 FPS a regular frame takes about 16.7 ms; compare the graph and spike duration, not just the average. First-time effects, objects or areas that pause once and become smoother on repetition support a compilation or warm-cache hypothesis. They do not prove it: asset caching and background work can improve on a second pass too. Use a fixed route, identical settings and a recorded game and driver build, with a separate first-pass and repeated-pass observation.
Use compiler activity as supporting evidence
On a DXVK-rendered game, the compiler HUD can help associate visible spikes with compilation activity. Pipeline-library support can move compilation earlier, but cannot promise that every game avoids stutter. Direct3D 12 games use a different translation and pipeline path; a DXVK HUD is not their compiler monitor. A cache belongs to particular game, translation-layer and driver inputs, so updates can change its usefulness. Deleting caches before every test destroys the warm-run comparison and can deliberately recreate first-pass pauses.
Compare the competing resource limits
If reducing render resolution improves frame times with the GPU previously near full utilization, a graphics-work limit becomes more plausible. One busy CPU core can limit a game while total CPU usage stays moderate. A GPU utilization drop during a long stall may mean that it is waiting for the CPU or storage. VRAM near capacity needs allocation and eviction context; a used-memory number alone is not proof of exhaustion. Inspect I/O and memory pressure for repeated movement pauses. Under sustained load, pair temperatures with clock and throttling observations rather than applying a universal temperature threshold. Record VSync, frame caps, FSR and gamescope settings, since each can alter pacing and the workload measured.
Gather evidence before changing the system
Run one command at a time in the relevant host or game environment. Read its requirements and interpretation first. The website displays commands and never runs them.
Temporary diagnostic environment
MANGOHUD=1 %command%Requirements: MangoHud installed in the applicable Vulkan runtime and architecture. OpenGL needs its wrapper; gamescope uses mangoapp instead of regular MangoHud.
For a Vulkan path, observe frame times alongside GPU, CPU and memory metrics. Confirm the overlay actually loaded; absent or unsupported counters are not zero workload.
Temporary diagnostic environment
DXVK_HUD=frametimes,compiler %command%Requirements: A DXVK game in Steam; not the VKD3D-Proton Direct3D 12 path.
For Direct3D through DXVK, compare compiler activity with visible frame-time spikes. The graph supports correlation, not a confirmed root cause.
Read-only observation
cat /proc/pressure/memory /proc/pressure/ioRequirements: Linux with PSI support; missing files mean the interface is unavailable.
Read host-wide stalled-task pressure. Compare samples around the route; a single sample cannot attribute all pressure to the game.
A controlled test with a way back
Run the same short route twice without deleting caches or changing settings. Compare spike count and duration, compiler activity and resource pressure. Then, if needed, change just resolution for a separate GPU-work comparison.
Rollback: Remove the overlay options and restore the original resolution. Leave the original caches intact so no recovery download or recompilation is required.
What this test cannot establish: Overlay sampling can miss short events and can alter performance. A smoother second pass also fits asset caching; repeated stalls with storage or GPU errors need those separate branches.
Sources and scope
This editorial review uses primary project and distribution references. It does not establish that a fix has been reproduced on your hardware. Installed versions, the game runtime and the selected graphics API can change the result.
- MangoHud: metrics and runtime requirements
Frame-time, GPU, CPU and memory metrics support observation; overlay availability depends on API and runtime.
- DXVK: HUD, logs, device selection and pipeline compilation
DXVK translates older Direct3D APIs and exposes diagnostic HUD and device-selection controls.
- Linux kernel: Pressure Stall Information
Memory and I/O pressure measure stalled task time; they do not identify a game’s root cause.