Reality Display Processor/Commands: Difference between revisions

digest "draw triangle" commands
m (fix not-sufficiently-invisible section for command 0x24)
(digest "draw triangle" commands)
Line 1:
====<span style="display:none;">0x08 through 0x0F - Triangle ====
----
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="18"|Triangle <code>0x08</code> through <code>0x0F</code>
|-
| rowspan="4"|Word 0 || 63:48 || — || — || 0 || 0 || 1 || shade || texture || zbuffer || lmajor || — || colspan=3| level[2:0] || colspan=3| tile[2:0]
|-
| 47:32 || — || — || colspan=14| y.lo[13:0]
|-
| 31:16 || — || — || colspan=14| y.md[13:0]
|-
| 15:0 || — || — || colspan=14| y.hi[13:0]
|-
| rowspan="4"|Word 1 || 63:48 || colspan=16| x.lo.c.i[15:0]
|-
| 47:32 || colspan=16| x.lo.c.f[15:0]
|-
| 31:16 || colspan=16| x.lo.s.i[15:0]
|-
| 15:0 || colspan=16| x.lo.s.f[15:0]
|-
| rowspan="4"|Word 2 || 63:48 || colspan=16| x.hi.c.i[15:0]
|-
| 47:32 || colspan=16| x.hi.c.f[15:0]
|-
| 31:16 || colspan=16| x.hi.s.i[15:0]
|-
| 15:0 || colspan=16| x.hi.s.f[15:0]
|-
| rowspan="4"|Word 3 || 63:48 || colspan=16| x.md.c.i[15:0]
|-
| 47:32 || colspan=16| x.md.c.f[15:0]
|-
| 31:16 || colspan=16| x.md.s.i[15:0]
|-
| 15:0 || colspan=16| x.md.s.f[15:0]
|}
=====Word 0=====
{{#invoke:Register table|definitions
| 61:56 | command | 0x08 through 0x0F depending on features specified
| 58 | shade | if 1, command is followed by 8 words specifying shading instructions
| 57 | texture | if 1, command is followed by 8 words specifying texturing instructions
| 56 | zbuffer | if 1, command is followed by 2 words specifying zbuffering instructions
| 55 | lmajor | ?
| 53:51 | level[2:0] | -
| 50:48 | tile[2:0] | -
| 45:32 | y.lo[13:0] | -
| 29:16 | y.md[13:0] | -
| 13:0 | y.hi[13:0] | -
}}
=====Word 1=====
{{#invoke:Register table|definitions
| 63:48 | x.lo.c.i[15:0] | -
| 47:32 | x.lo.c.f[15:0] | -
| 31:16 | x.lo.s.i[15:0] | -
| 15:0 | x.lo.s.f[15:0] | -
}}
=====Word 2=====
{{#invoke:Register table|definitions
| 63:48 | x.hi.c.i[15:0] | -
| 47:32 | x.hi.c.f[15:0] | -
| 31:16 | x.hi.s.i[15:0] | -
| 15:0 | x.hi.s.f[15:0] | -
}}
=====Word 3=====
{{#invoke:Register table|definitions
| 63:48 | x.md.c.i[15:0] | -
| 47:32 | x.md.c.f[15:0] | -
| 31:16 | x.md.s.i[15:0] | -
| 15:0 | x.md.s.f[15:0] | -
}}
 
