The Vertex Shaders
Now it becomes theoretical. Radeon 9700 comes with four parallel vertex shader units, which all listen to the new Vertex Shader 2.0 standard. This doesn't just give Radeon 9700 twice the amount of vertex shaders found in NVIDIA's current flagship GeForce4 Ti, but four units that are much more sophisticated, per se, than the two vertex shaders of NV25.
The Vertex Shader 2.0 specification finally blesses future vertex shaders with real programmability, as it includes flow control instructions, such as conditional jumps, loops or procedures. Vertex programs can now consist of up to 1024 instructions (previously 128 instr.), but this is only a theoretical number, as loops and jumps naturally allow even larger numbers of successive instructions. The amount of constants has been increased to 256, and, most importantly, the new spec allows 128-bit FP color precision for the lighting part of the vertex processor.
ATi says that the four parallel vertex shaders of Radeon 9700 are capable of processing one vertex per clock, leading to a vertex or triangle rate of no less than 325 Mtriangles/s in case Radeon 9700 should indeed be clocked at 325 MHz.
Besides the already known N-patch 'higher order surface' tessellation, Radeon 9700 also includes displacement mapping, called "displacement mapped N-patch." This feature could already be found in Parhelia and is also part of DX9. ATi counts it into its new 'Truform 2.0' specification.
ATi supplied a good example for displacement mapping, comparing it to dot3 bump mapping. The latter is also able to give surface the look as if it had more geometry, but as a texture operation, it doesn't really produce more vertices. Displacement mapping does indeed create geometry. You can see the difference between the two in the picture below.