GPU/Programming Guide: Difference between revisions

Yuriks (talk | contribs)
Geometry Pipeline: Added section about immediate mode
Yuriks (talk | contribs)
m Oops, formatting
Line 5: Line 5:
== Fixed Vertex Attributes ==
== Fixed Vertex Attributes ==


If a certain vertex attribute is constant for the duration of a draw call, instead of specifying a vertex array with repeated contents or changing the shader to use a uniform, *fixed vertex attributes* can be used. They let you specify a fixed value, which will be assumed by the attribute for all vertices of the batch.
If a certain vertex attribute is constant for the duration of a draw call, instead of specifying a vertex array with repeated contents or changing the shader to use a uniform, ''fixed vertex attributes'' can be used. They let you specify a fixed value, which will be assumed by the attribute for all vertices of the batch.


To use a fixed attribute, set the bit corresponding to the attribute in [[GPU:Internal Registers#GPUREG_ATTRIBBUFFERS_FORMAT_HIGH|GPUREG_ATTRIBBUFFERS_FORMAT_HIGH]] and ensure that no vertex arrays are configured for the attribute. (Any configured arrays will override the fixed value, regardless of the bit setting.) Even if a vertex array isn't being used for the attribute it still needs to be counted in the number of active attributes specified in the same register.
To use a fixed attribute, set the bit corresponding to the attribute in [[GPU:Internal Registers#GPUREG_ATTRIBBUFFERS_FORMAT_HIGH|GPUREG_ATTRIBBUFFERS_FORMAT_HIGH]] and ensure that no vertex arrays are configured for the attribute. (Any configured arrays will override the fixed value, regardless of the bit setting.) Even if a vertex array isn't being used for the attribute it still needs to be counted in the number of active attributes specified in the same register.