Technical guide
Dynamic Resolution Scaling in PC Games Explained
Understand dynamic resolution scaling in PC games: how render resolution changes to manage GPU frame time, how it differs from fixed render scale and upscaling, and why image quality and performance vary.
On this page
- Dynamic resolution changes rendering resolution while the game is running
- Screen percentage affects pixel count in two dimensions
- The controller is trying to manage frame time, not maximize resolution blindly
- Dynamic resolution and temporal upscaling solve different parts of the pipeline
- Lower internal resolution does not make every pass cheaper
- CPU-bound scenes expose the limit of the technique
- Image quality depends on the floor, reconstruction method, scene and motion
- Dynamic resolution is a workload-control mechanism, not a performance guarantee
Dynamic resolution changes rendering resolution while the game is running
Dynamic Resolution Scaling, often shortened to DRS or dynamic resolution, lets a renderer change the resolution of selected rendering work while the game is running. The usual goal is to reduce GPU workload when the renderer is in danger of missing a frame-time budget, then raise resolution again when more GPU headroom becomes available.
Epic describes Unreal Engine dynamic resolution as adjusting primary screen percentage according to GPU workload within configured limits. Unity describes the same core idea as dynamically scaling render targets to reduce GPU workload. The display can remain at the same output mode throughout: a 3840×2160 monitor signal does not have to switch modes every time the game changes its internal rendering resolution.
| Control | What changes | Does it have to change during play? |
|---|---|---|
| Output/display resolution | The final display mode or output image size | No |
| Fixed render scale / screen percentage | Internal rendering resolution relative to an output target | No |
| Dynamic resolution | Internal rendering resolution is adjusted at runtime within a policy or range | Yes, by definition |
| Upscaling / reconstruction | Transforms a lower-resolution input toward a higher-resolution output | No; it can operate with fixed or dynamic input resolution |
Screen percentage affects pixel count in two dimensions
A percentage is easy to misread as a direct percentage of pixel count. In Unreal Engine, primary screen percentage scales both horizontal and vertical dimensions, so the number of rendered pixels changes approximately with the square of that percentage. A 50% screen percentage means roughly half the width and half the height, or about one quarter as many pixels for resolution-dependent work—not half as many pixels.
That relationship explains why relatively modest changes in linear resolution can materially alter some GPU costs. It still does not imply a matching frame-rate gain. Geometry, CPU simulation, draw submission, some compute work, ray-tracing work, memory behavior, post-processing and other passes can scale differently or not scale with primary rendering resolution at all.
The controller is trying to manage frame time, not maximize resolution blindly
A dynamic-resolution system needs a policy for deciding when to move resolution up or down. Epic exposes a frame-time budget, GPU-headroom target, a minimum change threshold, a minimum interval between changes and a history window for its Unreal Engine heuristic. Those controls exist because measured GPU time is noisy and an overly reactive controller can oscillate between nearby resolutions.
Sudden expensive events are another problem. Unreal Engine documents an over-budget panic path for cases such as a camera cut or unexpectedly expensive effect, where historical measurements cannot predict the spike in advance. This is why dynamic resolution should be understood as a feedback mechanism around rendering workload rather than a fixed graphics preset.
Dynamic resolution and temporal upscaling solve different parts of the pipeline
Dynamic resolution decides how large the internal rendering workload should be at a given moment. An upscaler decides how a lower-resolution image is converted or reconstructed toward the requested output resolution. The two techniques can therefore be used together: dynamic resolution varies the input resolution, while a spatial or temporal upscaler produces the output-sized image.
Epic separates primary screen percentage from the later upscaling stages in Unreal Engine and documents Temporal Super Resolution as an upscaler that can work with screen-percentage inputs. A game can also use a fixed render scale with an upscaler, or dynamic resolution with another reconstruction method. Seeing “dynamic resolution” in a menu does not identify the upscaling algorithm by itself.
Lower internal resolution does not make every pass cheaper
Resolution scaling most directly helps work whose cost grows with the number of pixels or scaled render-target samples being processed. Unity’s current ScalableBufferManager documentation describes dynamically scalable render textures in terms of width and height scale factors, making the affected buffer dimensions explicit.
Other work can remain tied to output resolution, use a different internal resolution, or be largely independent of pixel count. Epic notes, for example, that part of TSR processing is performed at a higher display resolution than the rendering resolution. This is one reason a reduction in internal pixel count should never be converted into an invented percentage FPS gain.
CPU-bound scenes expose the limit of the technique
If the GPU is the limiting part of the frame and resolution-dependent rendering is expensive, reducing internal resolution can create useful GPU headroom. If the frame is instead limited by CPU simulation, game-thread work, rendering-thread submission or another bottleneck that resolution scaling does not relieve, lowering resolution may do little for total frame time.
Epic’s Unreal Engine documentation explicitly exposes game-thread, rendering-thread and GPU timings alongside dynamic-resolution information, and even provides a separate CPU-bound screen-percentage policy. For players, that means a changing render scale is not proof that every slowdown is GPU-limited, and a fixed low scale is not a cure for CPU-limited stutter.
Image quality depends on the floor, reconstruction method, scene and motion
Dropping internal resolution gives later stages less spatial information to work with. Epic specifically recommends testing content across the low and high screen percentages that a project will use because detail can be lost at lower resolutions. Temporal reconstruction can recover substantial detail from multiple frames, but its result still depends on motion vectors, history, disocclusion, transparency, fine geometry and the implementation used by the game.
A useful evaluation therefore records the output resolution, the dynamic-resolution range or observed internal scale, the upscaling method and quality mode, and the scene being tested. Comparing one title at a fixed native resolution with another title using a variable internal resolution without noting those conditions mixes different rendering workloads.
Dynamic resolution is a workload-control mechanism, not a performance guarantee
The clean mental model is a feedback loop: the renderer observes performance, chooses an internal resolution allowed by its policy, renders resolution-dependent work at that scale, and then produces the requested output image. The display mode, internal render scale and reconstruction stage remain separate concepts even when a game hides them behind one graphics option.
That separation also explains why there is no universal “best” dynamic-resolution range. A sensible floor depends on the output resolution, reconstruction technique, visual content, target frame-time policy and the costs of the rest of the renderer. Engine documentation can explain the mechanism; only measurements from the actual game and settings can establish its performance and image-quality tradeoffs.
Sources
Primary and technical sources
Technical details can vary by exact model, firmware, and platform. These are the sources used for the factual claims in this article.
01 Epic Games
Dynamic Resolution in Unreal Engine: frame-time budgets, screen percentage, GPU timing and heuristic behavior02 Epic Games
Anti-Aliasing and Upscaling in Unreal Engine: screen percentage and Temporal Super Resolution behavior03 Unity Technologies
ScalableBufferManager: dynamic width and height scaling of render textures
Related
Continue from here
Useful next steps selected from the same technical reference and publication system.
Technical guide
16 GB vs 32 GB vs 64 GB RAM for Gaming PCs
Choose 16 GB, 32 GB, or 64 GB of system RAM for a gaming PC by measuring the games and simultaneous workloads you actually run instead of relying on a universal capacity rule.
Tool
DDR Memory Latency Calculator
Convert DDR data rate and CAS latency cycles into CAS timing in nanoseconds.
Technical guide
CPU Out-of-Order Execution Explained: Dependencies, Scheduling, Reorder Buffers, and Retirement
Learn how modern CPUs find instruction-level parallelism, rename registers, schedule ready work out of order, and still retire results in program order.
Tool
DDR Memory Bandwidth Calculator
Calculate theoretical peak DDR memory bandwidth from transfer rate, bus width per channel, and active channel count.