Triangelplockaren - Varibale Rate Shading

Image-based VRS added to games with no built-in support

by swecoder

Advertisement

Some time ago, D3D12 got variable rate shading (VRS) support, a technology that allows different parts of the image to be calculated with different quality levels (shading rates). For more information, I recommend reading this article.

I have expanded Triangelplockaren (Triangle Picker) with functionality to apply and visualize image-based VRS in existing games. The rendered frame image is analyzed and the result is then used to influence how the VRS settings should be the next frame. The result of the analysis is an image indicating whether the area should receive VRS 1X1, 2X2 (dark yellow in the Youtube sequences) or 4X4 (light yellow in the Youtube sequences). In order to achieve increased performance, the analysis step must be relatively fast, otherwise the possible performance gain may get lost.

So far, a few games have been tested, see below. None of them have built-in support for image-based VRS. Performance gains may vary greatly depending on how the game developer has chosen to render. For example, it is less advantageous if the compute pipeline was used for the heavier light calculations, since VRS only affects the rendering pipeline.

Take a look at the movie sequences below, they show how VRS may be used to increase the performance of existing games that do not have built-in support for VRS. The games were always rendered at 3840x2160 resolution and maxed out settings. The thresholds that are reported do not really mean much to you but are used internally in the analysis stage, higher value means higher acceptance and thus an increased probability that graphic errors will occur.

Tom Clancy's The Division

Below you will find a number of movie clips from the game's benchmark as well as a sequence showing the start of the game demo. The performance results in the movie sequences are not the same as obtained when movie recording is inactive. Therefore, benchmark results for each test case are also reported when video recording is not performed.

Summary of performance results
Without VRS: avg FPS: 56.3 - typical FPS: 57.0
With "VRS low": avg FPS: 61.1 - typical FPS: 61.4 - ~ 8-9% higher than without VRS
With "VRS high": avg FPS: 66.3 - typical FPS: 66.7 - ~ 17-18% higher than without VRS
With "VRS 4X4-everywhere": avg FPS: 76.4 - typical FPS: 76.8 - ~ 35-36% higher than without VRS

Benchmark

Gameplay

Battlefield V, gameplay

Mortal Kombat 11, benchmark

Metro Exodus, benchmark

Summary of performance results
Without VRS: avg FPS: 32.7 - max FPS: 45.4 - min FPS: 22.1
With "VRS low": avg FPS: 37.9 (~ 16%) - max FPS: 55.9 - min FPS: 23.1
With "VRS 4X4-everywhere": avg FPS: 42.4 (~ 30%) - max FPS: 60.7 - min FPS: 29.31

Metro Exodus, gameplay

FIFA 18 demo

Red Dead Redemption 2, gameplay and benchmark

Last updated June 12, 2020
Status
In Development
Platforms
Engine
Other
Release Date
June 12, 2020
Advertisement