AMD Graphics Blog: Tessellation for All

AMD Graphics Blog: Tessellation for All - Min: 16 pixels / triangle

AMD has published a short post about the correct way to use hardware tessellation in OpenGL 4 and Direct3D 11 (Radeon HD 5000 and HD 6000 series).

Abusive tessellation leads to polygons covering 1 pixel or less, with an important impact on the rasterization performance and overshading.

The rule: keeping polygon size at or above 16 pixels as much as possible.

To overcome these challenges, our developer relations engineers make sure games can realize the full image quality benefits of tessellation while still making good use of GPU resources. 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. We have also developed techniques that can help balance tessellation workloads by doing a limited amount of pre-tessellation in vertex shaders, which can help to reduce the impact of bottlenecks in the rendering pipeline.

Read the complete post here: Tessellation for All.

We all know that AMD tessellation engine has poor performance compared to NVIDIA one. But this difference is mainly visible with high tessellation factors (let’s say 16 and up). With correct tessellation factors like X8, a HD 6870 can compete with a GTX 460 (in TessMark with a tess factor of X8, a HD 6870 has a score of around 26000 points while a GTX 460 shows a score of around 30000 points). In video games, the goal is to achieve the highest framerate with the best visual quality. And an abusive tessellation doesn’t bring the best visual quality, and even, a too high tessellation has an huge impact on the FPS. Just use some adaptive tessellation with proper coarse meshes and you’re okay!


4 thoughts on “AMD Graphics Blog: Tessellation for All”

  1. Psolord

    I wonder if we’ll see some “Use Adaptive Tesselation” in Catalyst at some point, so to enforce lower tesselation levels in 3D apps. Actually I don’t know if a driver enforcement is even possible.

    I mean could we have an extreme Heaven setting, that would not be so extreme when the supposed forced adaptive tesselation would be selected?

  2. WacKEDmaN

    that makes sence to me…even tho it is a bit of a tweak to make things faster on AMD GPUs..polygons that are so small they cause the wireframe to look like a point cloud are just pointless in my opinion..if we needed a point cloud, im sure theres quicker/more effecient methods of creating them other than using tessellation!..

    that said…i think 16 pixels may be a little too many!..~8 would probably do

  3. Daniel Rákos

    That’s what I was already telling several times. Usually AMD GPUs perform worse with tessellation because of the too small triangles.

    My question is why one wants to have triangles smaller than 16 pixels? Then you should rather go with voxels or whatever other technique. Such triangles are simply impractical and does not provide almost any added visual quality.

  4. Scali

    This is just a bunch of nonsense from AMD.
    Their problem is throughput, not triangle size. They shouldn’t flatter nVidia that much… nVidia’s tessellation is better, but not good enough to handle 1-pixel triangles everywhere. In most cases, even with nVidia’s Endless City demo, triangle sizes are over 16 pixels large.

    See also:

Comments are closed.