Impact of tessellationTo summarise our analysis of the impact of tessellation in Crysis 2 DirectX 11 Ultra, we have represented the total cost of tessellation in a graph comparing performance in Extreme mode as default and adding Ultra objects and water. Of course this includes the resource demands of Parallax Occlusion Mapping, but the impact of this is much smaller, which gives us an acceptable approximation:
The results are without mercy for the Radeons, which are a long way behind the GeForces when it comes to processing tessellation. We can see that the GeForce GTX 580 and 570 benefit from their additional dedicated units in comparison to the mid-range GeForce cards to reduce the impact of tessellation.
On the other hand, while the Radeon HD 6900s are supposed to double throughput when tessellation is used (we confirmed this in theoretical tests), in practice this isn’t the case in Crysis 2. Is this due to a GPU limitation in certain cases? Are the drivers limited in terms of support for the double tessellator? Or is it a bug? As during our tests AMD had no answer other than the drivers advised for use with Crysis 2 DirectX 11 were still the Catalyst 11.6s, we don't know.
More logically, the Radeon HD 6800s benefit from having a larger tessellation unit buffer to gain in efficiency over the Radeon HD 5800s. The Radeon HD 5770 actually has an identical tessellation unit to the Radeon HD 5870, but benefits here from having fewer processing units to reduce the bottleneck in terms of access to the memory shared by these units.
Impact of the level of tessellation
The max tessellation factor, which is limited to 64 by default in DirectX 11, can be controlled in the AMD drivers. This factor controls geometry amplification and represents not the number of triangles generated but the maximum number of subdivisions for each edge of the triangle. The number of new triangles is therefore much higher than the tessellation factor and depends on the algorithm used.
We observed both the cost of tessellation and the performance in DirectX 11 Ultra mode on the Radeon HD 6950 and the various MaxTessFactor limits:
Hold the mouse over the graph to view performance in the DirectX 11 Ultra Upgrade.
As expected, the impact of tessellation drops off but however still includes the cost related to Parallax Occlusion Mapping. In terms of performance, reducing the MaxTessFactor from 64 to 32 gives a 10% gain while dropping to 16 puts the Radeon HD 6950 on a par with the GeForce GTX 560 Ti.
There is a slight difference in quality when you set the MaxTessFactor at 32. It’s invisible on most elements of the image but noticeable on the walls. As of 16, quality drops more significantly on the walls but remains pretty much equivalent on other objects. Beyond 16, while some elements are still displayed with a decent level of quality, this isn't the case for the walls at all – they’re probably the objects that benefit most from tessellation.
We therefore advise Radeon users to go for a MaxTessFactor of 32 or even 16 if you're prepared to make a few compromises on quality. Note that AMD isn’t yet using the MaxTessFactor to limit the level of tessellation by default and we of course hope that this doesn’t change.