Handling Vertex Elements

The number of vertex elements in a shader declaration that a DirectX 9.0 version driver can handle depends on whether the driver's device supports fixed-function or programmable vertex processing. For more information about vertex elements in a shader declaration, see Separating Declarations and Code for Vertex Shaders.

If the device supports fixed-function vertex processing, the driver must handle up to 17 vertex elements (FVF codes).

If the device supports programmable vertex processing, the driver must handle up to 64 vertex elements and skip over those elements that it does not use. Because each channel (4 maximum) of an input register (16 maximum) for a device that supports vertex shader 3_0 and later can be declared separately, up to 64 (16 * 4) vertex elements are possible. This maximum number of 64 does not include the end element, which is formed from the D3DDECL_END macro.