This short article brings some details to the first articles published yesterday about hardware tessellation on Radeon graphics cards:
- [TEST] Hardware Tessellation on Radeon in OpenGL (Part 1/2) – Theory
- [TEST] Hardware Tessellation on Radeon in OpenGL (Part 2/2) – Practice
AMD just provided me some clarification about the hardware tessellation on Radeon.
The main question in both first articles was about the max value of the tessellation factor.
On Radeon HD 2000, 3000 and 4000, the hardware tessellation unit (called tessellator) has a max tessellation factor of 15.0. This is a hardware limitation that can’t be changed by software tweaks. The tessellator of Radeon HD 2000, 3000 and 4000 is a fixed function unit and we can’t program it with a shader. In OpenGL there are only two functions (described HERE) that allow to control it.
On Radeon HD 5000 series (Evergreen family), things are different. The Radeon HD 5000 includes the fixed tessellator of HD 2000, 3000 and 4000 AND a new programmable tessellation unit. This new programmable tessellation unit will be exposed via a new OpenGL extension (available shortly). And this new extension will allow to exploit the maximum tessellation factor supported on HD 5000 graphics cards: 64.0. And this value of 64.0 is forced by Direct3D 11 specification. So we’ll be able to do Direct3D11-like tessellation in OpenGL shortly under all versions of Windows. Great news my friends 😉
On Evergreen family, both tessellation engines (fixed and programmable) are physically separated.
That’s why in the GeeXLab demo I was limited to 15.0 on my HD 5770. Currently GeeXLab uses the fixed tessellator (with a factor limited to 15.0) and not the new tessellator (with a factor of 64.0).
I can’t wait to test the new tessellator in OpenGL and add this support in GeeXLab.
And good news, the support of the fixed tessellation unit will be kept in all new Radeon and Catalyst.
Thanks to AMD for this clarification 😉
Update (2010.02.12):
The Radeon HD 5000 has two physically separated tessellation units: the old one (max factor of 15.0 – Radeon HD 2000, 3000, 4000 and 5000) and the new one (max factor of 64.0 – Radeon HD 5000 only). In both cases, the hardware tessellator (or tessellation stage) is a fixed function. The difference between both tessellation units is that in HD 5000 the tessellation stage is between new programmable stages (hull and domain) whereas in HD 2000, 3000 and 4000 the tessellation stage is alone.
References:
- AMD Publishes 6 New Direct3D 10 and 11 Demos: Quick Test and New Details About Tessellation
- Tessellation Overview @ Microsoft DX11
Pingback: [TEST] Hardware Tessellation on Radeon in OpenGL (Part 2/2) - 3D Tech News, Pixel Hacking, Data Visualization and 3D Programming - Geeks3D.com
Pingback: [TEST] Hardware Tessellation on Radeon in OpenGL (Part 1/2) - 3D Tech News, Pixel Hacking, Data Visualization and 3D Programming - Geeks3D.com
Guess us just a wait and see then for GL_EXT_tessellation_shader?
Wonder if it will be in OGL 3.3 or maybe a 4.0?
Also how did you manage to talk to an AMD dev?
hmm but why they leave fixed func unit? as I know none of applications use it at all except their dx9 tess sdk (and it works great btw) and their froblins demo well probably because of froblins demo…
How well does this GPU method integrate with cage meshes produced by tools that support subdivision surfaces like Wings3D and Blender, expecially since the norm is to model in all quads (although I saw the illustration of the quads broken down into triangles tesselated pretty predictably in part 2/2).
Would you still have the same topology concerns and artefacts – and would the topology strategies for modelling cages to be rendered with this algorithm be the same?
Pingback: AMD Publishes 6 New Direct3D 10 and 11 Demos: Quick Test and New Details About Tessellation - 3D Tech News, Pixel Hacking, Data Visualization and 3D Programming - Geeks3D.com
Pingback: The real reason why your DX10/10.1 Radeon tessellator can’t support DX11 « tse:
http://www.youtube.com/watch?v=BJymMWcXKcw
METRO 2033 Tes