Reality Display Processor/Commands: Difference between revisions
Parameter names and short descriptions for Triangle commands
(Start Load Block/Tile/TLUT) |
(Parameter names and short descriptions for Triangle commands) |
||
Line 41:
(TOVERIFY all of these command ids appear to behave as no-ops and take only 1 cycle to execute in testing so far, however this should be checked more extensively)
====<span style="display:none;">0x08 through 0x0F - Fill Triangle ====
----
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="18"|Fill 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|
|-
| 31:16 || — || — || colspan=14|
|-
| 15:0 || — || — || colspan=14|
|-
| rowspan="4"|Word 1 || 63:48 || — || — || — || — || colspan=
|-
| 47:32 || colspan=16|
|-
| 31:16 || — || — || colspan=
|-
| 15:0 || colspan=16|
|-
| rowspan="4"|Word 2 || 63:48 || — || — || — || — || colspan=
|-
| 47:32 || colspan=16|
|-
| 31:16 || — || — || colspan=
|-
| 15:0 || colspan=16|
|-
| rowspan="4"|Word 3 || 63:48 || — || — || — || — || colspan=
|-
| 47:32 || colspan=16|
|-
| 31:16 || — || — || colspan=
|-
| 15:0 || colspan=16|
|}
'''Word 0'''
{{#invoke:Register table|definitions
| 61:56 | command | 0x08 through 0x0F depending on features specified
| 58 | shade |
| 57 | texture |
| 56 | zbuffer |
| 55 | lmajor | Left-major flag, if enabled rendering occurs from left-to-right, otherwise rendering occurs from right-to-left
| 53:51 | level[2:0] |
| 50:48 | tile[2:0] |
| 45:32 | yl[13:0] | Lowest y coordinate (largest value), rasterization ends at this height (s11.2 format)
| 29:16 | ym[13:0] | Middle y coordinate (middle value), rasterization swaps dxmdy for dxldy (s11.2 format)
| 13:0 | yh[13:0] | Highest y coordinate (highest value), rasterization begins at this height (s11.2 format)
}}
'''Word 1'''
{{#invoke:Register table|definitions
| 59:48 | xl.i[11:0] | Integer part of x coordinate on dxldy line at height ym (s11.16 format)
| 47:32 |
| 29:16 | dxldy.i[13:0] | Integer part of change in x per change in y of line connecting middle and lowest vertices (s13.16 format)
| 15:0 | dxldy.f[15:0] | Fractional part of change in x per change in y of line connecting middle and lowest vertices (s13.16 format)
}}
'''Word 2'''
{{#invoke:Register table|definitions
| 59:48 | xh.i[11:0] | Integer part of x coordinate on dxhdy line at height floor(yh) (s11.16 format)
| 47:32 | xh.f[15:0] | Fractional part of x coordinate on dxhdy line at height floor(yh) (s11.16 format)
| 29:16 | dxhdy.i[13:0] | Integer part of change in x per change in y of line connecting highest and lowest vertices (s13.16 format)
| 15:0 | dxhdy.f[15:0] | Fractional part of change in x per change in y of line connecting highest and lowest vertices (s13.16 format)
}}
'''Word 3'''
{{#invoke:Register table|definitions
| 59:48 | xm.i[11:0] | Integer part of x coordinate on dxmdy line at height floor(yh) (s11.16 format)
| 47:32 | xm.f[15:0] | Fractional part of x coordinate on dxmdy line at height floor(yh) (s11.16 format)
| 29:16 | dxmdy.i[13:0] | Integer part of change in x per change in y of line connecting highest and middle vertices (s13.16 format)
| 15:0 | dxmdy.f[15:0] | Fractional part of change in x per change in y of line connecting highest and middle vertices (s13.16 format)
}}
====<span style="display:none;">0x0C through 0x0F - Fill Shaded Triangle ====
----
After above 4 words describing a triangle, if requested by the command, these 8 words describing shading
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="18"|Fill Shaded Triangle (suffix) <code>0x0C</code> … <code>0x0F</code>
|-
| rowspan="4"|Word 0 || 63:48 || - || - || - || - || - || - || - || colspan=
|-
| 47:32 || - || - || - || - || - || - || - || colspan=
|-
| 31:16 || - || - || - || - || - || - || - || colspan=
|-
| 15:0 || - || - || - || - || - || - || - || colspan=
|-
| rowspan="4"|Word 1 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || colspan=16|
|-
| rowspan="4"|Word 2 || 63:48 || colspan=16| r
|-
| 47:32 || colspan=16| g
|-
| 31:16 || colspan=16| b
|-
| 15:0 || colspan=16| a
|-
| rowspan="4"|Word 3 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || colspan=16|
|-
| rowspan="4"|Word 4 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || colspan=16|
|-
| rowspan="4"|Word 5 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || colspan=16|
|-
| rowspan="4"|Word 6 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || colspan=16|
|-
| rowspan="4"|Word 7 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || colspan=16|
|}
'''Word 0'''
{{#invoke:Register table|definitions
| 56:48 | r.i[8:0] | Integer part of red channel shade color at '''(xh, floor(yh))''' (s8.16 format)
| 40:32 | g.i[8:0] | Integer part of green channel shade color at '''(xh, floor(yh))''' (s8.16 format)
| 24:16 | b.i[8:0] | Integer part of blue channel shade color at '''(xh, floor(yh))''' (s8.16 format)
| 8:0 | a.i[8:0] | Integer part of alpha channel shade color at '''(xh, floor(yh))''' (s8.16 format)
}}
'''Word 1'''
{{#invoke:Register table|definitions
| 63:48 | drdx.i[15:0] | Integer part of change in red channel shade color horizontally along a scanline (s15.16 format)
| 47:32 | dgdx.i[15:0] | Integer part of change in green channel shade color horizontally along a scanline (s15.16 format)
| 31:16 | dbdx.i[15:0] | Integer part of change in blue channel shade color horizontally along a scanline (s15.16 format)
| 15:0 | dadx.i[15:0] | Integer part of change in alpha channel shade color horizontally along a scanline (s15.16 format)
}}
'''Word 2'''
{{#invoke:Register table|definitions
| 63:48 | r
| 47:32 | g
| 31:16 | b
| 15:0 | a.f[15:0] | Fractional part of alpha channel shade color at '''(xh, floor(yh))''' (s8.16 format)
}}
'''Word 3'''
{{#invoke:Register table|definitions
| 63:48 | drdx.f[15:0] | Fractional part of change in red channel shade color horizontally along a scanline (s15.16 format)
| 47:32 | dgdx.f[15:0] | Fractional part of change in green channel shade color horizontally along a scanline (s15.16 format)
| 31:16 | dbdx.f[15:0] | Fractional part of change in blue channel shade color horizontally along a scanline (s15.16 format)
| 15:0 | dadx.f[15:0] | Fractional part of change in alpha channel shade color horizontally along a scanline (s15.16 format)
}}
'''Word 4'''
{{#invoke:Register table|definitions
| 63:48 | drde.i[15:0] | Integer part of change in red channel shade color along the major edge (s15.16 format)
| 47:32 | dgde.i[15:0] | Integer part of change in green channel shade color along the major edge (s15.16 format)
| 31:16 | dbde.i[15:0] | Integer part of change in blue channel shade color along the major edge (s15.16 format)
| 15:0 | dade.i[15:0] | Integer part of change in alpha channel shade color along the major edge (s15.16 format)
}}
'''Word 5'''
{{#invoke:Register table|definitions
| 63:48 | drdy.i[15:0] | Integer part of change in red channel shade color for each scanline (s15.16 format)
| 47:32 | dgdy.i[15:0] | Integer part of change in green channel shade color for each scanline (s15.16 format)
| 31:16 | dbdy.i[15:0] | Integer part of change in blue channel shade color for each scanline (s15.16 format)
| 15:0 | dady.i[15:0] | Integer part of change in alpha channel shade color for each scanline (s15.16 format)
}}
'''Word 6'''
{{#invoke:Register table|definitions
| 63:48 | drde.f[15:0] | Fractional part of change in red channel shade color along the major edge (s15.16 format)
| 47:32 | dgde.f[15:0] | Fractional part of change in green channel shade color along the major edge (s15.16 format)
| 31:16 | dbde.f[15:0] | Fractional part of change in blue channel shade color along the major edge (s15.16 format)
| 15:0 | dade.f[15:0] | Fractional part of change in alpha channel shade color along the major edge (s15.16 format)
}}
'''Word 7'''
{{#invoke:Register table|definitions
| 63:48 | drdy.f[15:0] | Fractional part of change in red channel shade color for each scanline (s15.16 format)
| 47:32 | dgdy.f[15:0] | Fractional part of change in green channel shade color for each scanline (s15.16 format)
| 31:16 | dbdy.f[15:0] | Fractional part of change in blue channel shade color for each scanline (s15.16 format)
| 15:0 | dady.f[15:0] | Fractional part of change in alpha channel shade color for each scanline (s15.16 format)
}}
====<span style="display:none;">0x0A, 0x0B, 0x0E, 0x0F - Fill Textured Triangle ====
----
After above 4 words describing a triangle, and optional 8 words describing shading, these 8 words describing texturing
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="18"|Fill Textured Triangle (A,B,E,F)
|-
| rowspan="4"|Word 0 || 63:48 || colspan=16| s
|-
| 47:32 || colspan=16| t
|-
| 31:16 || colspan=16| w
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 1 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 2 || 63:48 || colspan=16| s
|-
| 47:32 || colspan=16| t
|-
| 31:16 || colspan=16| w
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 3 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 4 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 5 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 6 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|-
| rowspan="4"|Word 7 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
Line 313:
'''Word 0'''
{{#invoke:Register table|definitions
| 63:48 | s
| 47:32 | t
| 31:16 | w
}}
'''Word 1'''
{{#invoke:Register table|definitions
| 63:48 |
| 47:32 |
| 31:16 |
}}
'''Word 2'''
{{#invoke:Register table|definitions
| 63:48 | s
| 47:32 | t
| 31:16 | w
}}
'''Word 3'''
{{#invoke:Register table|definitions
| 63:48 |
| 47:32 |
| 31:16 |
}}
'''Word 4'''
{{#invoke:Register table|definitions
| 63:48 |
| 47:32 |
| 31:16 |
}}
'''Word 5'''
{{#invoke:Register table|definitions
| 63:48 |
| 47:32 |
| 31:16 |
}}
'''Word 6'''
{{#invoke:Register table|definitions
| 63:48 |
| 47:32 |
| 31:16 |
}}
'''Word 7'''
{{#invoke:Register table|definitions
| 63:48 |
| 47:32 |
| 31:16 |
}}
====<span style="display:none;">0x09, 0x0B, 0x0D, 0x0F -
----
After above 4 words describing a triangle, optional 8 words describing shading, and optional 8 words describing texturing, these two words describing
{| class="wikitable" style="text-align: center; white-space:nowrap;"
! colspan="18"|
|-
| rowspan="4"|Word 0 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || colspan=16|
|-
| rowspan="4"|Word 1 || 63:48 || colspan=16|
|-
| 47:32 || colspan=16|
|-
| 31:16 || colspan=16|
|-
| 15:0 || colspan=16|
|}
'''Word 0'''
{{#invoke:Register table|definitions
| 63:48 |
| 47:32 |
| 31:16 |
| 15:0 |
}}
'''Word 1'''
{{#invoke:Register table|definitions
| 63:48 |
| 47:32 |
| 31:16 |
| 15:0 |
}}
|