Ever heard of upscaling? It’s a common optimization technique used in game development to increase rendering performance. It involves rendering at a lower resolution than the device’s native resolution, and then upscaling the composited image to native resolution. However, the potential increase in rendering performance, can come at the cost of reduced visual quality.
Upscaling is commonly performed using bilinear interpolation-based approaches. They offer fast performance but sometimes at the expense of blurriness (e.g., blurring edges and details). Other upscaling techniques can provide a better balance of performance versus quality, but may require multiple rendering passes which increases bandwidth, or have scaling limits (e.g., only 2x).
What if there was a new approach to upscaling? One that not only maintained or increased FPS, reduced power consumption, and facilitated high visual fidelity, but left you extra time during your game’s rendering pass for additional rendering enhancements? How would you use that extra time to improve your game?
These were the questions our team at Snapdragon Game Studios pondered, as they reviewed several games where developers reduced visual quality and effects (e.g., lighting, shadows, etc.) to achieve their desired FPS despite the use of upscaling.
To resolve the issue, the team decided that a new upscaling solution was needed – one that could facilitate smooth gameplay, great visuals, and power efficiency. The result: Snapdragon Game Super Resolution. Let’s take a closer look at this new approach.
Upscaling the Snapdragon Game Super Resolution way
Snapdragon Game Super Resolution integrates upscaling and sharpening into a single GPU pass which reduces latency and memory bus usage, thereby reducing power consumption and increasing speed. It uses a 12-tap Lanczos-like scaling filter and adaptive sharpening filter to provide visual quality on par with other spatial upscaling techniques. Snapdragon Game Super Resolution is highly optimized for Snapdragon’s Adreno™ GPU where it can provide maximum wave occupancy for full GPU utilization.
The solution has also shown good performance on other Qualcomm GPUs. It presents smooth images and sharp edges, and most importantly, results which are perceptually close to that of rendering to native resolution.
Figure 1 below, shows a comparison between Snapdragon Game Super Resolution and other approaches:
Behind the Scenes
Snapdragon Game Super Resolution reduces the number of registers, texture samples, and arithmetic logic unit (ALU) instructions required for upscaling on Qualcomm Adreno GPU, which results in better shader processor utilization.
Behind the scenes, a 12-kernel window handles the luminance calculation which uses only the green (G) channel, since the human eye is most sensitive to this color. Thus, Snapdragon Game Super Resolution samples only use one component for each pixel calculation and perform a three-component interpolation, totaling only 15 texture instructions. Adreno GPUs can hide the latency of these texture samples, yielding 100% shader processor utilization. The process is performed at the pixel level which analyzes neighbouring pixels and detects edges to avoid bleed. As a result, native resolution image can then be merged with UI elements for final display on the screen.
The improved performance can buy you additional time during the rendering pass that you can use to further enhance your visuals. For example, add better lighting and shadows, enhanced textures, more post processing effects – all of which add that final polish which gamers crave.
Figure 2 below, shows a performance comparison between Snapdragon Game Super Resolution running on the Snapdragon 8 Gen 2 Mobile Platform versus a competitor’s upscaling solution:
If you’re interested in trying out Snapdragon Game Super Resolution, we’ve made our OpenGL and Vulkan (GLSL) and DirectX (HLSL) implementations available on our Snapdragon Game Super Resolution GitHub page. You can use both versions in your Windows on Snapdragon apps and the OpenGL version in your Android apps running on Snapdragon mobile platforms.
Snapdragon Game Super Resolution for Meta Quest
VR gaming presents both new challenges and opportunities. Meta Quest 3, powered by the Snapdragon XR2 5G Platform, is a leading headset in the VR space.
To help VR developers achieve even higher frame rates, power efficiency, and image quality on the Meta Quest 3, Snapdragon Game Super Resolution enabled Meta to generate a VR-specific version – Meta Quest Super Resolution (MQSR) – which was built on top of Snapdragon Game Super Resolution with adjustments for optimal VR performance and quality.
MQSR has a VR-optimized, edge-aware scaling and sharpening algorithm, designed to maximize the headset’s Adreno GPU. You can easily add MQSR to your application by enabling a layer that tells the VR compositor your intention to use the upscaler:
- OpenXR: Set the quality sharpening flag option in the composition layer extension for OpenXR.
- Unity: Enable via OVROverlay for compositor layers, or OVRManager for projection layers.
- Unreal: Set the sharpen filter to quality sharpening in the rendering section of the Player Start entity.
You have full control of which layer it should be applied to, and UI elements, if present, can be passed via another layer already scaled to eye buffer size. MQSR incorporates range-aware dynamic scaling with customizations for the Adreno GPU pipeline, so you can preserve borders and details, and perform dynamic blur to produce smooth edges without impacting performance.
Since MQSR only requires the application’s color buffer for upscaling, you can more easily integrate it without requiring applications to pass any additional buffers. We strongly recommend using this technique instead just bumping your eye buffers, as it provides a considerable visual improvement versus stretching your render targets.
You can also employ regular Snapdragon Game Super Resolution in your Meta Quest projects to upscale other surfaces such as when rendering to texture surfaces, or if super resolution is needed before other passes such as composition, post FX, transparency, etc.
See Meta’s State of Compute: Maximizing Performance on Meta Quest presentation for more information about enabling and using MGSR.
Conclusion
Upscaling can be an effective rendering optimization technique to improve FPS and power efficiency. When applied correctly, it can also buy you extra time during your rendering pass that you can use for improved visuals like better lights, shadows, textures, and post-processing passes.
For additional information, check out the following resources:
- Our original Snapdragon Game Super Resolution announcement
- Using Super Resolution to Boost Resolution in Virtual Reality
You can also join our Developer Community on Discord to connect with fellow developers.

