At the GDC, Microsoft has announced that its DirectX API now supports Variable Rate Shading (VRS). The major reason for adopting VRS cited by Microsoft is that games can benefit from double digit rendering speed gains using the technique. Clinching the deal, Microsoft says that VRS scenes are indistinguishable in quality compared to scenes that don't use the GPU labour-saving tech.
When Nvidia launched its Turing GPUs, RTX real-time raytracing and DLSS image smoothing stole all the headlines. Thus Turing support for VRS was somewhat overshadowed, despite its potential for delivering performance gains. Recently we saw indications that the AMD Navi architecture might use a VRS technique for performance gains too.
Nvidia's VRS slide from its Turing launch helps sum up how this technique works. Microsoft's Jacques van Rhyn sums it up in words as follows:
Traditionally, when developers set a game’s shading rate, this shading rate is applied to all pixels in a frame.
There’s a problem with this: not all pixels are created equal.
VRS allows developers to selectively reduce the shading rate in areas of the frame where it won’t affect visual quality, letting them gain extra performance in their games. This is really exciting, because extra perf means increased framerates and lower-spec’d hardware being able to run better games than ever before.
VRS also lets developers do the opposite: using an increased shading rate only in areas where it matters most, meaning even better visual quality in games.
In addition to the above, Microsoft says it has designed VRS for DX12 to be "extremely straightforward" to implement.
Another interesting thing about the VRS support in DX12 is that there are two tiers of hardware with VRS support. Tier 1 and Tier 2 currently equate to 'most DX12 compatible hardware' and 'Nvidia Turing GPUs', respectively. As mentioned above there are rumours that AMD will have Tier 2 GPUs in the coming months, and Microsoft says Intel is experimenting with VRS in prototype Gen11 hardware due out later this year.
Civilization with VRS on (left), and off
Developer Fireaxis has already tweaked its Civilization game demo to work with VRS in DX12. You can see various VRS 4K screenshots from this demo on the Microsoft Developer's Blog post. Civilization's frame rate went up between 14 and 20 per cent thanks to VRS support in DX12.
The above developers have told Microsoft that they intend to implement VRS support in their games / engines. Microsoft is holding VRS coding sessions at GDC this week.