?/TD> |
Microsoft DirectX 9.0 |
Declare the association between a vertex element usage and usage index, to a vertex shader position register.
dcl_usage[usage_index] dest[.mask] |
Where:
Version vs_3_0 supports output registers (o#) as valid destination registers. See Output Registers.
Version vs_3_0 must have at least one o register with _position0 usage when not used for process-vertices. The _position0 and _psize0 usages are the only usages that have a meaning that extends beyond linkage from vertex shader outputs to pixel shader inputs. For shaders with flow control, it is assumed that the worst case output is declared. There are no defaults if a shader does not actually output what it declares it should (due to flow control).
The write mask option is supported in versions 2_x and later.
For version vs_3_0, the same o register may be declared multiple times (so different usages can be applied to individual components), each time with a unique write mask. However, the same usage may not be used multiple times in a declaration. This means that vectors must be 4 components or less, and cannot go across 4-component register boundaries (individual o registers). When the _psize usage is specified, it must have a full write mask since it is considered a scalar. When the _position usage is specified, it must have a full write mask since all 4 components have to be written.
Vertex shader versions | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
dcl_usage | x | x | x | x |
All dcl_usage instructions must appear before the first executable instruction.
Minimum operating system | Windows 98 |
---|