Timur Kristóf discusses working with the RADV Driver for the implementation of the AMD NGG “Next-Gen Geometry” Engine within RDNA GPUs
NGG is utilized for processing vertex and geometry calculations within RDNA and RDNA 2-based graphics cards. Recently, with the reveal of AMD RDNA 3 architecture and its requirements and specifications with graphics, it has been reported that NGG will always stay enabled. Previously, NGG was focused initially on working on the GFX9 and Vega architectures but was found to be quite problematic in use and did not help with increasing performance. Now, we are finding that it is more optimized and better used with RDNA architecture and its successors. The most significant issue with integrating NGG into the RDNA architecture is the complex nature of the driver. In turn, this struggle has caused NGG to be extremely difficult to execute for RadeonSI OpenGL and RADV Vulkan accelerators. Website Phoronix reports this is due to outside developers not working directly with AMD. The fixes have been harder to implement. On his blog, Kristóf discussed the difficulties with implementing the NGG driver, including his lack of seeing any performance advantages. The results from benchmarks and published samples have shown a contrasting amount of results from the NGG. Currently, NGG, along with adding shader culling, has been more accessible and produced a better improvement in performance on the RDNA 2 architecture. Developers from Valve have not seen performance increases when using NGG shader culling and, in turn, have disabled the next-gen geometry. Kristóf has gone into much more detail on his blog about the subject for readers interested in the topic. News Sources: Phoronix, Timur’s blog