Reality Display Processor/Interface: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(Some DPS_TEST_MODE and related) |
|||
Line 369: | Line 369: | ||
}} |
}} |
||
====<span style="display:none;">0x0420 0004 - DPS_TEST_MODE ==== |
====<span style="display:none;">0x0420 0004 - DPS_TEST_MODE ==== |
||
---- |
|||
----{{#invoke:Register table|head|1200px|DPS_TEST_MODE <code>0x0420 0004</code>}} |
|||
'''When Reading:''' |
|||
{{#invoke:Register table|head|1200px|DPS_TEST_MODE <code>0x0420 0004</code>}} |
|||
{{#invoke:Register table|row|31:24}} |
|||
| colspan="4" | U-4 || colspan="4" | R-4 |
|||
|- |
|||
| colspan="4" | 0 || colspan="4" | cspan0[3:0] |
|||
{{#invoke:Register table|row|23:16}} |
|||
| colspan="4" | R-4 || colspan="4" | R-4 |
|||
|- |
|||
| colspan="4" | cspan1[3:0] || colspan="4" | zspan0[3:0] |
|||
{{#invoke:Register table|row|15:8}} |
|||
| colspan="4" | R-4 || U-? || U-? || U-? || U-? |
|||
|- |
|||
| colspan="4" | zspan1[3:0] || ? || ? || ? || ? |
|||
{{#invoke:Register table|row|7:0}} |
|||
| U-? || U-? || U-? || U-? || U-? || U-? || U-? || R-1 |
|||
|- |
|||
| 1 || ? || ? || ? || ? || 1 || ? || TEST_ENABLE |
|||
{{#invoke:Register table|foot}} |
|||
{{#invoke:Register table|definitions |
|||
| 31-28 | 0 | Always 0? |
|||
| 27-24 | cspan0[3:0] | Color span counter? Increments (and potentially overflows) based on how many 16-byte segments a drawn primitive covers. |
|||
| 23-20 | cspan1[3:0] | Color span counter? Synced with the other counter; if the other counter has the msbit unset this one has it set and vice-versa. |
|||
| 19-16 | zspan0[3:0] | Depth span counter? Increments (and potentially overflows) based on how many 16-byte segments a drawn primitive covers, only when depth read or write is enabled. |
|||
| 15-12 | zspan1[3:0] | Depth span counter? Synced with the other counter; if the other counter has the msbit unset this one has it set and vice-versa. |
|||
| 7 | 1 | Always 1? |
|||
| 2 | 1 | Always 1? |
|||
| 0 | TEST_ENABLE | Whether span buffer testing is enabled. |
|||
}} |
|||
'''When Writing:''' |
|||
{{#invoke:Register table|head|1200px|DPS_TEST_MODE <code>0x0420 0004</code>}} |
|||
{{#invoke:Register table|row|31:24}} |
{{#invoke:Register table|row|31:24}} |
||
| U-? || U-? || U-? || U-? || U-? || U-? || U-? || U-? |
| U-? || U-? || U-? || U-? || U-? || U-? || U-? || U-? |
||
Line 383: | Line 418: | ||
| — || — || — || — || — || — || — || — |
| — || — || — || — || — || — || — || — |
||
{{#invoke:Register table|row|7:0}} |
{{#invoke:Register table|row|7:0}} |
||
| U-? || U-? || U-? || U-? || U-? || U-? || U-? || |
| U-? || U-? || U-? || U-? || U-? || U-? || U-? || W-1 |
||
|- |
|- |
||
| — || — || — || — || — || — || — || |
| — || — || — || — || — || — || — || TEST_ENABLE |
||
{{#invoke:Register table|foot}} |
{{#invoke:Register table|foot}} |
||
{{#invoke:Register table|definitions |
{{#invoke:Register table|definitions |
||
| 0 | TEST_ENABLE | Enables span buffer test access via '''DPS_BUFTEST_ADDR''' and '''DPS_BUFTEST_DATA'''. '''Warning:''' If the span test mode is used the RDP should be idle, else the RDP may hang. |
|||
| 0 | ENABLE | ? |
|||
}} |
}} |
||
====<span style="display:none;">0x0420 0008 - DPS_BUFTEST_ADDR ==== |
====<span style="display:none;">0x0420 0008 - DPS_BUFTEST_ADDR ==== |
||
----{{#invoke:Register table|head|1200px|DPS_BUFTEST_ADDR <code>0x0420 0008</code>}} |
----{{#invoke:Register table|head|1200px|DPS_BUFTEST_ADDR <code>0x0420 0008</code>}} |
||
{{#invoke:Register table|row|31:24}} |
{{#invoke:Register table|row|31:24}} |
||
| colspan="8" | U-8 |
|||
| U-? || U-? || U-? || U-? || U-? || U-? || U-? || U-? |
|||
|- |
|- |
||
| colspan="8" | — |
|||
| — || — || — || — || — || — || — || — |
|||
{{#invoke:Register table|row|23:16}} |
{{#invoke:Register table|row|23:16}} |
||
| colspan="8" | U-8 |
|||
| U-? || U-? || U-? || U-? || U-? || U-? || U-? || U-? |
|||
|- |
|- |
||
| colspan="8" | — |
|||
| — || — || — || — || — || — || — || — |
|||
{{#invoke:Register table|row|15:8}} |
{{#invoke:Register table|row|15:8}} |
||
| colspan="8" | U-8 |
|||
| U-? || U-? || U-? || U-? || U-? || U-? || U-? || U-? |
|||
|- |
|- |
||
| colspan="8" | — |
|||
| — || — || — || — || — || — || — || — |
|||
{{#invoke:Register table|row|7:0}} |
{{#invoke:Register table|row|7:0}} |
||
| U- |
| U-1 || colspan="7" | RW-7 |
||
|- |
|- |
||
| — || colspan=7| ADDRESS[6:0] |
| — || colspan=7| ADDRESS[6:0] |
||
{{#invoke:Register table|foot}} |
{{#invoke:Register table|foot}} |
||
{{#invoke:Register table|definitions |
{{#invoke:Register table|definitions |
||
| 6-0 | ADDRESS[6:0] | |
| 6-0 | ADDRESS[6:0] | Sets the span buffer word address that '''DPS_BUFTEST_DATA''' will read from or write to. |
||
}} |
}} |
||
Span buffers are 288 bytes of memory while a 7-bit word index can address up to 512 bytes; when some addresses are read/written with '''DPS_BUFTEST_DATA''' some bits are fixed to 0. The span buffer data is arrayed such that 72 bits are accessed over 4 word addresses. The data layout is shown below, the first two columns can contain color/depth/texture data while the third column can contain coverage. |
|||
<pre> |
|||
| 0 1 2 3 |
|||
----+------------------------------------ |
|||
0 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
4 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
8 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
C | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
10 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
14 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
18 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
1C | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
20 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
24 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
28 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
2C | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
30 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
34 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
38 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
3C | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
40 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
44 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
48 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
4C | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
50 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
54 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
58 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
5C | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
60 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
64 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
68 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
6C | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
70 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
74 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
78 | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
7C | XXXXXXXX XXXXXXXX 000000XX 00000000 |
|||
</pre> |
|||
====<span style="display:none;">0x0410 000C - DPS_BUFTEST_DATA ==== |
====<span style="display:none;">0x0410 000C - DPS_BUFTEST_DATA ==== |
||
----{{#invoke:Register table|head|1200px|DPS_BUFTEST_DATA <code>0x0420 000C</code>}} |
----{{#invoke:Register table|head|1200px|DPS_BUFTEST_DATA <code>0x0420 000C</code>}} |
||
{{#invoke:Register table|row|31:24}} |
{{#invoke:Register table|row|31:24}} |
||
| colspan="8" | RW-8 |
|||
| RW-? || RW-? || RW-? || RW-? || RW-? || RW-? || RW-? || RW-? |
|||
|- |
|- |
||
| colspan=8|DATA[31:24] |
| colspan=8|DATA[31:24] |
||
{{#invoke:Register table|row|23:16}} |
{{#invoke:Register table|row|23:16}} |
||
| colspan="8" | RW-8 |
|||
| RW-? || RW-? || RW-? || RW-? || RW-? || RW-? || RW-? || RW-? |
|||
|- |
|- |
||
| colspan=8|DATA[23:16] |
| colspan=8|DATA[23:16] |
||
{{#invoke:Register table|row|15:8}} |
{{#invoke:Register table|row|15:8}} |
||
| colspan="8" | RW-8 |
|||
| RW-? || RW-? || RW-? || RW-? || RW-? || RW- || RW-? || RW-? |
|||
|- |
|- |
||
| colspan=8|DATA[15:0] |
| colspan=8|DATA[15:0] |
||
{{#invoke:Register table|row|7:0}} |
{{#invoke:Register table|row|7:0}} |
||
| colspan="8" | RW-8 |
|||
| RW-? || RW-? || RW-? || RW-? || RW-? || RW-? || RW-? || RW-? |
|||
|- |
|- |
||
| colspan=8|DATA[7:0] |
| colspan=8|DATA[7:0] |
||
{{#invoke:Register table|foot}} |
{{#invoke:Register table|foot}} |
||
{{#invoke:Register table|definitions |
{{#invoke:Register table|definitions |
||
| 31-0 | DATA | Reading from this register reads the span buffer data at the current '''DPS_BUFTEST_ADDR'''. Writing to this register sets the span buffer data at the current '''DPS_BUFTEST_ADDR''' to the write value. |
|||
| 31-0 | DATA | ? |
|||
}} |
}} |
||
This register requires span buffer test access to be enabled in '''DPS_TEST_MODE_REG''' to be functional. |