Variable Rate Shading is a Turing feature that increases rendering performance and quality by varying the shading rate for different regions of the frame.

VRS Wrapper makes it easier for developers to integrate gaze tracking capabilities of their HMDs for foveated rendering. This solution includes convenient presets for image quality and performance, as well as support for custom configurations.

Variable Rate Supersampling (VRSS) leverages VRS to apply supersampling in the region of interest of the screen in order to increase image quality.




Variable Rate Shading




An important property of VR systems is that the optics in the lens creates a varied resolution and sample rate of the view surface. With the Maxwell and Pascal architectures, we introduced techniques such as Multi-Resolution Shading (MRS) and Lens-Matched Shading (LMS) to optimize shading workloads for VR. MRS and LMS allowed developers to split the rendering surface up into subregions and match the sampling rate to the lens in each region, rather than overshading everywhere to meet the maximum local sampling needs.

Hardware: Compatible with: VR Ready Turing based GPUs.
Software: Compatible with the following APIs:
DX11, DX12, OpenGL, Vulkan.

Turing introduces a new and more flexible technique to control the shading rate called Variable Rate Shading (VRS). With VRS, the shading rate can now be adjusted dynamically across the image - every 16 pixel x 16 pixel region of the screen can now have a different shading rate.

This fine level of control enables developers to deploy new algorithms that were not previously possible for optimizing shading rate and increasing image quality. In this section, we will describe the underlying hardware mechanisms of VRS, and a few of the ways developers can enable it.


Figure 1 – Turing VRS supported shading rates and example application to a game frame.

Without VRS, every pixel in the scene in Figure 1 would be shaded individually (the 1x1 blue grid case). With VRS, the pixel shading rate of triangles can vary. The developer has seven options to choose from for each 16x16 pixel region, including having one shading result be used to color four pixels (2x2), or 16 pixels (4x4), or non-square footprints like 1x2 or 2x4. The colored overlay on the right side of Figure 01 shows a possible application to a frame - the car, sky, and foliage have been shaded at full rate (i.e., blue region) to preserve fine details. The area next to the car has been shaded once per four pixels (green), and the road to the far left and right periphery has been shaded once per eight pixels (yellow).

With Turing’s Variable Rate Shading technology, a scene can be shaded with a mixture of rates varying between once per visibility sample (super-sampling) and once per sixteen visibility samples. The developer can specify the shading rate spatially (via a texture). As a result, a single triangle can be shaded using multiple rates, providing the developer with fine-grained control.

Note that VRS allows the developer to control the shading rate without changing the visibility rate. The ability to decouple shading rate and visibility rate makes VRS more broadly applicable than techniques such as MRS and LMS, that lower total rendering resolution in specified regions. At the same time, VRS, MRS, and LMS can be used in combination since they are independent techniques enabled by separate hardware paths.


Increase rendering performance

Boost application performance using coarse shading

Maximize quality where it matters

Fine-grained control over image quality improvements via supersampling

Unlimited configurability

Obtain the best image quality and performance for your application



Get Started with VRS





VRS Wrapper



VRS can be leveraged for many uses cases, including applying supersampling to text and enhancing quality on certain materials or scene regions. But one particularly beneficial use case for VR is foveated rendering. To simplify integration of foveated rendering, we developed a streamlined set of APIs that address this specific use case.

The VRS Wrapper APIs assist developers in integrating foveated rendering within their DX11 application. This implementation provides the minimum number of APIs required for integration with much of the heavy lifting done inside the NVIDIA driver. This solution includes convenient presets for performance and quality, as well as support for custom configurations.

Hardware: Compatible with: VR Ready Turing based GPUs.

Requires an HMD with eye-tracking.
Software: Compatible with DX11 applications using forward rendering and MSAA.

FIGURE 2: Gaze determines foveated region.

VRS Wrapper consists of the following two interfaces and easy to use presets:

  • VRS Helper controls the foveated rendering parameters
  • Gaze Handler gathers and manages the eye-tracking data

Learn more about VRS Wrapper in our DevBlog Easy VRS Integration with Eye Tracking


Ease of integration

Simpler integration in DX11 using presets for regions and shading rates

Maximize quality where it matters

Fine grained control over image quality improvements via supersampling

Increase rendering performance

Boost application performance using coarse shading



Get Started with VRS Wrapper






Variable Rate Supersampling (VRSS)



