Jump to content

DirectX 12 Gaining Variable Rate Shading Support


Guest_Jim_*

Recommended Posts

Performance and quality are often two qualities that need to be balanced on computers and in video games. Increasing performance often requires reducing the image quality of a game, and similarly improving the visual quality can negatively impact performance. This is why it can be very valuable for games to offer a host of graphics settings, so you can tweak the quality and performance as you wish, but now Microsoft is adding features to DirectX 12 that will further open up the ability to tweak this balance.

There are many steps to rendering a scene in a game, with one of them being the shading of the pixels, which is when the calculations are done by the GPU's shaders to determine the final color of the image. The shading rate is effectively the resolution at which the shaders run, but this is different from the final screen resolution. A lower shading rate will decrease quality and increase performance while a higher shading rate decreases performance but will increase the quality of the image. What Microsoft is adding is Variable Rate Shading (VRS) features, allowing the shading rate to change across the screen. This will make it possible for parts of the screen that do not need the highest quality to have a lower shading rate, while other areas can keep the standard shading rate or even have it increased. Variable rate shading already exists on NVIDIA's Turing-based GPUs, Intel has been experimenting with it on its Gen11 hardware, and an AMD patent was discovered for what may be its VRS implementation in future GPUs.

Like many other features in DirectX 12, there are multiple tiers of hardware support, and in this case the number is two. With Tier 1 developers will be able to set a per-draw shading rate, so different draw calls can have different rates, such as those for objects at a distance. Tier 2 is a bit more interesting as it enabling control of the shading rate within a draw, using a screenspace image or per-primitive. Per-primitive means the individual triangles of an object can have different shading rates. The ability to work with a screenspace image means developers could describe areas of the screen to have different shading rates, such as for foveated rendering, that reduces the shading rate away from where the user is likely looking. This capability could be combined with an edge detection filter to increase the shading rate where aliasing may be occurring. DirectX 12 is the first graphics API to off broad hardware support for this technology.

If you visit the source link you can see some examples that were put together by Firaxis, the developers of the XCOM and Civilization series, as a proof of concept. A number of other studios are also looking to work with this technology, including Unity, Epic Games, Stardock, Ubisoft, Activation, 343 Industries, IO Interactive, Massive Entertainment, Turn 10, and Playground Games.

Source: Microsoft



Back to original news post

Share this post


Link to post
Share on other sites

×
×
  • Create New...