Variable Rate Supersampling (VRSS) Delivers Better IQ Automatically for VR Gamers without Impacting Performance
Today’s CES Game Ready 441.77 driver brings improved performance and new features including Variable Rate Supersampling (VRSS) for virtual reality (VR). VRSS has been enabled in the 441.77 driver for 24 VR titles. We got a preview of today’s driver release from NVIDIA on Friday and have spent the weekend using, comparing, and benching VRSS. UPDATED 01/06/20 11 AM PT: We also got feedback from NVIDIA already and have updated our VRSS review to provide extra needed clarification.
This new Variable Rate Supersampling feature targets image quality (IQ) improvement by Supersampling MSAA (Multi-Sample Anti-Aliasing) selectively on the central region of a scene where it matters most for virtual reality gamers. To work with VRSS, a MSAA-enabled forward rendered DX11 VR game needs to be profiled by NVIDIA for Turing video cards. The maximum Supersampling factor that can be applied is limited by the level of MSAA used in the application.
We were confused at first by NVIDIA’s VRSS name since Variable Rate Supersampling isn’t full screen Supersampling in the traditional sense where a game’s images are rendered at a resolution above what the monitor can display and then scaled back down to the monitor’s native resolution. Supersampling generally refers to up- and down-sampling used to remove aliasing or pixelated edges from computer images. A Supersampled image generally has smoother transitions from one line of pixels to another along the edges of objects. However, in the case of VRSS, it refers specifically to Multi-Sample Anti-Aliasing (MSAA).
However, NVIDIA classifies VRSS under fixed foveated Supersampling. NVIDIA offers Variable Rate Shading (VRS) as VRS Wrapper for foveated rendering to make it easier for developers to integrate eye tracking with Supersampling and coarse shading; or they can use the full power of NVIDIA’s VRS for maximum flexibility. Like VRSS, both VRS and VRS Wrapper use MSAA buffers for Supersampling.
VRSS uses the same technology as Variable Rate Shading (VRS), but it is used for foveated Supersampling in VR. On a desktop display, VRS intelligently does less work to increase performance. In a VR HMD, VRSS intelligently does more work to increase image quality as long as there is performance headroom. Since VR has a fixed refresh rate (the Vive Pro is 90Hz), VRSS improves image quality while maintaining a fixed cadence. At 90Hz each frame is rendered in around 11ms. Without VRSS, if a frame is rendered in less time, the GPU waits for the next frame. With VRSS, the GPU uses its waiting time to Supersample the center of the scene by increasing the MSAA while still keeping the total frame time delivery at a fixed 11ms.
VRSS is based on the MSAA level set by the player in the game. For example, if MSAA is set to 4x, then VRSS in Adaptive mode will create a 4xMSAA region in the center of the screen that will expand and contract based on having sufficient performance headroom. If MSAA is set to 8X, then VRSS in Adaptive mode will create a 8xMSAA region in the center of the scene that expands and contracts. If Always On is set, a fixed area in the center of the scene will be created corresponding to the MSAA set in game but it will not expand nor contract.
NVIDIA: There are 2 different components in play here – VR game app provides MSAA, we leveraging on top of it to apply corresponding shading rates 4x or 8x.
Although IQ based on MSAA is very hard to capture in VR screenshots, this example of Spiderman: Homecoming can show some of the differences between VRSS on and off towards the center of the screen.
[twenty20 img1=”15985″ img2=”15986″ offset=”0.5″]
VRSS uses Turing architecture to improve the image quality at the center of the screen (where the player is looking) depending on the headroom of the video card. By using adaptive VRSS, a VR gamer doesn’t have to worry about having enough headroom to display the best image quality when setting in-game MSAA to its maximum.
NVIDIA: Again would like to re-iterate that VRSS is operating on top of MSAA to deliver IQ improvements.
VRSS Supported VR Games
Here are NVIDIA’s 24 VRSS supported VR games:
Eternity Warriors VR*
Hot Dogs, Horseshoes and Hand Grenades
Killing Floor: Incursion
L.A. Noire: The VR Case Files*
Mercenary 2: Silicon Rising
Rick and Morty: Virtual Rick-ality
Serious Sam VR: The Last Hope
Skeet: VR Target Shooting
Space Pirate Trainer
Special Force VR: Infinity War
Spiderman: Far from Home
Spiderman: Homecoming – Virtual Reality Experience*
Talos Principle VR
The Soulkeeper VR
The four games marked with an asterisk(*) are games that we tested using the Vive Pro. We plan to follow-up using the Rift CV-1 with Boneworks that uses foviated rendering to apply MSAA.
How to Use VRSS
VRSS can be enabled from NVIDIA Control Panel for supported games and it supports the following modes:
- Always ON – Applies SuperSampling to the fixed size central region of a frame. This mode does not consider GPU head room availability and might result in frame drops.
- Adaptive – Applies SuperSampling to central region of a frame only when there is GPU headroom available. Size of central region varies based on amount of GPU headroom available
- Off – Disables VRSS and is the default option.
NVIDIA Control Panel Setting
VRSS needs to be enabled from NVIDIA Control Panel Program settings for each supported game.
Open the NVIDIA Control Panel and go to ‘Manage 3D Settings’. Open the ‘Program Settings’ tab and ‘Select program to customize’. Find the name of the desired application from a list or use ‘Add’ to search for it. Alternatively, just play the VR game first and it will appear on recent programs when Add is selected.
Next, go to ‘Specify the settings for this program’ and scroll down through the settings to find ‘Virtual Reality – Variable Rate Super Sampling’. Change the setting to ‘Always On’ or to ‘Adaptive’. It’s probably best to try ‘Always On’ first until you know what to look for and how VRSS behaves. Hit ‘Apply’ and then close the control panel.
Launch the VR game making sure available MSAA setting options are enabled in-game. Choose the highest MSAA level.
The game’s desktop window will show an overlay indicator ‘VRSS: On’ if everything is set up properly.
We have 4 of NVIDIA’s VRSS enabled games installed for use with the Vive Pro. We use the Pro because image quality differences are more easily perceived on a higher resolution HMD like the Pro or the Valve Index over using a first generation HMD like the Oculus Rift CV-1. These are the four SteamVR games on NVIDIA’s list that we tried using VRSS.
- LA. Noire: The VR Case Files
- Spider-Man: Homecoming VR
- Eternity Warriors VR
All four games show noticeable IQ improvement using VRSS On over not having MSAA applied. The advantage of using adaptive VRSS all of the time is that MSAA is applied to the center of the screen as long as there is performance headroom. Normally when 4x or 8x MSAA is used in-game, it is applied to the entire screen with a significant performance hit that may or may not cause reprojection or dropped frames. But by using Adaptive VRSS, useful MSAA is applied to the center of the screen without causing reprojection or dropped frames.
NVIDIA: Again would like to re-iterate that VRSS is operating on top of MSAA.
Battlewake is a fantasy pirate game focusing on ship-to-ship combat and it has good visuals. Our RTX 2080 Ti was able to keep out of reprojection above 90 FPS and below 11ms with all settings maxed-out – High View Distance, 4xMSAA, Character Shadows, and at 100% resolution. However, we stressed it a bit harder by setting the resolution multiplier to 120% which moved our card into reprojection some of the time with 4xMSAA enabled.
There is an issue with the way that FCAT-VR reports synthetic frames as dropped frames so we cannot show interval plots. However, FCAT-VR shows that using no MSAA is the least demanding with 92.4 unconstrained FPS and 4xMSAA is more taxing with 87.7 unconstrained FPS pushing more often into reprojection above 11ms. Using VRSS has very similar perceived image quality but Adaptive VRSS performance fits in-between with an unconstrained FPS of 88.1 FPS. Of course, this is an edge case where we already pushed the RTX 2080 Ti into some reprojection so VRSS can’t help here.
With some newer games such as Boneworks, for example, only the center of the scene will experience superior image quality when 8xMSAA is selected but the peripheral areas will not be Supersampled. For these games also, VRSS can deliver superior image quality while not compromising on performance – see the chart of the first image of this post. For older games, when 8xMSAA is selected, the entire scene is Supersampled causing a large performance hit, and here VRSS can improve performance by concentrating on delivering the best IQ to the all-important center region.
Overall, we had a good experience with VRSS and our four test games over a very short weekend. We wish that NVIDIA will make the VRSS On/Off overlay visible momentarily in the HMD so we don’t have to remove it to look at the desktop for confirmation.
VRSS is a good optimization that offers as much IQ improvement as possible, while not adding extra work that would cause dropped frames. There are currently 24 VR games that work with VRSS and NVIDIA will continue to add more to the list since it doesn’t require any extra developer support.
These are exciting times for VR gamers. What is not to like about VRSS? A gamer can just play any supported VR game using the maximum MSAA set in-game with adaptive VRSS without worrying about dropping extra frames. Best of all, VRSS works well together with increasing the resolution multiplier that can sharpen the image and decrease any screendoor effect as long as there is performance headroom.
NVIDIA: There could be instances where enabling higher MSAA levels like 8x MSAA would tax the game & result in dropped frames. VRSS wouldn’t help in these scenarios. We can’t and won’t configure MSAA levels provided in app for VRSS.
Next up, we have a T-FORCE Delta Max maxed-out RGB 500GB SSD for review by the end of the week.
Happy (VR) Gaming!