Today I read this post by caveman-jim on the Rage3D forums:
“…NVIDIA have lots of smaller tessellators where AMD has a single unit (two in VLIW-4 Cayman). This works great for tessellation factors (the # of subdivision) between 4 and 16, but efficiency tails off above that. NVIDIA’s does the same thing, but they have less of a hit relatively, and in absolute terms still have higher performance. The problem is, its makes no effing difference to visual quality, most especially in the way Crysis 2 implemented tessellation (non-visible architecture). So the little increase in graphics detail that was added by using tessellation has a massive performance hit because of how badly done it was. Read the techreport’s article on it.
tl;dr – once tessellation makes triangles smaller than pixel level, or is used to create geometry that’s never seen, it’s visually useless but a performance hit.”
It uses a tool to display the Crysis 2 meshes in wireframe mode. Giving images such as this:
Now, what do we know about wireframes? We know that each line has a thickness of one pixel. This means that triangles of ~2 pixels wide or tall or smaller will become totally solid in wireframe mode, since the lines occupy more space than the entire polygon area. Hence, if the triangles were smaller than 1 pixel in size, you would see an entirely solid blob of geometry in wireframe mode. Do we see any of that in the screenshots? No we don’t (sure, we see some solidness around the edges, but that’s only logical… you are looking at an almost 90 degree angle, so even if the polys on the top and sides were relatively large, they’d still be squashed into very thin polygons because of the angle. Besides, the edges are exactly where tessellation is adding extra rounded detail in this case). In fact, no tessellation benchmark I have seen anywhere has produced entirely solid wireframes.
So I wish the myth of “triangles less than one pixel” would stop already. You can’t point to screenshots like these and claim subpixel triangles in the same post. The majority of triangles are clearly considerably larger than a pixel, because the black background is clearly visible. And even parts that do appear solid are not necessarily subpixel size. They’re just less than 3 pixels wide/high so that the lines at the edges are squeezing together. It’s still quite a way down from there to subpixel level.
Update: caveman-jim appears to have edited his post to respond to this blog. Obviously the response is flawed again. I was going to respond on his forum, but it appears that my reply disappeared within minutes after posting it. So I have just written it down in a new blog entry here.