gfx_test.txt
3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
RSP Graphics "White Box" Testing:
Thu Apr 13 16:40:26 PDT 1995
Names on the right are who's assigned to test this. Most
of these tests will live in PR/apps/rsp* directories.
Update this file with notes about tests that get implemented,
such as where they are and how to run them...
Things to test in the 3D ucode:
- task initialization varieties
-
lipes - display list processing
lipes - pushing/popping
lipes - nested display list limits
lipes - display list fetching, boundary cases
acorn - task yield
acorn - save/restore
acorn - task exit
acorn - how to signal CPU?
- Display List commands.
- G_TRI1
- smooth shade and flat shade
- vertex buffer index ranges
lipes - G_POPMATRIX
lipes - modelview and projection
lipes - empty stack
lipes - DMA activity
lipes - MP computation
- G_SEGMENT
- bad data
- G_TEXTURE
- on/off
- texture scale
- tile number
- max mip-map levels
- mip-map conditional?
- G_SETOTHERMODE
- proper cacheing
- order problems
- bad data
- review RDP docs for bad cases
lipes - G_ENDDL
lipes - empty display list
lipes - state saving
- G_SETGEOMETRYMODE
- proper cacheing
- order problems (boolean logic?)
- bad data
- G_CLEARGEOMETRYMODE
(same as SETGEOMETRYMODE)
lipes - G_PERSPNORM
lipes - initial (default) state
lipes - bad data
lipes - prpoer cacheing
lipes - order problems
lipes - G_MTX
lipes - modelview and projection
lipes - stack push/pop (empty, full)
lipes - matrix concat math
lipes - persp normalization
lipes - G_VIEWPORT
lipes - G_MOVEMEM
lipes - proper cacheing
lipes - DMEM accessing
kluster - G_VTX
kluster - no light
kluster - light
kluster - texture gen
kluster - light and texture gen
kluster - vertex count (load full, 0, etc.)
kluster - proper cacheing (no bad memory writes)
-
lipes - G_DL
lipes - pushing DL stack
lipes - DL stack empty/full
lipes - proper cacheing
lipes - address fixup
kluster - G_LIGHT
- ?
- G_RDPBLOCK
- ?
- RDP commands:
- address fixup
- sync'ing?
- Other things to test.
- precision
acorn - coordinate precision, W-divide, clipping, etc.
acorn - output
acorn - XBUS
acorn - circular buffer logic. Wrap, etc.
acorn - buffer overflow
acorn - DRAM
acorn - DMA logic
acorn - output pointer logic
- clipping
- all planes
- worst-case point (gen the most new points)
- trivial
- attributes
- triangle setup
- back-face rejection (front, back, both, neither)
- null-poly rejection
- attributes
- conditional execution
- line ucode
kluster - lighting
kluster - direction of light
kluster - magnitude of light
kluster - normalization or lack of
kluster - lights/materials
kluster - number of lights
kluster - texture coordinate generation
- ucode swapping.
- figure out the cases and test carefully.
- DMEM alignment of all accesses
- DMEM sizes (overflow, etc.)
- RDP syncs, lack thereof. Randomness.