GPU/Internal Registers: Difference between revisions

Yuriks (talk | contribs)
m moved GPU Internal Registers to GPU:Internal Registers: Moving PICA200-related pages to GPU namespace.
Yuriks (talk | contribs)
Geometry pipeline registers: Added GPUREG_RESTART_PRIMITIVE
Line 4,022: Line 4,022:


=== GPUREG_FIXEDATTRIB_INDEX ===
=== GPUREG_FIXEDATTRIB_INDEX ===
See [[GPU:Fixed Vertex Attributes]] and [[GPU:Immediate-Mode Vertex Submission]] for usage info.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 4,035: Line 4,037:
Accepts a packed 4-tuple of float24 values (in the same format used for [[#GPUREG_VSH_FLOATUNIFORM_DATA|specifying shader uniforms]]). This is stored as the fixed attribute value for the attribute currently specified in the index register. Attributes are always specified as a 4-tuple of floats, regardless of the format configured in [[#GPUREG_ATTRIBBUFFERS_FORMAT_HIGH|GPUREG_ATTRIBBUFFERS_FORMAT_HIGH]].
Accepts a packed 4-tuple of float24 values (in the same format used for [[#GPUREG_VSH_FLOATUNIFORM_DATA|specifying shader uniforms]]). This is stored as the fixed attribute value for the attribute currently specified in the index register. Attributes are always specified as a 4-tuple of floats, regardless of the format configured in [[#GPUREG_ATTRIBBUFFERS_FORMAT_HIGH|GPUREG_ATTRIBBUFFERS_FORMAT_HIGH]].


If immediate-mode vertex submission is enabled (by writing 0xF to the index register) then vertex data is input here directly. The configured number N of vertex attributes (specified in [[#GPUREG_ATTRIBBUFFERS_FORMAT_HIGH|GPUREG_ATTRIBBUFFERS_FORMAT_HIGH]]) for each vertex should be sent in sequence. One vertex is output for every N 4-tuples written, and the index register does not need to be reset between attributes or vertices.
If immediate-mode vertex submission is enabled (by writing 0xF to the index register) then vertex data is input here directly. The index register does not need to be re-set after each write.
 
=== GPUREG_RESTART_PRIMITIVE ===
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0-7
| Writing 0x01 to this field ends the current triangle strip or fan. This is necessary before using these kinds of primitives with [[GPU:Immediate-Mode Vertex Submission|immediate-mode]], but most games seem to write to it before every draw call.
|}


== Geometry shader registers ==
== Geometry shader registers ==