FIGURE 3: VRSS 1 Fixed Foveated Region at 8X Shading Rate
(Background image of Boneworks courtesy of Stress Level Zero)


Variable Rate Supersampling (VRSS) leverages NVIDIA Variable Rate Shading (VRS), which is a key feature in NVIDIA’s Turing architecture, to apply different shading rates to regions of the HMD screen to increase image quality and performance.

Improving image quality where the user looks is paramount to reducing aliasing and providing a smoother immersive VR experience. VRSS accomplishes this by supersampling the foveated region.

Minimum Hardware: GeForce GTX 1650 Super
Recommended Hardware: GeForce RTX 2070 Super (more cards will provide superior image quality)
Software: Compatible with DX11 applications using forward rendering and MSAA.

Please play this video full-screen to see VRSS image quality improvement.

FIGURE 4: Side-by-Side Comparison VRSS On/Off


Foveated rendering is a technique where a region of the HMD screen is sampled at a higher shading rate. The first VRSS version supported fixed foveated rendering in the center of the screen. The latest version, VRSS 2, integrates dynamic gaze tracking, moving the foveated region where the user is looking.

VRSS is a zero-coding solution, so developers do not need to add any code to implement VRSS. All the work is done through NVIDIA drivers, which makes it easy for users to experience VRSS in profiled games and applications. With VRSS 2, we have closely integrated Tobii’s eye-tracking solution to enable dynamic foveated supersampling. And again, this doesn’t need developer integration - NVIDIA does this at driver-level.


FIGURE 5: VRSS 2 with Dynamic Foveated Region at 8X Shading Rate


Please play this video full-screen to see VRSS image quality improvement.

FIGURE 6: VRSS 2 improved image quality in the green circled foveated reagion.
(Onward courtesy of Downpour Interactive)

The dynamic foveated region can be super-sampled up to 8x to optimize image quality. The maximum shading rate achieved is limited to the MSAA sample count per pixel, so 8x supersampling is enabled via 8x MSAA, 4x supersampling is enabled via 4x MSAA, and so forth.

VRSS in the NVIDIA Control Panel

VRSS has two modes in the NVIDIA Control Panel: “Adaptive” and “Always On.”

  • Adaptive Mode: Takes performance limits into consideration, maximizing the size of the supersampling region without hindering the VR experience. The size of the foveated region grows and shrinks in proportion to the available GPU headroom.
  • Always On: A fixed-sized foveated region is always supersampled, providing maximum image quality (IQ) improvements. The size of the foveated region is adequate to cover the central portion of the user’s field of view. This mode will help users perceive the maximum IQ gains possible for a given title using VRSS. However, this may also result in frame drops for applications that are performance intensive.

VRSS can be applied to all VR games and applications that are DX11, Forward Rendered and have MSAA. Developers do not have to write any code to integrate VRSS; they simply submit their VR game or application to NVIDIA for testing. NVIDIA will test the VR game or application, and if it benefits from VRSS, then it will be allow-listed in the NVIDIA Driver. VRSS benefits both new and existing VR games and applications. VRSS 2 is available in NVIDIA Driver R465.



Maximize quality where it matters

Up to 8X supersampling in the region of interest

No developer integration

Developers simply submit their application for review




Sign up to get the latest news and updates on NVIDIA XR.




Submit your application





VRS in-action



NVIDIA Technical Blog
VRSS - Variable Rate Super Sampling
Coming soon ...

Variable Rate Supersampling will improve your VR gaming, a new Freestyle Splitscreen filter will let you further customize your creations, Max Frame Rate gives you ...

Learn More...

VR head-mounted displays (HMDs) continue to dramatically improve with each generation. Resolution, refresh rate, field of view, and other features bring unique challenges to the table.

Learn More...

We introduced Variable Rate Shading (VRS) last year with the Turing architecture. This new, easy to implement rendering technique allows developers to vary the amount of ...

Learn More...

ZeroLight’s proprietary visualisation platform is used across the automotive industry. Offering real-time product rendering, hyper-realistic visuals, our proprietary supersampling technology...

Learn More...

VR head-mounted displays (HMDs) continue to dramatically improve with each generation. Resolution, refresh rate, field of view, and other features bring unique challenges to the table. The NVIDIA VRWorks Graphics SDK has been offering various rendering technologies to tackle the challenges brought forth ...

Learn More...




Additional Resources