AMD warns of tessellation pitfalls

AMD is warning developers to think carefully about how they use the new tessellation features in DirectX 11, claiming that poor implementation can result in even the most powerful of GPUs becoming overwhelmed.

In a post on AMD's Game blog, vice president of the graphics division, Eric Demers, suggests that while DirectX 11's tessellation functionality allows for significantly higher detail in games, "careless use of the technology can quickly overwhelm the GPU and cause it to perform less efficiently with no visible benefit in image quality."

Without naming names, Demers goes on to highlight some of the major pitfalls that developers can run in to while adding tessellation to their DirectX 11-compatible games.

For those that don't know, tessellation is a function of DirectX 11 which allows developers to create small polygons out of larger models - increasing the complexity of the model, above and beyond what has previously been possible, while keeping memory and CPU utilisation at a minimum.

The first issue that Demers warns about is the over-use of the tessellation function to create ultra-tiny polygons of around a pixel in size. While that makes the model look incredibly detailed, it doesn't sit well with the 16-pixel rasterisation pipelines of most modern GPUs - resulting in the GPU's performance being absolutely crippled.

It's not just the rasterisation engine that gets a workout with over-tessellated models, either - the shader has to work eight times harder to add shadows to a model constructed of one-pixel triangles compared to a 25-pixel triangle - with very little benefit in terms of perceived image quality.

Finally, Demers warns that when a scene comprises large numbers of extremely small polygons, the efficiency of 'multi-sample anti-aliasing' - a technique for 'smoothing' the edges of a polygon - is drastically reduced.

Demers claims that AMD's 'developer relations engineers' are working with game producers to ensure that adaptive techniques are employed to keep image quality up without sacrificing performance: "This is done by using a variety of adaptive techniques that use high tessellation levels only for parts of a scene that are close to the viewer, on silhouette edges, or in areas requiring fine detail. Our goal is to keep polygon size at or above 16 pixels as much as possible. This allows for a fairly high polygon density, making scenes look great while also running well on all recent GPUs."

AMD hopes that its work on improved tessellation will give it an edge over its rival Nvidia, to the point where the company is developing a pre-tessellation engine that uses a GPU's vertex shaders to help reduce rendering bottlenecks - a technique that could give AMD the edge in many DirectX 11 games.

Demers denies that AMD will be keeping its performance-enhancing techniques to itself, however: "As gamers, we know that you just want a game that plays well. At AMD, we are committed to delivering the best possible gaming experience for all gamers, not just those using AMD hardware. To that end, we are continuing our work with developers of DirectX 11 games to help them use tessellation in the most efficient way possible."

It all boils down to one simple concept: 2011 is going to be a good year for gaming graphics.