====<span style="display:none;">0x0C through 0x0F - Shaded Triangle ====
----
After above 4 words describing a triangle, if requested by the command, these 8 words describing shading instructions:
 
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="18"|Shaded Triangle (suffix) <code>0x0C</code> … <code>0x0F</code>
|-
| rowspan="4"|Word 0 || 63:48 || colspan=16| r.c.i[15:0]
|-
| 47:32 || colspan=16| g.c.i[15:0]
|-
| 31:16 || colspan=16| b.c.i[15:0]
|-
| 15:0 || colspan=16| a.c.i[15:0]
|-
| rowspan="4"|Word 1 || 63:48 || colspan=16| r.x.i[15:0]
|-
| 47:32 || colspan=16| g.x.i[15:0]
|-
| 31:16 || colspan=16| b.x.i[15:0]
|-
| 15:0 || colspan=16| a.x.i[15:0]
|-
| rowspan="4"|Word 2 || 63:48 || colspan=16| r.c.f[15:0]
|-
| 47:32 || colspan=16| g.c.f[15:0]
|-
| 31:16 || colspan=16| b.c.f[15:0]
|-
| 15:0 || colspan=16| a.c.f[15:0]
|-
| rowspan="4"|Word 3 || 63:48 || colspan=16| r.x.f[15:0]
|-
| 47:32 || colspan=16| g.x.f[15:0]
|-
| 31:16 || colspan=16| b.x.f[15:0]
|-
| 15:0 || colspan=16| a.x.f[15:0]
|-
| rowspan="4"|Word 4 || 63:48 || colspan=16| r.e.i[15:0]
|-
| 47:32 || colspan=16| g.e.i[15:0]
|-
| 31:16 || colspan=16| b.e.i[15:0]
|-
| 15:0 || colspan=16| a.e.i[15:0]
|-
| rowspan="4"|Word 5 || 63:48 || colspan=16| r.y.i[15:0]
|-
| 47:32 || colspan=16| g.y.i[15:0]
|-
| 31:16 || colspan=16| b.y.i[15:0]
|-
| 15:0 || colspan=16| a.y.i[15:0]
|-
| rowspan="4"|Word 6 || 63:48 || colspan=16| r.e.f[15:0]
|-
| 47:32 || colspan=16| g.e.f[15:0]
|-
| 31:16 || colspan=16| b.e.f[15:0]
|-
| 15:0 || colspan=16| a.e.f[15:0]
|-
| rowspan="4"|Word 7 || 63:48 || colspan=16| r.y.f[15:0]
|-
| 47:32 || colspan=16| g.y.f[15:0]
|-
| 31:16 || colspan=16| b.y.f[15:0]
|-
| 15:0 || colspan=16| a.y.f[15:0]
|}
=====Word 0 =====
{{#invoke:Register table|definitions
| 63:48 | r.c.i[15:0] | -
| 47:32 | g.c.i[15:0] | -
| 31:16 | b.c.i[15:0] | -
| 15:0 | a.c.i[15:0] | -
}}
=====Word 1 =====
{{#invoke:Register table|definitions
| 63:48 | r.x.i[15:0] | -
| 47:32 | g.x.i[15:0] | -
| 31:16 | b.x.i[15:0] | -
| 15:0 | a.x.i[15:0] | -
}}
=====Word 2 =====
{{#invoke:Register table|definitions
| 63:48 | r.c.f[15:0] | -
| 47:32 | g.c.f[15:0] | -
| 31:16 | b.c.f[15:0] | -
| 15:0 | a.c.f[15:0] | -
}}
=====Word 3 =====
{{#invoke:Register table|definitions
| 63:48 | r.x.f[15:0] | -
| 47:32 | g.x.f[15:0] | -
| 31:16 | b.x.f[15:0] | -
| 15:0 | a.x.f[15:0] | -
}}
=====Word 4 =====
{{#invoke:Register table|definitions
| 63:48 | r.e.i[15:0] | -
| 47:32 | g.e.i[15:0] | -
| 31:16 | b.e.i[15:0] | -
| 15:0 | a.e.i[15:0] | -
}}
=====Word 5 =====
{{#invoke:Register table|definitions
| 63:48 | r.y.i[15:0] | -
| 47:32 | g.y.i[15:0] | -
| 31:16 | b.y.i[15:0] | -
| 15:0 | a.y.i[15:0] | -
}}
=====Word 6 =====
{{#invoke:Register table|definitions
| 63:48 | r.e.f[15:0] | -
| 47:32 | g.e.f[15:0] | -
| 31:16 | b.e.f[15:0] | -
| 15:0 | a.e.f[15:0] | -
}}
=====Word 7 =====
{{#invoke:Register table|definitions
| 63:48 | r.y.f[15:0] | -
| 47:32 | g.y.f[15:0] | -
| 31:16 | b.y.f[15:0] | -
| 15:0 | a.y.f[15:0] | -
}}
 
