Reality Display Processor/Commands: Difference between revisions
Sync Load/Pipe/Tile/Full
(Set Key R/GB) |
(Sync Load/Pipe/Tile/Full) |
||
Line 415:
}}
====<span style="display:none;">0x26 -
----
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="17"|
|-
| 63:48 || — || — || colspan=6| command = 0x26[5:0] || — || — || — || — || — || — || — || —
Line 432:
}}
Stalls the RDP pipeline for exactly 25 GCLK cycles. This guarantees that the loading pipeline will be available for use following any prior operation.
====<span style="display:none;">0x27 - Sync_Pipe ====▼
The stall is always 25 cycles and does not wait on any particular internal signal(s), if a Sync Load is queued when it is not needed it simply wastes the full length of time.
----
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="17"|
|-
| 63:48 || — || — || colspan=6| command = 0x27[5:0] || — || — || — || — || — || — || — || —
Line 449 ⟶ 453:
}}
Stalls the RDP pipeline for exactly 50 GCLK cycles. This guarantees that any preceding primitives will be fully rendered and it is safe to modify rendering attributes such as color registers, othermodes and combine mode.
====<span style="display:none;">0x28 - Sync_Tile ====▼
The stall is always 50 cycles and does not wait on any particular internal signal(s), if a Sync Pipe is queued when it is not needed it simply wastes the full length of time.
(TOVERIFY/Speculation: Changing an attribute without a sync typically corrupts only up to at most 24 pixels of the last primitive, suggesting the RDP pixel pipeline is ~24 cycles deep. Can a tile sync account for all or at least almost all attribute changes?)
----
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="17"|
|-
| 63:48 || — || — || colspan=6| command = 0x28[5:0] || — || — || — || — || — || — || — || —
Line 466 ⟶ 476:
}}
Stalls the RDP pipeline for exactly 33 GCLK cycles. This guarantees that any preceding primitives will have finished using tile information and that it is now safe to modify tile descriptors without affecting prior primitives.
====<span style="display:none;">0x29 - Sync_Full ====▼
The stall is always 33 cycles and does not wait on any particular internal signal(s), if a Sync Tile is queued when it is not needed it simply wastes the full length of time.
----
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="17"|
|-
| 63:48 || — || — || colspan=6| command = 0x29[5:0] || — || — || — || — || — || — || — || —
Line 482 ⟶ 496:
| 61:56 | command[5:0] | 0x29
}}
Waits for all currently staged pipeline and memory operations to complete before halting the RDP pipeline counter and raising the DP interrupt in the [[MIPS Interface]].
'''Hazards'''
* Ensure this is the final command consumed before hitting DP_END, otherwise the RDP may hang.
====<span style="display:none;">0x2a - Set Key GB ====
|