AMD Vega Microarchitecture Technical Overview 29

AMD Vega Microarchitecture Technical Overview

Display Engine, Virtualization & Security Engines »

New Graphics Features

AMD has traditionally been at the forefront of introducing new APIs and supporting others, with Mantle being a key focus during the launch of their "Hawaii" microarchitecture. While Mantle as it was is practically dead now, most of it lives on in DX12 and Vulkan APIs, and AMD designed Vega to provide the best feature support yet for these modern APIs, of any other consumer GPU architecture. With DX12, the higher the tier level of support, the better it is, and a quick look at the table above shows how Vega exceeds both AMD Polaris and NVIDIA Pascal here. NVIDIA has promised a higher level of support with upcoming microarchitectures of their own, but for now, AMD is lord of the DX12 manor again.

Continuing the extended support path, AMD has finally added support for conservative rasterization with Vega - a Direct3D 11 feature NVIDIA has had since Maxwell. Conservative rasterization means that all pixels that are at least partially covered by a rendered primitive are rasterized, which means that the pixel shader is invoked. Normal behavior is sampling, which is not used if conservative rasterization is enabled. This is especially handy in situations involving collision detection, shadows, occlusion culling, and visibility detection.

With Direct3D 12, an additional control of overestimated or underestimated conservative rasterization has been added, which is also supported (as Tier 1 level) by Vega. In underestimated mode, only the pixels that are fully covered by a rendered primitive are rasterized. Underestimated conservative rasterization information is available through the pixel shader via the use of input coverage data, whereas only overestimated conservative rasterization is available as a regular rasterizing mode.

With Vega, AMD has also devised a new method to deal with the geometry pipeline. This also comes down to effective pixel shading and rasterization, wherein the new "Primitive Shader" combines both geometry and vertex shader functionality to increase peak throughput by as much as a 100% in the native pipeline relative to Fiji. The base improvement immediately helps in the rendering of scenes with millions of polygons where only a fraction is visible on screen at all times - a video game environment is a prime example here, with objects in front of others. Implementing primitive shader support comes partly with DX12 and Vulkan, but ultimately falls to the developers again, which can end up limiting the applications that make use of it. To aid in its adoption, AMD has increased the discard rate for the native pipeline by ~2x that of Fiji but, more importantly, by as much as 5x via the Vega NGG fast path implementation. Again, there has been no mention of NGG fast path being available any time soon, so it is a feature that may end up being theoretical only.

Ah, asynchronous compute - the one DX12 feature that caught NVIDIA unaware to where Ashes of the Singularity is still used by AMD to demonstrate their prowess here. With Vega, async compute continues to allow for both graphical and compute workloads to be processed simultaneously. Nothing new has been added specifically to Vega over GCN as a whole, with AMD claiming their architecture continues to handle it better than the competition.

GPU Open continues to be supported by AMD, and we touched on this when we covered AMD's Radeon Crimson ReLive Edition 17.7.2. Open source shader functions developed by AMD as part of the initiative with collaboration from industry partners, including DICE and id Software, have helped optimize GCN-based shader units for FP16 operations. This again is not necessarily Vega exclusive as the data used to quantify the optimization comes from a Doom (2016) developer presentation at SIGGRAPH 2016 for AMD's GCN architecture as a whole.
Next Page »Display Engine, Virtualization & Security Engines