====<span style="display:none;">0x0A, 0x0B, 0x0E, 0x0F - Textured Triangle ====
----
After above 4 words describing a triangle, and optional 8 words describing shading, these 8 words describing texturing instructions:
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="18"|Textured Triangle (A,B,E,F)
|-
| rowspan="4"|Word 0 || 63:48 || colspan=16| s.c.i[15:0]
|-
| 47:32 || colspan=16| t.c.i[15:0]
|-
| 31:16 || colspan=16| w.c.i[15:0]
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 1 || 63:48 || colspan=16| s.x.i[15:0]
|-
| 47:32 || colspan=16| t.x.i[15:0]
|-
| 31:16 || colspan=16| w.x.i[15:0]
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 2 || 63:48 || colspan=16| s.c.f[15:0]
|-
| 47:32 || colspan=16| t.c.f[15:0]
|-
| 31:16 || colspan=16| w.c.f[15:0]
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 3 || 63:48 || colspan=16| s.x.f[15:0]
|-
| 47:32 || colspan=16| t.x.f[15:0]
|-
| 31:16 || colspan=16| w.x.f[15:0]
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 4 || 63:48 || colspan=16| s.e.i[15:0]
|-
| 47:32 || colspan=16| t.e.i[15:0]
|-
| 31:16 || colspan=16| w.e.i[15:0]
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 5 || 63:48 || colspan=16| s.y.i[15:0]
|-
| 47:32 || colspan=16| t.y.i[15:0]
|-
| 31:16 || colspan=16| w.y.i[15:0]
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 6 || 63:48 || colspan=16| s.e.f[15:0]
|-
| 47:32 || colspan=16| t.e.f[15:0]
|-
| 31:16 || colspan=16| w.e.f[15:0]
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 7 || 63:48 || colspan=16| s.y.f[15:0]
|-
| 47:32 || colspan=16| t.y.f[15:0]
|-
| 31:16 || colspan=16| w.y.f[15:0]
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|}
===== Word 0 =====
{{#invoke:Register table|definitions
| 63:48 | s.c.i[15:0] | -
| 47:32 | t.c.i[15:0] | -
| 31:16 | w.c.i[15:0] | -
}}
===== Word 1 =====
{{#invoke:Register table|definitions
| 63:48 | s.x.i[15:0] | -
| 47:32 | t.x.i[15:0] | -
| 31:16 | w.x.i[15:0] | -
}}
===== Word 2 =====
{{#invoke:Register table|definitions
| 63:48 | s.c.f[15:0] | -
| 47:32 | t.c.f[15:0] | -
| 31:16 | w.c.f[15:0] | -
}}
===== Word 3 =====
{{#invoke:Register table|definitions
| 63:48 | s.x.f[15:0] | -
| 47:32 | t.x.f[15:0] | -
| 31:16 | w.x.f[15:0] | -
}}
===== Word 4 =====
{{#invoke:Register table|definitions
| 63:48 | s.e.i[15:0] | -
| 47:32 | t.e.i[15:0] | -
| 31:16 | w.e.i[15:0] | -
}}
===== Word 5 =====
{{#invoke:Register table|definitions
| 63:48 | s.y.i[15:0] | -
| 47:32 | t.y.i[15:0] | -
| 31:16 | w.y.i[15:0] | -
}}
===== Word 6 =====
{{#invoke:Register table|definitions
| 63:48 | s.e.f[15:0] | -
| 47:32 | t.e.f[15:0] | -
| 31:16 | w.e.f[15:0] | -
}}
===== Word 7 =====
{{#invoke:Register table|definitions
| 63:48 | s.y.f[15:0] | -
| 47:32 | t.y.f[15:0] | -
| 31:16 | w.y.f[15:0] | -
}}
 
====<span style="display:none;">0x09, 0x0B, 0x0D, 0x0F - Zbuffered Triangle ====
----
After above 4 words describing a triangle, optional 8 words describing shading, and optional 8 words describing texturing, these two words describing Zbuffering:
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="18"| Zbuffered Triangle (9,B,D,F)
|-
| rowspan="4"|Word 0 || 63:48 || colspan=16| d.i[15:0]
|-
| 47:32 || colspan=16| d.f[15:0]
|-
| 31:16 || colspan=16| x.i[15:0]
|-
| 15:0 || colspan=16| x.f[15:0]
|-
| rowspan="4"|Word 1 || 63:48 || colspan=16| e.i[15:0]
|-
| 47:32 || colspan=16| e.f[15:0]
|-
| 31:16 || colspan=16| y.i[15:0]
|-
| 15:0 || colspan=16| y.f[15:0]
|}
===== Word 0 =====
{{#invoke:Register table|definitions
| 63:48 | d.i[15:0] | -
| 47:32 | d.f[15:0] | -
| 31:16 | x.i[15:0] | -
| 15:0 | x.f[15:0] | -
}}
===== Word 1 =====
{{#invoke:Register table|definitions
| 63:48 | e.i[15:0] | -
| 47:32 | e.f[15:0] | -
| 31:16 | y.i[15:0] | -
| 15:0 | y.f[15:0] | -
}}
 
====<span style="display:none;">0x24 and 0x25 - Texture_Rectangle ====
----
60

edits