Mesh Shading: A Foundation for More On-Screen Objects
Architectural enhancements are commonly split between changes that affect gaming today and new features that require support from future titles. At least at launch, Nvidia’s GeForce RTX cards are going to be judged predominantly on the former. Today’s games are what we can quantify. And although veterans in the hardware field have their own opinions of what real-time ray tracing means to an immersive gaming experience, I’ve been around long enough to know that you cannot recommend hardware based only on promises of what’s to come.
The Turing architecture does, however, include a few more advanced graphics features loaded with potential but not yet accessible. Mesh shaders, for instance, augment the existing DirectX 11/12 graphics pipeline whereby host processors are responsible for calculating levels of detail, culling objects that aren’t in view, and issuing draw calls for each object. Up to a certain point, CPUs are fine for this. But in complex scenes with hundreds of thousands of objects, they have a hard time keeping up.
By using a mesh shader instead, game developers can offload LOD calculation and object culling to a task shader, which replaces the vertex shader and hull shader stages. Because the task shader is more general than a vertex shader, it’s able to take a list of objects from the CPU and run it through a compute program that determines where objects are located, what version of each object to use based on LOD, and if an object needs to be culled before passing it down the pipeline.
MORE: Best Graphics Cards
MORE: All Graphics Content