blob: 3b49715f62b623a1a79073c79f8bfb3ea91bc6b6 [file] [log] [blame]
Alyssa Rosenzweig9cb3a9e2020-08-05 18:16:38 -04001<panxml>
2
Alyssa Rosenzweig3e7fd2a2020-08-13 14:44:11 -04003 <enum name="Attribute Type">
4 <value name="1D" value="1"/>
5 <value name="1D POT Divisor" value="2"/>
6 <value name="1D Modulus" value="3"/>
7 <value name="1D NPOT Divisor" value="4"/>
8 <value name="Continuation" value="32"/>
9 </enum>
10
11 <enum name="Attribute Special">
12 <value name="Vertex ID" value="34"/>
13 <value name="Instance ID" value="36"/>
14 <value name="Frag Coord" value="37"/>
15 <value name="Front Facing" value="38"/>
16 <value name="Point Coord" value="97"/>
17 </enum>
18
Alyssa Rosenzweigcdc32762020-08-12 16:46:07 -040019 <enum name="Channel">
20 <value name="R" value="0"/>
21 <value name="G" value="1"/>
22 <value name="B" value="2"/>
23 <value name="A" value="3"/>
24 <value name="0" value="4"/>
25 <value name="1" value="5"/>
26 </enum>
Alyssa Rosenzweig87c59512020-08-19 16:32:26 -040027
28 <enum name="Depth Source">
29 <value name="None" value="0"/>
30 <value name="Fixed function" value="2"/>
31 <value name="Shader" value="3"/>
32 </enum>
Alyssa Rosenzweigcdc32762020-08-12 16:46:07 -040033
Alyssa Rosenzweig4b7056b2020-08-05 18:40:44 -040034 <enum name="Job Type">
35 <value name="Not started" value="0"/>
36 <value name="Null" value="1"/>
37 <value name="Write value" value="2"/>
38 <value name="Cache flush" value="3"/>
39 <value name="Compute" value="4"/>
40 <value name="Vertex" value="5"/>
41 <value name="Geometry" value="6"/>
42 <value name="Tiler" value="7"/>
43 <value name="Fused" value="8"/>
44 <value name="Fragment" value="9"/>
45 </enum>
46
Alyssa Rosenzweig32dbc802020-08-05 18:44:36 -040047 <enum name="Draw Mode">
48 <value name="None" value="0"/>
49 <value name="Points" value="1"/>
50 <value name="Lines" value="2"/>
51 <value name="Line strip" value="4"/>
52 <value name="Line loop" value="6"/>
53 <value name="Triangles" value="8"/>
54 <value name="Triangle strip" value="10"/>
55 <value name="Triangle fan" value="12"/>
56 <value name="Polygon" value="13"/>
57 <value name="Quads" value="14"/>
58 <value name="Quad strip" value="15"/>
59 </enum>
60
Alyssa Rosenzweig78445ce2020-08-11 21:19:52 -040061 <enum name="Exception Access">
62 <value name="None" value="0"/>
63 <value name="Execute" value="2"/>
64 <value name="Read" value="1"/>
65 <value name="Write" value="3"/>
66 </enum>
67
Alyssa Rosenzweigd182a602020-08-05 18:47:52 -040068 <enum name="Func">
69 <value name="Never" value="0"/>
70 <value name="Less" value="1"/>
71 <value name="Equal" value="2"/>
72 <value name="Lequal" value="3"/>
73 <value name="Greater" value="4"/>
74 <value name="Not Equal" value="5"/>
75 <value name="Gequal" value="6"/>
76 <value name="Always" value="7"/>
77 </enum>
78
Alyssa Rosenzweig0c621dc2020-08-11 21:30:46 -040079 <enum name="Format">
80 <value name="ETC2 RGB8" value="1"/>
81 <value name="ETC2 R11 UNORM" value="2"/>
82 <value name="ETC2 RGBA8" value="3"/>
83 <value name="ETC2 RG11 UNORM" value="4"/>
Alyssa Rosenzweig0c621dc2020-08-11 21:30:46 -040084 <value name="BC1 UNORM" value="7"/>
85 <value name="BC2 UNORM" value="8"/>
86 <value name="BC3 UNORM" value="9"/>
87 <value name="BC4 UNORM" value="10"/>
88 <value name="BC4 SNORM" value="11"/>
89 <value name="BC5 UNORM" value="12"/>
90 <value name="BC5 SNORM" value="13"/>
91 <value name="BC6H UF16" value="14"/>
92 <value name="BC6H SF16" value="15"/>
93 <value name="BC7 UNORM" value="16"/>
94 <value name="ETC2 R11 SNORM" value="17"/>
95 <value name="ETC2 RG11 SNORM" value="18"/>
96 <value name="ETC2 RGB8A1" value="19"/>
97 <value name="ASTC 3D LDR" value="20"/>
98 <value name="ASTC 3D HDR" value="21"/>
99 <value name="ASTC 2D LDR" value="22"/>
100 <value name="ASTC 2D HDR" value="23"/>
101 <value name="RGB565" value="64"/>
102 <value name="RGB5 X1 UNORM" value="65"/>
103 <value name="RGB5 A1 UNORM" value="66"/>
104 <value name="RGB10 A2 UNORM" value="67"/>
105 <value name="RGB10 A2 SNORM" value="69"/>
106 <value name="RGB10 A2UI" value="71"/>
107 <value name="RGB10 A2I" value="73"/>
108 <value name="RGB332 UNORM" value="75"/>
109 <value name="RGB233 UNORM" value="76"/>
110 <value name="Z24X8 UNORM" value="77"/>
111 <value name="R32 FIXED" value="81"/>
112 <value name="RG32 FIXED" value="82"/>
113 <value name="RGB32 FIXED" value="83"/>
114 <value name="RGBA32 FIXED" value="84"/>
115 <value name="R11F G11F B10F" value="89"/>
116 <value name="R9F G9F B9F E5F" value="91"/>
117 <value name="VARYING POS" value="94"/>
118 <value name="VARYING DISCARD" value="95"/>
119 <value name="R8 SNORM" value="99"/>
120 <value name="R16 SNORM" value="100"/>
121 <value name="R32 SNORM" value="101"/>
122 <value name="RG8 SNORM" value="107"/>
123 <value name="RG16 SNORM" value="108"/>
124 <value name="RG32 SNORM" value="109"/>
125 <value name="RGB8 SNORM" value="115"/>
126 <value name="RGB16 SNORM" value="116"/>
127 <value name="RGB32 SNORM" value="117"/>
128 <value name="RGBA8 SNORM" value="123"/>
129 <value name="RGBA16 SNORM" value="124"/>
130 <value name="RGBA32 SNORM" value="125"/>
131 <value name="R8UI" value="131"/>
132 <value name="R16UI" value="132"/>
133 <value name="R32UI" value="133"/>
134 <value name="RG8UI" value="139"/>
135 <value name="RG16UI" value="140"/>
136 <value name="RG32UI" value="141"/>
137 <value name="RGB8UI" value="147"/>
138 <value name="RGB16UI" value="148"/>
139 <value name="RGB32UI" value="149"/>
140 <value name="RGBA8UI" value="155"/>
141 <value name="RGBA16UI" value="156"/>
142 <value name="RGBA32UI" value="157"/>
143 <value name="R8 UNORM" value="163"/>
144 <value name="R16 UNORM" value="164"/>
145 <value name="R32 UNORM" value="165"/>
146 <value name="R32F" value="167"/>
147 <value name="RG8 UNORM" value="171"/>
148 <value name="RG16 UNORM" value="172"/>
149 <value name="RG32 UNORM" value="173"/>
150 <value name="RG32F" value="175"/>
151 <value name="RGB8 UNORM" value="179"/>
152 <value name="RGB16 UNORM" value="180"/>
153 <value name="RGB32 UNORM" value="181"/>
154 <value name="RGB32F" value="183"/>
155 <value name="RGBA4 UNORM" value="186"/>
156 <value name="RGBA8 UNORM" value="187"/>
157 <value name="RGBA16 UNORM" value="188"/>
158 <value name="RGBA32 UNORM" value="189"/>
159 <value name="RGBA32F" value="191"/>
160 <value name="R8I" value="195"/>
161 <value name="R16I" value="196"/>
162 <value name="R32I" value="197"/>
163 <value name="R16F" value="199"/>
164 <value name="RG8I" value="203"/>
165 <value name="RG16I" value="204"/>
166 <value name="RG32I" value="205"/>
167 <value name="RG16F" value="207"/>
168 <value name="RGB8I" value="211"/>
169 <value name="RGB16I" value="212"/>
170 <value name="RGB32I" value="213"/>
171 <value name="RGB16F" value="215"/>
172 <value name="RGBA8I" value="219"/>
173 <value name="RGBA16I" value="220"/>
174 <value name="RGBA32I" value="221"/>
175 <value name="RGBA16F" value="223"/>
Boris Brezillonf04e5ef2020-10-09 15:45:16 +0200176 <value name="RGB5 A1" value="224"/>
177 <value name="R5G6B5" value="226"/>
Alyssa Rosenzweig0c621dc2020-08-11 21:30:46 -0400178 <value name="RGBA4" value="232"/>
179 <value name="RGBA8 2" value="237"/>
180 <value name="RGB10 A2 2" value="238"/>
181 </enum>
182
Boris Brezillon83899762020-09-16 13:31:37 +0200183 <enum name="RGB Component Order">
184 <value name="RGBA" value="0"/>
185 <value name="BRGA" value="2"/>
186 <value name="BGRA" value="4"/>
187 <value name="ARGB" value="8"/>
188 <value name="RGB1" value="16"/>
189 <value name="GRB1" value="18"/>
190 <value name="BGR1" value="20"/>
191 <value name="1RGB" value="24"/>
192 <value name="1GRB" value="26"/>
193 <value name="1BGR" value="28"/>
194 <value name="Intensity" value="226"/>
195 <value name="Luma" value="227"/>
196 <value name="Luma Alpha" value="228"/>
197 <value name="Alpha" value="229"/>
198 <value name="Zero" value="231"/>
199 <value name="Snap4 v9" value="232"/>
200 <value name="Snap4 v10" value="233"/>
201 <value name="Snap4 v11" value="234"/>
202 <value name="Snap4 v12" value="235"/>
203 <value name="Snap4 v13" value="236"/>
204 <value name="Snap4 v14" value="237"/>
205 <value name="Snap4 v15" value="238"/>
206 <value name="Snap4 v16" value="239"/>
207 <!-- Internal only, do not use -->
208 <value name="R000" value="240"/>
209 <value name="RBGA" value="242"/>
210 </enum>
211
212 <enum name="YUV Swizzle">
213 <value name="YUVA" value="0"/>
214 <value name="YVUA" value="1"/>
215 <value name="UYVA" value="2"/>
216 <value name="UVYA" value="3"/>
217 <value name="VUYA" value="4"/>
218 <value name="VYUA" value="5"/>
219 <value name="Y00A" value="6"/>
220 <value name="YXXA" value="7"/>
221 </enum>
222
223 <enum name="YUV Conversion Mode">
224 <value name="No Conversion" value="0"/>
225 <value name="BT 601" value="3"/>
226 <value name="BT 709" value="4"/>
227 <value name="BT 2020" value="6"/>
228 </enum>
229
230 <enum name="YUV Cr Siting">
231 <value name="Co-Sited" value="0"/>
232 <value name="Center Y" value="1"/>
233 <value name="Center X" value="2"/>
234 <value name="Center" value="3"/>
235 <value name="One Quarter" value="4"/>
236 <value name="Three Quarters" value="5"/>
237 <value name="Replicated" value="7"/>
238 </enum>
239
Alyssa Rosenzweig3f919a72020-10-08 19:46:21 -0400240 <enum name="Pixel Kill">
241 <value name="Force Early" value="0"/>
242 <value name="Strong Early" value="1"/>
243 <value name="Weak Early" value="2"/>
244 <value name="Force Late" value="3"/>
245 </enum>
246
Boris Brezillon83899762020-09-16 13:31:37 +0200247 <struct name="Pixel Format" no-direct-packing="true">
248 <field name="RGB Component Order" size="8" start="0" type="RGB Component Order"/>
249 <field name="YUV Component Order" size="3" start="0" type="YUV Swizzle"/>
250 <field name="YUV Component Swap" size="1" start="3" type="bool"/>
251 <field name="YUV Cr Siting" size="3" start="0" type="YUV Cr Siting"/>
252 <field name="Swizzle" size="12" start="0" type="uint"/>
253 <field name="Format" size="8" start="12" type="Format"/>
254 <field name="sRGB" size="1" start="20" type="bool"/>
255 <field name="Big Endian" size="1" start="21" type="bool"/>
256 </struct>
257
Alyssa Rosenzweigc9bdba22020-08-11 21:00:47 -0400258 <enum name="Block Format">
259 <!--- 16x16 block u-interleaved -->
Boris Brezillon76096c72020-09-03 17:26:49 +0200260 <value name="Tiled U-Interleaved" value="0"/>
Boris Brezillonfb957292020-09-03 17:27:51 +0200261 <value name="Tiled Linear" value="1"/>
Alyssa Rosenzweigc9bdba22020-08-11 21:00:47 -0400262 <value name="Linear" value="2"/>
263 <value name="AFBC" value="3"/>
264 </enum>
265
Boris Brezillon5d5f7552020-09-08 10:17:40 +0200266 <enum name="Block Format v7">
267 <value name="No Write" value="0"/>
268 <value name="Tiled U-Interleaved" value="1"/>
269 <value name="Linear" value="2"/>
270 <value name="AFBC" value="12"/>
271 <value name="AFBC Tiled" value="13"/>
272 </enum>
273
Alyssa Rosenzweigf74186b2020-08-11 18:23:12 -0400274 <enum name="Mipmap Mode">
275 <value name="Nearest" value="0"/>
276 <value name="None" value="1"/>
277 <value name="Trilinear" value="3"/>
278 </enum>
279
Alyssa Rosenzweig99d17fb2020-08-11 21:04:01 -0400280 <enum name="MSAA">
281 <value name="Single" value="0"/>
282 <!-- N samples, 1 surface, resolved -->
283 <value name="Average" value="1"/>
284 <!-- N samples, 1 surface, unresolved -->
285 <value name="Multiple" value="2"/>
286 <!-- N samples, N surfaces -->
287 <value name="Layered" value="3"/>
288 </enum>
289
Alyssa Rosenzweigb60d5672020-08-25 16:59:14 -0400290 <enum name="Index Type">
291 <value name="None" value="0"/>
292 <value name="UINT8" value="1"/>
293 <value name="UINT16" value="2"/>
294 <value name="UINT32" value="3"/>
295 </enum>
296
Alyssa Rosenzweigd6a5df02020-08-24 13:13:33 -0400297 <enum name="Occlusion Mode">
298 <value name="Disabled" value="0"/>
299 <value name="Predicate" value="1"/>
300 <value name="Counter" value="3"/>
301 </enum>
302
Alyssa Rosenzweig5fa5c012020-10-06 22:00:49 -0400303 <enum name="Sample Count">
304 <value name="Samples 1x" value="0"/>
305 <value name="Samples 4x" value="2"/>
306 <value name="Samples 8x" value="3"/>
307 <value name="Samples 16x" value="4"/>
308 </enum>
309
Alyssa Rosenzweige9ca3202020-08-05 18:51:27 -0400310 <enum name="Stencil Op">
311 <value name="Keep" value="0"/>
312 <value name="Replace" value="1"/>
313 <value name="Zero" value="2"/>
314 <value name="Invert" value="3"/>
315 <value name="Incr Wrap" value="4"/>
316 <value name="Decr Wrap" value="5"/>
317 <value name="Incr Sat" value="6"/>
318 <value name="Decr Sat" value="7"/>
319 </enum>
320
Alyssa Rosenzweigf008a632020-08-11 17:27:36 -0400321 <enum name="Texture Dimension">
322 <value name="Cube" value="0"/>
323 <value name="1D" value="1"/>
324 <value name="2D" value="2"/>
325 <value name="3D" value="3"/>
326 </enum>
327
328 <enum name="Texture Layout">
329 <!--- 16x16 block u-interleaved -->
330 <value name="Tiled" value="1"/>
331 <value name="Linear" value="2"/>
332 <value name="AFBC" value="12"/>
333 </enum>
334
Alyssa Rosenzweigef206912020-08-05 18:53:41 -0400335 <enum name="Wrap Mode">
336 <value name="Repeat" value="8"/>
337 <value name="Clamp to Edge" value="9"/>
338 <value name="Clamp" value="10"/>
339 <value name="Clamp to Border" value="11"/>
340 <value name="Mirrored Repeat" value="12"/>
341 <value name="Mirrored Clamp to Edge" value="13"/>
342 <value name="Mirrored Clamp" value="14"/>
343 <value name="Mirrored Clamp to Border" value="15"/>
344 </enum>
345
Alyssa Rosenzweig2c8a7222020-08-13 13:27:16 -0400346 <struct name="Attribute">
347 <field name="Buffer index" size="9" start="0" type="uint"/>
348 <field name="Unknown" size="1" start="9" type="bool" default="true"/>
349 <field name="Format" size="22" start="10" type="uint"/>
350 <field name="Offset" size="32" start="32" type="int"/>
351 </struct>
352
Alyssa Rosenzweig3e7fd2a2020-08-13 14:44:11 -0400353 <struct name="Attribute Buffer">
354 <field name="Special" size="8" start="0" type="Attribute Special"/>
355 <field name="Type" size="6" start="0" type="Attribute Type" default="1D"/>
356 <field name="Pointer" size="50" start="6" type="address" modifier="shr(6)"/>
357 <field name="Stride" size="32" start="64" type="uint"/>
358 <field name="Size" size="32" start="96" type="uint"/>
359
Alyssa Rosenzweig15133922020-08-25 12:48:12 -0400360 <field name="Divisor" size="8" start="56" type="padded" default="1"/>
Alyssa Rosenzweig3e7fd2a2020-08-13 14:44:11 -0400361 <field name="Divisor R" size="5" start="56" type="uint"/>
362 <field name="Divisor P" size="3" start="61" type="uint"/>
363 <field name="Divisor E" size="1" start="61" type="uint"/>
364 </struct>
365
366 <struct name="Attribute Buffer Continuation NPOT">
367 <field name="Type" size="6" start="0:0" type="Attribute Type" default="Continuation"/>
368 <field name="Divisor Numerator" size="32" start="1:0" type="uint"/>
369 <field name="Divisor" size="32" start="3:0" type="uint"/>
370 </struct>
371
Boris Brezillon713419e2020-09-16 10:26:06 +0200372 <enum name="Blend Operand A">
373 <value name="Zero" value="1"/>
374 <value name="Src" value="2"/>
375 <value name="Dest" value="3"/>
376 </enum>
377
378 <enum name="Blend Operand B">
379 <value name="Src Minus Dest" value="0"/>
380 <value name="Src Plus Dest" value="1"/>
381 <value name="Src" value="2"/>
382 <value name="Dest" value="3"/>
383 </enum>
384
385 <enum name="Blend Operand C">
386 <value name="Zero" value="1"/>
387 <value name="Src" value="2"/>
388 <value name="Dest" value="3"/>
389 <value name="Src x 2" value="4"/>
390 <value name="Src Alpha" value="5"/>
391 <value name="Dest Alpha" value="6"/>
392 <value name="Constant" value="7"/>
393 </enum>
394
395 <struct name="Blend Function" no-direct-packing="true">
396 <!-- Blend equation: A + (B * C) -->
397 <field name="A" size="2" start="0" type="Blend Operand A"/>
398 <field name="Negate A" size="1" start="3" type="bool"/>
399 <field name="B" size="2" start="4" type="Blend Operand B"/>
400 <field name="Negate B" size="1" start="7" type="bool"/>
401 <field name="C" size="3" start="8" type="Blend Operand C"/>
402 <field name="Invert C" size="1" start="11" type="bool"/>
403 </struct>
404
Alyssa Rosenzweigbf6d5482020-08-18 18:15:45 -0400405 <struct name="Blend Equation" size="1">
Boris Brezillon713419e2020-09-16 10:26:06 +0200406 <field name="RGB" size="12" start="0:0" type="Blend Function"/>
407 <field name="Alpha" size="12" start="0:12" type="Blend Function"/>
408 <field name="Color Mask" size="4" start="0:28" type="uint"/>
Alyssa Rosenzweigbf6d5482020-08-18 18:15:45 -0400409 </struct>
410
Boris Brezillon83899762020-09-16 13:31:37 +0200411 <struct name="Midgard Blend Overlay" size="4" no-direct-packing="true">
412 <field name="Blend Shader" size="1" start="0:1" type="bool" default="false"/>
413 <field name="Blend Shader Contains Discard" size="1" start="0:2" type="bool" default="false"/>
414 <field name="Shader PC" size="64" start="2:0" type="address"/>
Boris Brezillon713419e2020-09-16 10:26:06 +0200415 <field name="Equation" size="32" start="2:0" type="Blend Equation"/>
Alyssa Rosenzweig75a274d2020-08-24 12:06:04 -0400416 <field name="Constant" size="32" start="3:0" type="float"/>
Boris Brezillon83899762020-09-16 13:31:37 +0200417 </struct>
418
419 <enum name="Bifrost Register File Format">
420 <value name="F16" value="0"/>
421 <value name="F32" value="1"/>
422 <value name="I32" value="2"/>
423 <value name="U32" value="3"/>
424 <value name="I16" value="4"/>
425 <value name="U16" value="5"/>
426 </enum>
427
428 <enum name="Bifrost Blend Mode">
429 <value name="Shader" value="0"/>
430 <value name="Opaque" value="1"/>
431 <value name="Fixed-Function" value="2"/>
432 <value name="Off" value="3"/>
433 </enum>
434
435 <struct name="Bifrost Blend Shader" size="2">
436 <field name="Return Value" size="29" start="0:3" type="uint" modifier="shr(3)"/>
437 <field name="PC" size="28" start="1:4" type="uint" modifier="shr(4)"/>
438 </struct>
439
440 <struct name="Bifrost Internal Conversion" size="1">
441 <field name="Memory Format" size="22" start="0" type="Pixel Format"/>
442 <field name="Raw" size="1" start="22" type="bool"/>
443 <field name="Register Format" size="3" start="24" type="Bifrost Register File Format"/>
444 </struct>
445
446 <struct name="Bifrost Blend Fixed-Function" size="2">
447 <field name="Num Comps" size="2" start="0:3" type="uint" modifier="minus(1)" default="1"/>
448 <field name="Alpha Zero NOP" size="1" start="0:5" type="bool"/>
449 <field name="Alpha One Store" size="1" start="0:6" type="bool"/>
450 <field name="RT" size="4" start="0:16" type="uint">
451 <value name="MALI_BIFROST_BLEND_MAX_RT" value="8"/>
452 </field>
453 <field name="Conversion" size="32" start="1:0" type="Bifrost Internal Conversion"/>
454 </struct>
455
Boris Brezillon8d707cd2020-10-12 14:16:53 +0200456 <struct name="Bifrost Internal Blend">
457 <field name="Mode" size="2" start="0:0" type="Bifrost Blend Mode"/>
458 <field name="Shader" size="64" start="0:0" type="Bifrost Blend Shader"/>
459 <field name="Fixed-Function" size="64" start="0:0" type="Bifrost Blend Fixed-Function"/>
460 </struct>
461
Boris Brezillon83899762020-09-16 13:31:37 +0200462 <struct name="Bifrost Blend Overlay" no-direct-packing="true">
463 <field name="Constant" size="16" start="0:16" type="uint"/>
464 <field name="Equation" size="32" start="1:0" type="Blend Equation"/>
Boris Brezillon8d707cd2020-10-12 14:16:53 +0200465 <field name="Internal" size="64" start="2:0" type="Bifrost Internal Blend"/>
Boris Brezillon83899762020-09-16 13:31:37 +0200466 </struct>
467
468 <struct name="Blend" size="4">
469 <field name="Load Destination" size="1" start="0:0" type="bool" default="false"/>
470 <field name="Alpha To One" size="1" start="0:8" type="bool"/>
471 <field name="Enable" size="1" start="0:9" type="bool" default="true"/>
472 <field name="sRGB" size="1" start="0:10" type="bool" default="false"/>
473 <field name="Round to FB precision" size="1" start="0:11" type="bool" default="false"/>
474 <field name="Midgard" size="1" start="0:0" type="Midgard Blend Overlay"/>
475 <field name="Bifrost" size="1" start="0:0" type="Bifrost Blend Overlay"/>
Alyssa Rosenzweig75a274d2020-08-24 12:06:04 -0400476 </struct>
477
Alyssa Rosenzweig0225ed42020-08-26 12:45:38 -0400478 <struct name="Invocation">
479 <!-- Dynamic bitfield containing WorkGroupSize.xyz, NumWorkGroups.xyz
480 The number of bits allocated for each number is based on the *_shift
481 fields. For example, workgroups_y_shift gives the bit that
482 gl_NumWorkGroups.y starts at, and workgroups_z_shift gives the bit
483 that gl_NumWorkGroups.z starts at (and therefore one after the bit
484 that gl_NumWorkGroups.y ends at). The actual value for each
485 is one more than the stored value, since if any of the values
486 are zero, then there would be no invocations (and hence no job). -->
487 <field name="Invocations" size="32" start="0:0" type="uint"/>
488 <field name="Size Y shift" size="5" start="1:0" type="uint"/>
489 <field name="Size Z shift" size="5" start="1:5" type="uint"/>
490 <field name="Workgroups X shift" size="6" start="1:10" type="uint"/>
491 <field name="Workgroups Y shift" size="6" start="1:16" type="uint"/>
492 <field name="Workgroups Z shift" size="6" start="1:22" type="uint"/>
493 <field name="Unknown shift" size="4" start="1:28" type="uint"/>
494 </struct>
495
Boris Brezillon51331d62020-09-29 11:21:33 +0200496 <enum name="Point Size Array Format">
497 <value name="None" value="0"/>
498 <value name="FP16" value="2"/>
499 <value name="FP32" value="3"/>
500 </enum>
501
502 <enum name="Primitive Restart">
503 <value name="None" value="0"/>
504 <value name="Implicit" value="2"/>
505 <value name="Explicit" value="3"/>
506 </enum>
507
Alyssa Rosenzweigb60d5672020-08-25 16:59:14 -0400508 <struct name="Primitive">
Boris Brezillon51331d62020-09-29 11:21:33 +0200509 <field name="Draw mode" size="8" start="0:0" type="Draw Mode" default="None"/>
510 <field name="Index type" size="3" start="0:8" type="Index Type" default="None"/>
511 <field name="Point size array format" size="2" start="0:11" type="Point Size Array Format"/>
512 <field name="Primitive Index Enable" size="1" start="0:13" type="bool"/>
513 <field name="Primitive Index Writeback" size="1" start="0:14" type="bool"/>
Alyssa Rosenzweigb60d5672020-08-25 16:59:14 -0400514 <field name="First provoking vertex" size="1" start="0:15" type="bool" default="true"/>
Boris Brezillon51331d62020-09-29 11:21:33 +0200515 <field name="Low Depth Cull" size="1" start="0:16" type="bool" default="true"/>
516 <field name="High Depth Cull" size="1" start="0:17" type="bool" default="true"/>
517 <field name="Secondary Shader" size="1" start="0:18" type="bool"/>
518 <field name="Primitive restart" size="2" start="0:19" type="Primitive Restart"/>
519 <field name="Job Task Split" size="6" start="0:26" type="uint"/>
Alyssa Rosenzweigb60d5672020-08-25 16:59:14 -0400520 <field name="Base vertex offset" size="32" start="1:0" type="uint"/>
Boris Brezillon51331d62020-09-29 11:21:33 +0200521 <field name="Primitive Restart Index" size="32" start="2:0" type="uint"/>
Alyssa Rosenzweigb60d5672020-08-25 16:59:14 -0400522 <field name="Index count" size="32" start="3:0" type="uint" modifier="minus(1)"/>
523 <field name="Indices" size="64" start="4:0" type="address"/>
524 </struct>
525
Boris Brezillon51331d62020-09-29 11:21:33 +0200526 <struct name="Draw" size="32">
Boris Brezillond343f232020-09-29 10:45:23 +0200527 <field name="Four Components Per Vertex" size="1" start="0:0" type="bool"/>
528 <field name="Draw Descriptor Is 64b" size="1" start="0:1" type="bool"/>
529 <field name="Texture Descriptor Is 64b" size="1" start="0:2" type="bool"/>
Alyssa Rosenzweigd6a5df02020-08-24 13:13:33 -0400530 <field name="Occlusion query" size="2" start="0:3" type="Occlusion Mode" default="Disabled"/>
531 <field name="Front face CCW" size="1" start="0:5" type="bool"/>
532 <field name="Cull front face" size="1" start="0:6" type="bool"/>
533 <field name="Cull back face" size="1" start="0:7" type="bool"/>
Boris Brezillond343f232020-09-29 10:45:23 +0200534 <field name="Flat Shading Vertex" size="1" start="0:8" type="uint"/>
535 <field name="Exclude Filtered Perf Counters" size="1" start="0:9" type="bool"/>
536 <field name="Primitive Barrier" size="1" start="0:10" type="bool"/>
537 <field name="Clean Fragment Write" size="1" start="0:11" type="bool"/>
538 <field name="Instance Size" size="8" start="0:16" type="padded" default="1"/>
539 <field name="Instance Primitive Size" size="8" start="0:24" type="padded" default="1"/>
Alyssa Rosenzweigd6a5df02020-08-24 13:13:33 -0400540 <field name="Offset start" size="32" start="1:0" type="uint"/>
Boris Brezillond343f232020-09-29 10:45:23 +0200541 <field name="Primitive Index Base" size="32" start="2:0" type="uint"/>
Alyssa Rosenzweigd6a5df02020-08-24 13:13:33 -0400542 <field name="Position" size="64" start="4:0" type="address"/>
543 <field name="Uniform buffers" size="64" start="6:0" type="address"/>
544 <field name="Textures" size="64" start="8:0" type="address"/>
545 <field name="Samplers" size="64" start="10:0" type="address"/>
546 <field name="Push uniforms" size="64" start="12:0" type="address"/>
547 <field name="State" size="64" start="14:0" type="address"/>
548 <field name="Attribute buffers" size="64" start="16:0" type="address"/>
549 <field name="Attributes" size="64" start="18:0" type="address"/>
550 <field name="Varying buffers" size="64" start="20:0" type="address"/>
551 <field name="Varyings" size="64" start="22:0" type="address"/>
552 <field name="Viewport" size="64" start="24:0" type="address"/>
553 <field name="Occlusion" size="64" start="26:0" type="address"/>
Boris Brezillond343f232020-09-29 10:45:23 +0200554 <field name="Thread Storage" size="64" start="28:0" type="address"/>
555 <field name="FBD" size="64" start="28:0" type="address"/>
Alyssa Rosenzweigd6a5df02020-08-24 13:13:33 -0400556 </struct>
557
Alyssa Rosenzweigf74186b2020-08-11 18:23:12 -0400558 <struct name="Midgard Sampler">
559 <field name="Magnify Nearest" size="1" start="0" type="bool" default="true"/>
560 <field name="Minify Nearest" size="1" start="1" type="bool" default="true"/>
561 <field name="Mipmap Mode" size="2" start="3" type="Mipmap Mode" default="Nearest"/>
562 <field name="Normalized Coordinates" size="1" start="5" type="bool" default="true"/>
563 <field name="LOD Bias" size="16" start="0:16" type="int" default="0"/>
564 <field name="Minimum LOD" size="16" start="1:0" type="uint" default="0"/>
565 <field name="Maximum LOD" size="16" start="1:16" type="uint" default="1"/>
566 <field name="Wrap Mode S" size="4" start="2:0" type="Wrap Mode" default="Clamp to Edge"/>
567 <field name="Wrap Mode T" size="4" start="2:4" type="Wrap Mode" default="Clamp to Edge"/>
568 <field name="Wrap Mode R" size="4" start="2:8" type="Wrap Mode" default="Clamp to Edge"/>
569 <field name="Compare Function" size="3" start="2:12" type="Func" default="Never"/>
570 <field name="Seamless Cube Map" size="1" start="2:15" type="bool" default="true"/>
571 <field name="Border Color R" size="32" start="4:0" type="float" default="0.0"/>
572 <field name="Border Color G" size="32" start="5:0" type="float" default="0.0"/>
573 <field name="Border Color B" size="32" start="6:0" type="float" default="0.0"/>
574 <field name="Border Color A" size="32" start="7:0" type="float" default="0.0"/>
575 </struct>
576
Alyssa Rosenzweigf008a632020-08-11 17:27:36 -0400577 <struct name="Midgard Texture" size="8">
578 <field name="Width" size="16" start="0:0" type="uint" modifier="minus(1)"/>
579 <field name="Height" size="16" start="0:16" type="uint" modifier="minus(1)"/>
580 <field name="Depth" size="16" start="1:0" type="uint" modifier="minus(1)"/>
581 <field name="Array size" size="16" start="1:16" type="uint" modifier="minus(1)"/>
582 <field name="Format" size="22" start="2:0" type="uint"/>
583 <field name="Dimension" size="2" start="2:22" type="Texture Dimension"/>
584 <field name="Texel ordering" size="4" start="2:24" type="Texture Layout"/>
585 <field name="Unknown" size="1" start="2:28" type="bool" default="true"/>
586 <field name="Manual stride" size="1" start="2:29" type="bool" default="false"/>
587 <field name="Levels" size="8" start="3:24" type="uint"/>
588 <field name="Swizzle" size="12" start="4:0" type="uint"/>
589 </struct>
590
Alyssa Rosenzweigb10c3c82020-08-11 18:25:03 -0400591 <struct name="Bifrost Sampler" size="8">
592 <field name="Type" size="4" start="0:0" type="uint" default="1"/>
593 <field name="Wrap Mode R" size="4" start="0:8" type="Wrap Mode" default="Clamp to Edge"/>
594 <field name="Wrap Mode T" size="4" start="0:12" type="Wrap Mode" default="Clamp to Edge"/>
595 <field name="Wrap Mode S" size="4" start="0:16" type="Wrap Mode" default="Clamp to Edge"/>
Alyssa Rosenzweig401d5942020-10-06 21:29:05 -0400596 <field name="Round to nearest even" size="1" start="0:21" type="bool" default="false"/>
597 <!--- Disable sRGB-to-linear conversion (assume linear) -->
598 <field name="sRGB override" size="1" start="0:22" type="bool" default="false"/>
Alyssa Rosenzweigb10c3c82020-08-11 18:25:03 -0400599 <field name="Seamless Cube Map" size="1" start="0:23" type="bool" default="true"/>
Alyssa Rosenzweig401d5942020-10-06 21:29:05 -0400600 <field name="Clamp integer coordinates" size="1" start="0:24" type="bool"/>
Alyssa Rosenzweigb10c3c82020-08-11 18:25:03 -0400601 <field name="Normalized Coordinates" size="1" start="0:25" type="bool" default="true"/>
Alyssa Rosenzweig401d5942020-10-06 21:29:05 -0400602 <field name="Clamp integer array indices" size="1" start="0:26" type="bool" default="true"/>
603 <field name="Point sample minify" size="1" start="0:27" type="bool" default="false"/>
604 <field name="Point sample magnify" size="1" start="0:28" type="bool" default="false"/>
605 <!--- Set for 0.5, clear for 0.0 -->
606 <field name="Magnify cutoff" size="1" start="0:29" type="bool" default="false"/>
Alyssa Rosenzweigb10c3c82020-08-11 18:25:03 -0400607 <field name="Mipmap Mode" size="2" start="0:30" type="Mipmap Mode" default="Nearest"/>
608 <field name="Minimum LOD" size="13" start="1:0" type="uint" default="0"/>
609 <field name="Compare Function" size="3" start="1:13" type="Func" default="Never"/>
610 <field name="Maximum LOD" size="13" start="1:16" type="uint" default="0"/>
611 <field name="LOD bias" size="16" start="2:0" type="uint" default="0"/>
Alyssa Rosenzweig401d5942020-10-06 21:29:05 -0400612 <field name="Maximum anisotropy" size="5" start="2:16" type="uint"/>
613 <field name="Anisotropy" size="1" start="2:25" type="bool"/>
614 <field name="Border Color R" size="32" start="4:0" type="float" default="0.0"/>
615 <field name="Border Color G" size="32" start="5:0" type="float" default="0.0"/>
616 <field name="Border Color B" size="32" start="6:0" type="float" default="0.0"/>
617 <field name="Border Color A" size="32" start="7:0" type="float" default="0.0"/>
Alyssa Rosenzweigb10c3c82020-08-11 18:25:03 -0400618 </struct>
619
Alyssa Rosenzweigad0b32c2020-08-06 18:12:28 -0400620 <struct name="Bifrost Texture" size="8">
621 <field name="Type" size="4" start="0:0" type="uint" default="2"/>
622 <field name="Dimension" size="2" start="0:4" type="Texture Dimension"/>
Alyssa Rosenzweig5fa5c012020-10-06 22:00:49 -0400623 <field name="Sample corner position" size="1" start="0:8" type="bool" default="false"/>
624 <field name="Normalize coordinatess" size="1" start="0:9" type="bool" default="false"/>
Alyssa Rosenzweigad0b32c2020-08-06 18:12:28 -0400625 <field name="Format" size="22" start="0:10" type="uint"/>
626 <field name="Width" size="16" start="1:0" type="uint" modifier="minus(1)"/>
627 <field name="Height" size="16" start="1:16" type="uint" modifier="minus(1)"/>
628 <field name="Swizzle" size="12" start="2:0" type="uint"/>
629 <field name="Texel ordering" size="4" start="2:12" type="Texture Layout"/>
630 <field name="Levels" size="5" start="2:16" type="uint"/>
Alyssa Rosenzweig5fa5c012020-10-06 22:00:49 -0400631 <field name="Minimum level" size="5" start="2:24" type="uint"/>
Alyssa Rosenzweigad0b32c2020-08-06 18:12:28 -0400632 <field name="Minimum LOD" size="13" start="3:0" type="uint" default="0"/>
Alyssa Rosenzweig5fa5c012020-10-06 22:00:49 -0400633 <field name="Multisample count" size="3" start="3:13" type="Sample Count" default="Samples 1x"/>
Alyssa Rosenzweigad0b32c2020-08-06 18:12:28 -0400634 <field name="Maximum LOD" size="13" start="3:16" type="uint" default="0"/>
635 <field name="Surfaces" size="64" start="4:0" type="address"/>
636 </struct>
637
Boris Brezillon519643b2020-10-13 18:32:14 +0200638 <enum name="FP Mode">
639 <value name="GL Inf/NaN Allowed" value="0"/>
640 <value name="GL Inf/NaN Suppressed" value="1"/>
641 <value name="CL" value="2"/>
642 <value name="D3D11" value="3"/>
643 </enum>
644
645 <struct name="Midgard Renderer Properties" size="1" no-direct-packing="true">
646 <field name="Force early-z" size="1" start="10" type="bool"/>
647 <field name="Shader contains discard" size="1" start="12" type="bool"/>
648 <field name="Shader has side-effects" size="1" start="13" type="bool"/>
649 <field name="Shader reads tilebuffer" size="1" start="14" type="bool"/>
650 <field name="Forward pixel kill" size="1" start="15" type="bool"/>
651 <field name="Work register count" size="5" start="16" type="uint"/>
652 <field name="Uniform count" size="5" start="21" type="uint"/>
653 <field name="FP mode" size="3" start="29" type="FP Mode"/>
654 </struct>
655
656 <enum name="Shader Register Allocation">
657 <value name="64 Per Thread" value="0"/>
658 <value name="32 Per Thread" value="2"/>
659 </enum>
660
661 <struct name="Bifrost Renderer Properties" size="1" no-direct-packing="true">
662 <field name="Shader register allocation" size="2" start="12" type="Shader Register Allocation"/>
663 <field name="Secondary shader register allocation" size="2" start="14" type="Shader Register Allocation"/>
664 <field name="Shader modifies coverage" size="1" start="16" type="bool"/>
665 <field name="Allow forward pixel to kill" size="1" start="19" type="bool"/>
666 <field name="Allow forward pixel to be killed" size="1" start="20" type="bool"/>
667 <field name="Pixel kill operation" size="2" start="21" type="Pixel Kill"/>
668 <field name="ZS update operation" size="2" start="23" type="Pixel Kill"/>
669 <field name="Point sprite coord origin max Y" size="1" start="27" type="bool"/>
670 <field name="Shader wait dependency 6" size="1" start="30" type="bool"/>
671 <field name="Shader wait dependency 7" size="1" start="31" type="bool"/>
672 </struct>
673
Boris Brezillon7bb85ea2020-09-15 17:03:28 +0200674 <struct name="Renderer Properties" size="1">
Boris Brezillon519643b2020-10-13 18:32:14 +0200675 <field name="Midgard" size="32" start="0" type="Midgard Renderer Properties"/>
676 <field name="Bifrost" size="32" start="0" type="Bifrost Renderer Properties"/>
Alyssa Rosenzweig87c59512020-08-19 16:32:26 -0400677 <field name="Uniform buffer count" size="8" start="0" type="uint"/>
678 <field name="Depth source" size="2" start="8" type="Depth Source" default="None"/>
Boris Brezillon519643b2020-10-13 18:32:14 +0200679 <field name="Shader contains barrier" size="1" start="11" type="bool"/>
Alyssa Rosenzweig87c59512020-08-19 16:32:26 -0400680 <field name="Stencil from shader" size="1" start="28" type="bool"/>
Alyssa Rosenzweigacf77cb2020-08-20 16:41:41 -0400681 </struct>
682
Alyssa Rosenzweig7a95ed22020-08-20 20:42:32 -0400683 <struct name="Preload" size="1">
Alyssa Rosenzweig7a95ed22020-08-20 20:42:32 -0400684 <field name="Local Invocation XY" size="1" start="7" type="bool"/>
685 <field name="Local Invocation Z" size="1" start="8" type="bool"/>
686 <field name="Work group X" size="1" start="9" type="bool"/>
687 <field name="Work group Y" size="1" start="10" type="bool"/>
688 <field name="Work group Z" size="1" start="11" type="bool"/>
689 <field name="Global Invocation X" size="1" start="12" type="bool"/>
690 <field name="Global Invocation Y" size="1" start="13" type="bool"/>
691 <field name="Global Invocation Z" size="1" start="14" type="bool"/>
Alyssa Rosenzweig7a95ed22020-08-20 20:42:32 -0400692 <field name="Vertex ID" size="1" start="13" type="bool"/>
693 <field name="Instance ID" size="1" start="14" type="bool"/>
Boris Brezillon7bb85ea2020-09-15 17:03:28 +0200694 <field name="Unknown" size="1" start="7" type="bool"/>
Alyssa Rosenzweig7a95ed22020-08-20 20:42:32 -0400695 <field name="Primitive ID" size="1" start="9" type="bool"/>
696 <field name="Front facing" size="1" start="10" type="bool"/>
697 <field name="Fragment position" size="1" start="11" type="bool"/>
698 <field name="Sample mask/ID" size="1" start="12" type="bool"/>
699 <field name="Uniform count" size="7" start="15" type="uint"/>
700 </struct>
701
Alyssa Rosenzweig661b4692020-08-21 10:34:06 -0400702 <struct name="Shader" size="4">
703 <field name="Shader" size="64" start="0:0" type="address"/>
704 <field name="Sampler count" size="16" start="2:0" type="uint"/>
705 <field name="Texture count" size="16" start="2:16" type="uint"/>
706 <field name="Attribute count" size="16" start="3:0" type="uint"/>
707 <field name="Varying count" size="16" start="3:16" type="uint"/>
708 </struct>
709
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400710 <struct name="Multisample, Misc" size="1">
711 <field name="Sample mask" size="16" start="0" type="uint"/>
712 <field name="Multisample enable" size="1" start="16" type="bool"/>
Boris Brezillonf734e672020-09-29 15:47:04 +0200713 <field name="Multisample late coverage" size="1" start="17" type="bool"/>
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400714 <field name="Evaluate per-sample" size="1" start="18" type="bool"/>
715 <field name="Unknown 1" size="1" start="19" type="bool"/>
716 <field name="Unknown 2" size="1" start="20" type="bool"/>
717 <field name="SFBD Load destination" size="1" start="21" type="bool"/>
718 <field name="SFBD Blend shader" size="1" start="22" type="bool"/>
Boris Brezillonf734e672020-09-29 15:47:04 +0200719 <field name="SFBD Blend shader discard" size="1" start="23" type="bool"/>
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400720 <field name="Depth function" size="3" start="24" type="Func"/>
721 <field name="Depth write mask" size="1" start="27" type="bool"/>
Boris Brezillonf734e672020-09-29 15:47:04 +0200722 <field name="Fixed-function near discard" size="1" start="28" type="bool"/>
723 <field name="Fixed-function far discard" size="1" start="29" type="bool"/>
724 <field name="Fragment near discard" size="1" start="30" type="bool"/>
725 <field name="Fragment far discard" size="1" start="31" type="bool"/>
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400726 </struct>
727
728 <struct name="Stencil Mask, Misc" size="1">
729 <field name="Stencil mask front" size="8" start="0" type="uint"/>
730 <field name="Stencil mask back" size="8" start="8" type="uint"/>
731 <field name="Stencil enable" size="1" start="16" type="bool"/>
732 <field name="Alpha-to-coverage" size="1" start="17" type="bool"/>
Boris Brezillonf734e672020-09-29 15:47:04 +0200733 <field name="Alpha-to-coverage Invert" size="1" start="18" type="bool"/>
734 <field name="Alpha to one" size="1" start="19" type="bool"/>
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400735 <field name="SFBD Write enable" size="1" start="20" type="bool"/>
736 <field name="Unknown 1" size="3" start="21" type="uint"/>
737 <field name="SFBD sRGB" size="1" start="24" type="bool"/>
738 <field name="SFBD Dither disable" size="1" start="25" type="bool"/>
739 <field name="Unknown 2" size="1" start="26" type="bool"/>
740 <field name="Depth Range 1" size="1" start="28" type="bool"/>
741 <field name="Depth Range 2" size="1" start="29" type="bool"/>
742 <field name="Single-sampled lines" size="1" start="30" type="bool"/>
Boris Brezillonf734e672020-09-29 15:47:04 +0200743 <field name="Point snap" size="1" start="31" type="bool"/>
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400744 </struct>
745
Alyssa Rosenzweig931e7b42020-08-05 22:02:32 -0400746 <struct name="Stencil">
747 <field name="Reference Value" size="8" start="0" type="uint"/>
Alyssa Rosenzweig322ddbd2020-09-09 16:29:04 -0400748 <field name="Mask" size="8" start="8" type="uint"/>
Alyssa Rosenzweig931e7b42020-08-05 22:02:32 -0400749 <field name="Compare Function" size="3" start="16" type="Func"/>
750 <field name="Stencil Fail" size="3" start="19" type="Stencil Op"/>
751 <field name="Depth Fail" size="3" start="22" type="Stencil Op"/>
752 <field name="Depth Pass" size="3" start="25" type="Stencil Op"/>
753 </struct>
754
Boris Brezillon7bb85ea2020-09-15 17:03:28 +0200755 <struct name="Renderer State">
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400756 <field name="Shader" size="128" start="0:0" type="Shader"/>
Boris Brezillon7bb85ea2020-09-15 17:03:28 +0200757 <field name="Properties" size="32" start="4:0" type="Renderer Properties"/>
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400758 <field name="Depth units" size="32" start="5:0" type="float"/>
759 <field name="Depth factor" size="32" start="6:0" type="float"/>
Boris Brezillonf734e672020-09-29 15:47:04 +0200760 <field name="Depth bias clamp" size="32" start="7:0" type="float"/>
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400761 <field name="Multisample, Misc" size="32" start="8:0" type="Multisample, Misc"/>
762 <field name="Stencil Mask, Misc" size="32" start="9:0" type="Stencil Mask, Misc"/>
763 <field name="Stencil front" size="32" start="10:0" type="Stencil"/>
764 <field name="Stencil back" size="32" start="11:0" type="Stencil"/>
765 <field name="Preload" size="32" start="12:0" type="Preload"/>
Boris Brezillonf734e672020-09-29 15:47:04 +0200766 <field name="Thread Balancing" size="16" start="13:0" type="uint"/>
Boris Brezillon7bb85ea2020-09-15 17:03:28 +0200767 <field name="SFBD Blend Shader" size="64" start="14:0" type="address"/>
Boris Brezillon713419e2020-09-16 10:26:06 +0200768 <field name="SFBD Blend Equation" size="32" start="14:0" type="Blend Equation"/>
Boris Brezillon7bb85ea2020-09-15 17:03:28 +0200769 <field name="SFBD Blend Constant" size="32" start="15:0" type="float"/>
Alyssa Rosenzweig754d5432020-08-21 15:54:10 -0400770 </struct>
771
Alyssa Rosenzweigfa949672020-08-05 21:39:25 -0400772 <struct name="Uniform Buffer">
773 <field name="Entries" size="12" start="0" type="uint" modifier="minus(1)"/>
774 <field name="Pointer" size="52" start="12" type="address" modifier="shr(4)" element="16" count="Entries"/>
775 </struct>
776
Alyssa Rosenzweig7f487e02020-08-05 19:33:20 -0400777 <struct name="Viewport">
778 <field name="Minimum X" size="32" start="0:0" default="-INFINITY" type="float"/>
779 <field name="Minimum Y" size="32" start="1:0" default="-INFINITY" type="float"/>
780 <field name="Maximum X" size="32" start="2:0" default="+INFINITY" type="float"/>
781 <field name="Maximum Y" size="32" start="3:0" default="+INFINITY" type="float"/>
782 <field name="Minimum Z" size="32" start="4:0" default="0.0" type="float"/>
783 <field name="Maximum Z" size="32" start="5:0" default="1.0" type="float"/>
784 <field name="Scissor Minimum X" size="16" start="6:0" default="0" type="uint"/>
785 <field name="Scissor Minimum Y" size="16" start="6:16" default="0" type="uint"/>
786 <field name="Scissor Maximum X" size="16" start="7:0" type="uint"/>
787 <field name="Scissor Maximum Y" size="16" start="7:16" type="uint"/>
788 </struct>
789
Boris Brezillon3a06fc32020-09-03 09:18:09 +0200790 <struct name="Local Storage" size="8">
791 <field name="TLS Size" size="5" start="0:0" type="uint"/>
792 <field name="TLS Initial Stack Pointer Offset" size="27" start="0:5" type="uint"/>
793 <field name="WLS Instances" size="5" start="1:0" type="uint" modifier="log2" prefix="MALI_LOCAL_STORAGE">
794 <value name="No Workgroup Mem" value="0x80000000"/>
795 </field>
796 <field name="WLS Size Base" size="2" start="1:5" type="uint"/>
797 <field name="WLS Size Scale" size="5" start="1:8" type="uint"/>
798 <field name="TLS Base Pointer" size="64" start="2:0" type="address"/>
799 <field name="WLS Base Pointer" size="64" start="4:0" type="address"/>
800 </struct>
Boris Brezillone8556982020-09-05 18:16:37 +0200801
Boris Brezillon95eb7d92020-09-06 11:01:09 +0200802 <struct name="Midgard Tiler" size="10">
Boris Brezillone8556982020-09-05 18:16:37 +0200803 <field name="Polygon List Size" size="32" start="0:0" type="uint" prefix="MALI_MIDGARD_TILER">
804 <value name="Minimum Header Size" value="512"/>
805 </field>
806 <field name="Hierarchy Mask" size="16" start="1:0" type="uint" prefix="MALI_MIDGARD_TILER">
807 <value name="Disabled" value="4096"/>
808 <value name="User" value="4095"/>
809 <value name="Hierarchy Mask" value="511"/>
810 </field>
811 <field name="Polygon List" size="64" start="2:0" type="address"/>
812 <field name="Polygon List Body" size="64" start="4:0" type="address"/>
813 <field name="Heap Start" size="64" start="6:0" type="address"/>
814 <field name="Heap End" size="64" start="8:0" type="address"/>
815 </struct>
816
817 <struct name="Midgard Tiler Weights">
818 <field name="Weight0" size="32" start="0:0" type="uint"/>
819 <field name="Weight1" size="32" start="1:0" type="uint"/>
820 <field name="Weight2" size="32" start="2:0" type="uint"/>
821 <field name="Weight3" size="32" start="3:0" type="uint"/>
822 <field name="Weight4" size="32" start="4:0" type="uint"/>
823 <field name="Weight5" size="32" start="5:0" type="uint"/>
824 <field name="Weight6" size="32" start="6:0" type="uint"/>
825 <field name="Weight7" size="32" start="7:0" type="uint"/>
826 </struct>
Boris Brezillon95eb7d92020-09-06 11:01:09 +0200827
828 <enum name="Color Buffer Internal Format">
829 <value name="Raw Value" value="0"/>
830 <value name="R8G8B8A8" value="1"/>
831 <value name="R10G10B10A2" value="2"/>
832 <value name="R8G8B8A2" value="3"/>
833 <value name="R4G4B4A4" value="4"/>
834 <value name="R5G6B5A0" value="5"/>
835 <value name="R5G5B5A1" value="6"/>
836 <value name="RAW8" value="32"/>
837 <value name="RAW16" value="33"/>
838 <value name="RAW32" value="34"/>
839 <value name="RAW64" value="35"/>
840 <value name="RAW128" value="36"/>
841 </enum>
842
843 <enum name="SFBD Color Format">
844 <value name="4_32B_CHANNELS" value="0"/>
845 <value name="3_32B_CHANNELS" value="1"/>
846 <value name="2_32B_CHANNELS" value="2"/>
847 <value name="1_32B_CHANNEL" value="3"/>
848 <value name="4_16B_CHANNELS" value="4"/>
849 <value name="3_16B_CHANNELS" value="5"/>
850 <value name="2_16B_CHANNELS" value="6"/>
851 <value name="1_16B_CHANNEL" value="7"/>
852 <value name="R8" value="16"/>
853 <value name="R8G8" value="17"/>
854 <value name="R8G8B8" value="18"/>
855 <value name="R8G8B8A8" value="19"/>
856 <value name="R4G4B4A4" value="20"/>
857 <value name="R5G6B5" value="21"/>
858 <value name="R8G8B8_FROM_R8G8B8A2" value="22"/>
859 <value name="R10G10B10A2" value="24"/>
860 <value name="A2B10G10R10" value="25"/>
861 <value name="R5G5B5A1" value="28"/>
862 <value name="A1B5G5R5" value="29"/>
863 </enum>
864
Boris Brezillon5d5f7552020-09-08 10:17:40 +0200865 <enum name="MFBD Color Format">
866 <value name="RAW8" value="0"/>
867 <value name="RAW16" value="1"/>
868 <value name="RAW24" value="2"/>
869 <value name="RAW32" value="3"/>
870 <value name="RAW48" value="4"/>
871 <value name="RAW64" value="5"/>
872 <value name="RAW96" value="6"/>
873 <value name="RAW128" value="7"/>
874 <value name="RAW192" value="8"/>
875 <value name="RAW256" value="9"/>
876 <value name="RAW384" value="10"/>
877 <value name="RAW512" value="11"/>
878 <value name="RAW768" value="12"/>
879 <value name="RAW1024" value="13"/>
880 <value name="RAW1536" value="14"/>
881 <value name="RAW2048" value="15"/>
882 <value name="R8" value="16"/>
883 <value name="R8G8" value="17"/>
884 <value name="R8G8B8" value="18"/>
885 <value name="R8G8B8A8" value="19"/>
886 <value name="R4G4B4A4" value="20"/>
887 <value name="R5G6B5" value="21"/>
888 <value name="R8G8B8_FROM_R8G8B8A2" value="22"/>
889 <value name="R10G10B10A2" value="24"/>
890 <value name="A2B10G10R10" value="25"/>
891 <value name="R5G5B5A1" value="28"/>
892 <value name="A1B5G5R5" value="29"/>
893 <value name="NATIVE" value="31"/>
894 </enum>
895
Boris Brezillon95eb7d92020-09-06 11:01:09 +0200896 <enum name="Downsampling Accumulation Mode">
897 <value name="Unsigned normalized integer" value="0"/>
898 <value name="Signed normalized integer" value="1"/>
899 </enum>
900
901 <enum name="Sample Layout">
902 <value name="Ordered 4x Grid" value="0"/>
903 <value name="Rotated 4x Grid" value="1"/>
904 <value name="D3D 8x Grid" value="2"/>
905 <value name="D3D 16x Grid" value="3"/>
906 </enum>
907
908 <enum name="ZS Format">
909 <value name="D16" value="1"/>
910 <value name="D24" value="2"/>
911 <value name="D24X8" value="4"/>
912 <value name="D24S8" value="5"/>
913 <value name="X8D24" value="6"/>
914 <value name="S8D24" value="7"/>
915 <value name="D32_X8X24" value="13"/>
916 <value name="D32" value="14"/>
917 <value name="D32_S8X24" value="15"/>
918 </enum>
919
Boris Brezillon5d5f7552020-09-08 10:17:40 +0200920 <enum name="ZS Preload Format">
921 <value name="D32_S8X24" value="4"/>
922 </enum>
923
Boris Brezillon95eb7d92020-09-06 11:01:09 +0200924 <enum name="S Format">
925 <value name="S8" value="1"/>
926 <value name="S8X8" value="2"/>
927 <value name="S8X24" value="3"/>
928 <value name="X24S8" value="4"/>
929 <value name="X8S8" value="5"/>
930 <value name="X32_S8X24" value="6"/>
931 </enum>
932
933 <enum name="Tie-Break Rule">
934 <value name="0_IN_180_OUT" value="0"/>
935 <value name="0_OUT_180_IN" value="1"/>
936 <value name="MINUS_180_IN_0_OUT" value="2"/>
937 <value name="MINUS_180_OUT_0_IN" value="3"/>
938 <value name="90_IN_270_OUT" value="4"/>
939 <value name="90_OUT_270_IN" value="5"/>
940 <value name="MINUS_90_IN_90_OUT" value="6"/>
941 <value name="MINUS_90_OUT_90_IN" value="7"/>
942 </enum>
943
944 <struct name="RT Buffer">
945 <field name="Base" size="64" start="0:0" type="address"/>
946 <field name="Row Stride" size="32" start="2:0" type="uint"/>
947 <field name="Surface Stride" size="32" start="3:0" type="uint"/>
948 </struct>
949
950 <struct name="Single-Target Framebuffer Parameters" size="40">
951 <field name="Internal Format" size="3" start="0:0" default="Raw Value" type="Color Buffer Internal Format"/>
952 <field name="Sample Count" size="3" start="0:3" type="uint" default="1" modifier="log2"/>
953 <field name="Swizzle" size="12" start="0:6" type="uint"/>
954 <field name="Color Writeback Format" size="5" start="0:18" default="4_32B_CHANNELS" type="SFBD Color Format"/>
955 <field name="MSAA" size="2" start="0:23" default="Single" type="MSAA"/>
956 <field name="sRGB" size="1" start="0:25" type="bool"/>
957 <field name="Color Block Format" size="2" start="0:26" type="Block Format"/>
958 <field name="Dithering Enable" size="1" start="0:28" type="bool"/>
959 <field name="Clean Pixel Write Enable" size="1" start="0:29" type="bool"/>
960 <field name="Color Preload Enable" size="1" start="0:30" type="bool"/>
961 <field name="Color Write Enable" size="1" start="0:31" type="bool"/>
962 <field name="X Downsampling Scale" size="3" start="1:0" type="uint"/>
963 <field name="Y Downsampling Scale" size="3" start="1:3" type="uint"/>
964 <field name="Downsampling Accumulation Mode" size="2" start="1:6" type="Downsampling Accumulation Mode"/>
965 <field name="Sample Layout" size="2" start="1:8" type="Sample Layout"/>
966 <field name="Big Endian" size="1" start="1:10" type="bool"/>
967 <field name="Tie-Break Rule" size="3" start="1:11" type="Tie-Break Rule"/>
968 <field name="CRC Read Enable" size="1" start="1:14" type="bool"/>
969 <field name="CRC Write Enable" size="1" start="1:15" type="bool"/>
970 <field name="ZS Block Format" size="2" start="1:16" type="Block Format"/>
971 <field name="ZS Format" size="4" start="1:18" type="ZS Format" default="D24S8"/>
972 <field name="ZS Preload Enable" size="1" start="1:22" type="bool"/>
973 <field name="ZS Write Enable" size="1" start="1:23" type="bool"/>
974 <field name="S Block Format" size="2" start="1:24" type="Block Format"/>
975 <field name="S Format" size="4" start="1:26" type="S Format"/>
976 <field name="S Write Enable" size="1" start="1:31" type="bool"/>
977 <field name="Bound Min X" size="16" start="2:0" type="uint"/>
978 <field name="Bound Min Y" size="16" start="2:16" type="uint"/>
979 <field name="Bound Max X" size="16" start="3:0" type="uint"/>
980 <field name="Bound Max Y" size="16" start="3:16" type="uint"/>
981 <field name="DCD Offset" size="32" start="4:0" type="uint"/>
982 <field name="CRC Buffer" size="128" start="8:0" type="RT Buffer"/>
983 <field name="Color Writeback" size="128" start="12:0" type="RT Buffer"/>
984 <field name="ZS Writeback" size="128" start="16:0" type="RT Buffer"/>
985 <field name="S Writeback" size="128" start="20:0" type="RT Buffer"/>
986 <field name="Color Load Address" size="64" start="24:0" type="address"/>
987 <field name="Color Load Row Stride" size="32" start="26:0" type="uint"/>
988 <field name="Color Load Surface Stride" size="32" start="27:0" type="uint"/>
989 <field name="Clear Color 0" size="32" start="24:0" type="uint"/>
990 <field name="Clear Color 1" size="32" start="25:0" type="uint"/>
991 <field name="Clear Color 2" size="32" start="26:0" type="uint"/>
992 <field name="Clear Color 3" size="32" start="27:0" type="uint"/>
993 <field name="ZS Load Address" size="64" start="28:0" type="address"/>
994 <field name="ZS Load Row Stride" size="32" start="30:0" type="uint"/>
995 <field name="ZS Load Surface Stride" size="32" start="31:0" type="uint"/>
996 <field name="Z Clear" size="32" start="28:0" type="float"/>
997 <field name="S Clear" size="8" start="32:0" type="uint"/>
998 </struct>
999
1000 <struct name="Single-Target Framebuffer Padding 1" size="6">
1001 </struct>
1002
1003 <struct name="Single-Target Framebuffer Padding 2" size="8">
1004 </struct>
1005
1006 <aggregate name="Single-Target Framebuffer" size="320">
1007 <section name="Local Storage" offset="0" type="Local Storage"/>
1008 <section name="Parameters" offset="32" type="Single-Target Framebuffer Parameters"/>
1009 <section name="Tiler" offset="192" type="Midgard Tiler"/>
1010 <section name="Padding 1" offset="232" type="Single-Target Framebuffer Padding 1"/>
1011 <section name="Tiler Weights" offset="256" type="Midgard Tiler Weights"/>
1012 <section name="Padding 2" offset="288" type="Single-Target Framebuffer Padding 2"/>
1013 </aggregate>
Boris Brezillonefce73d2020-09-08 10:11:26 +02001014
1015 <enum name="Sample Pattern">
1016 <value name="Single-sampled" value="0"/>
1017 <value name="Ordered 4x Grid" value="1"/>
1018 <value name="Rotated 4x Grid" value="2"/>
1019 <value name="D3D 8x Grid" value="3"/>
1020 <value name="D3D 16x Grid" value="4"/>
1021 </enum>
1022
Boris Brezillon5d5f7552020-09-08 10:17:40 +02001023 <enum name="Z Internal Format">
1024 <value name="D16" value="0"/>
1025 <value name="D24" value="1"/>
1026 <value name="D32" value="2"/>
1027 </enum>
1028
1029 <enum name="FBD Tag">
1030 <value name="IS_MFBD" value="1"/>
1031 <value name="HAS_ZS_RT" value="2"/>
1032 <value name="MASK" value="63"/>
1033 </enum>
1034
1035 <struct name="Multi-Target Framebuffer Parameters">
1036 <field name="Width" size="16" start="0:0" type="uint" modifier="minus(1)"/>
1037 <field name="Height" size="16" start="0:16" type="uint" modifier="minus(1)"/>
1038 <field name="Bound Min X" size="16" start="1:0" type="uint"/>
1039 <field name="Bound Min Y" size="16" start="1:16" type="uint"/>
1040 <field name="Bound Max X" size="16" start="2:0" type="uint"/>
1041 <field name="Bound Max Y" size="16" start="2:16" type="uint"/>
1042 <field name="Sample Count" size="3" start="3:0" type="uint" default="1" modifier="log2"/>
1043 <field name="Sample Pattern" size="3" start="3:3" type="Sample Pattern"/>
1044 <field name="Tie-Break Rule" size="3" start="3:6" type="Tie-Break Rule"/>
1045 <field name="Effective Tile Size" size="4" start="3:9" type="uint" modifier="log2"/>
1046 <field name="X Downsampling Scale" size="3" start="3:13" type="uint"/>
1047 <field name="Y Downsampling Scale" size="3" start="3:16" type="uint"/>
1048 <field name="Render Target Count" size="4" start="3:19" type="uint" modifier="minus(1)"/>
1049 <field name="Color Buffer Allocation" size="8" start="3:24" type="uint" modifier="shr(10)"/>
1050 <field name="S Clear" size="8" start="4:0" type="uint"/>
1051 <field name="S Write Enable" size="1" start="4:8" type="bool"/>
1052 <field name="S Preload Enable" size="1" start="4:9" type="bool"/>
1053 <field name="S Unload Enable" size="1" start="4:10" type="bool"/>
1054 <field name="Z Internal Format" size="2" start="4:16" type="Z Internal Format"/>
1055 <field name="Z Write Enable" size="1" start="4:18" type="bool"/>
1056 <field name="Z Preload Enable" size="1" start="4:19" type="bool"/>
1057 <field name="Z Unload Enable" size="1" start="4:20" type="bool"/>
1058 <field name="Has ZS CRC Extension" size="1" start="4:21" type="bool"/>
1059 <field name="CRC Read Enable" size="1" start="4:30" type="bool"/>
1060 <field name="CRC Write Enable" size="1" start="4:31" type="bool"/>
1061 <field name="Z Clear" size="32" start="5:0" type="float"/>
1062 </struct>
1063
1064 <struct name="ZS CRC Extension">
1065 <field name="CRC Base" size="64" start="0:0" type="address"/>
1066 <field name="CRC Row Stride" size="32" start="2:0" type="uint"/>
1067 <field name="ZS Write Format" size="4" start="3:0" type="ZS Format"/>
1068 <field name="ZS Block Format" size="2" start="3:4" type="Block Format"/>
1069 <field name="ZS Block Format v7" size="2" start="3:4" type="Block Format v7"/>
1070 <field name="ZS MSAA" size="2" start="3:6" default="Single" type="MSAA"/>
1071 <field name="ZS Big Endian" size="1" start="3:8" type="bool"/>
1072 <field name="ZS Clean Pixel Write Enable" size="1" start="3:10" type="bool"/>
1073 <field name="CRC Render Target" size="4" start="3:11" type="uint"/>
1074 <field name="S Write Format" size="4" start="3:16" type="S Format"/>
1075 <field name="S Block Format" size="2" start="3:20" type="Block Format"/>
1076 <field name="S MSAA" size="2" start="3:22" default="Single" type="MSAA"/>
1077 <field name="ZS Preload Format" size="4" start="3:28" type="ZS Preload Format"/>
1078 <field name="ZS Writeback Base" size="64" start="4:0" type="address"/>
1079 <field name="ZS Writeback Row Stride" size="32" start="6:0" type="uint"/>
1080 <field name="ZS Writeback Surface Stride" size="32" start="7:0" type="uint"/>
1081 <field name="S Writeback Base" size="64" start="8:0" type="address"/>
1082 <field name="S Writeback Row Stride" size="32" start="10:0" type="uint"/>
1083 <field name="S Writeback Surface Stride" size="32" start="11:0" type="uint"/>
1084 <field name="ZS AFBC Header" size="64" start="4:0" type="address"/>
1085 <field name="ZS AFBC Row Stride" size="13" start="6:0" type="uint"/>
1086 <field name="ZS AFBC Chunk Size" size="12" start="7:0" type="uint"/>
1087 <field name="ZS AFBC Sparse" size="1" start="7:16" type="bool"/>
1088 <field name="ZS AFBC Body" size="64" start="8:0" type="address"/>
1089 <field name="ZS AFBC Body Size" size="32" start="10:0" type="uint"/>
1090 <field name="ZS Preload Base" size="64" start="12:0" type="address"/>
1091 <field name="ZS Preload Row Stride" size="32" start="14:0" type="uint"/>
1092 <field name="ZS Preload Surface Stride" size="32" start="15:0" type="uint"/>
1093 <field name="CRC Clear Color" size="64" start="12:0" type="uint"/>
1094 </struct>
1095
1096 <enum name="RT Endianness">
1097 <value name="Little Endian" value="0"/>
1098 <value name="Big Endian 2B" value="1"/>
1099 <value name="Big Endian 4B" value="2"/>
1100 <value name="Big Endian 8B" value="3"/>
1101 </enum>
1102
1103 <enum name="YUV Conv K6">
1104 <value name="0" value="0"/>
1105 <value name="16" value="1"/>
1106 </enum>
1107
1108 <enum name="YUV Conv K7 Clamp">
1109 <value name="MINUS_128_TO_127" value="0"/>
1110 <value name="MINUS_112_TO_111" value="1"/>
1111 <value name="0_TO_255" value="2"/>
1112 <value name="16_TO_239" value="3"/>
1113 </enum>
1114
1115 <enum name="YUV Conv K8">
1116 <value name="220" value="0"/>
1117 <value name="256" value="1"/>
1118 </enum>
1119
Boris Brezillonca392e82020-09-16 01:06:28 +02001120 <struct name="Render Target Midgard Overlay" size="16">
Boris Brezillon5d5f7552020-09-08 10:17:40 +02001121 <field name="Writeback Endianness" size="2" start="1:8" type="RT Endianness"/>
1122 <field name="Writeback Block Format" size="2" start="1:10" type="Block Format"/>
Boris Brezillon5d5f7552020-09-08 10:17:40 +02001123 <field name="Writeback Sampling Mode" size="2" start="1:29" type="Downsampling Accumulation Mode"/>
Boris Brezillon5d5f7552020-09-08 10:17:40 +02001124 <field name="Preload Enable" size="1" start="2:0" type="bool"/>
1125 <field name="Unload Enable" size="1" start="2:1" type="bool"/>
1126 <field name="Preload Format" size="5" start="2:3" type="MFBD Color Format"/>
1127 <field name="Preload Endianness" size="2" start="2:8" type="RT Endianness"/>
1128 <field name="Preload Block Format" size="4" start="2:10" type="Block Format"/>
1129 <field name="Preload MSAA" size="2" start="2:14" type="MSAA"/>
Boris Brezillonca392e82020-09-16 01:06:28 +02001130 </struct>
1131
1132 <struct name="Render Target Midgard YUV Overlay" size="16">
1133 <field name="Conv K5" size="8" start="2:16" type="uint"/>
1134 <field name="Conv K6" size="1" start="2:24" type="YUV Conv K6"/>
1135 <field name="Conv K7 Clamp" size="2" start="2:25" type="YUV Conv K7 Clamp"/>
1136 <field name="Conv K8" size="1" start="2:27" type="YUV Conv K8"/>
1137 <field name="Conv Disable" size="1" start="2:31" type="bool"/>
1138 <field name="Conv K1" size="8" start="3:0" type="uint"/>
1139 <field name="Conv K2" size="8" start="3:8" type="uint"/>
1140 <field name="Conv K3" size="8" start="3:16" type="uint"/>
1141 <field name="Conv K4" size="8" start="3:24" type="uint"/>
1142 </struct>
1143
1144 <struct name="Render Target Bifrost YUV Overlay" size="16">
1145 <field name="Swizzle" size="3" start="2:16" type="YUV Swizzle"/>
1146 <field name="Full Range" size="1" start="2:20" type="bool"/>
1147 <field name="Conversion Mode" size="4" start="2:21" type="YUV Conversion Mode"/>
1148 <field name="Cr Siting" size="3" start="2:25" type="YUV Cr Siting"/>
1149 <field name="Unsigned Cr Range" size="1" start="2:28" type="bool"/>
1150 </struct>
1151
1152 <struct name="Render Target Bifrost v7 Overlay" size="16">
1153 <field name="Writeback Block Format" size="4" start="1:8" type="Block Format v7"/>
1154 <field name="Dithered Clear" size="1" start="0:25" type="bool"/>
1155 </struct>
1156
1157 <struct name="Render Target Bifrost v6 Overlay" size="16">
1158 <field name="Writeback Endianness" size="2" start="1:8" type="RT Endianness"/>
1159 <field name="Writeback Block Format" size="2" start="1:10" type="Block Format"/>
1160 <field name="Dithered Clear" size="1" start="0:25" type="bool"/>
1161 </struct>
1162
1163 <struct name="Render Target YUV Overlay" size="16">
1164 <field name="Plane 0 Base" size="64" start="4:0" type="address"/>
1165 <field name="Plane 1 Base" size="64" start="6:0" type="address"/>
1166 <field name="Plane 2 Base" size="64" start="8:0" type="address"/>
1167 <field name="Plane 0 Stride" size="32" start="10:0" type="uint"/>
1168 <field name="Plane 1 2 Stride" size="32" start="11:0" type="uint"/>
1169 </struct>
1170
1171 <struct name="Render Target AFBC Overlay" size="16">
1172 <field name="Header" size="64" start="4:0" type="address"/>
1173 <field name="Row Stride" size="13" start="6:0" type="uint"/>
1174 <field name="Chunk Size" size="12" start="7:0" type="uint"/>
1175 <field name="YUV Transform Enable" size="1" start="7:17" type="bool"/>
1176 <field name="Body" size="64" start="8:0" type="address"/>
1177 <field name="Body Size" size="32" start="10:0" type="uint"/>
1178 </struct>
1179
1180 <struct name="Render Target Midgard AFBC Overlay" size="16">
1181 <field name="Sparse" size="1" start="7:16" type="bool"/>
1182 </struct>
1183
1184 <struct name="Render Target Bifrost AFBC Overlay" size="16">
Boris Brezillon5d5f7552020-09-08 10:17:40 +02001185 <field name="AFBC Split Block Enable" size="1" start="7:18" type="bool"/>
1186 <field name="AFBC Wide Block Enable" size="1" start="7:19" type="bool"/>
Boris Brezillonca392e82020-09-16 01:06:28 +02001187 </struct>
1188
1189 <struct name="RT Clear">
1190 <field name="Color 0" size="32" start="0:0" type="uint"/>
1191 <field name="Color 1" size="32" start="1:0" type="uint"/>
1192 <field name="Color 2" size="32" start="2:0" type="uint"/>
1193 <field name="Color 3" size="32" start="3:0" type="uint"/>
1194 </struct>
1195
1196 <struct name="Render Target">
1197 <field name="Midgard" size="512" start="0:0" type="Render Target Midgard Overlay"/>
1198 <field name="Bifrost v6" size="512" start="0:0" type="Render Target Bifrost v6 Overlay"/>
1199 <field name="Bifrost v7" size="512" start="0:0" type="Render Target Bifrost v7 Overlay"/>
1200 <field name="YUV" size="512" start="0:0" type="Render Target YUV Overlay"/>
1201 <field name="Midgard YUV" size="512" start="0:0" type="Render Target Midgard YUV Overlay"/>
1202 <field name="Bifrost YUV" size="512" start="0:0" type="Render Target Bifrost YUV Overlay"/>
1203 <field name="AFBC" size="512" start="0:0" type="Render Target AFBC Overlay"/>
1204 <field name="Midgard AFBC" size="512" start="0:0" type="Render Target Midgard AFBC Overlay"/>
1205 <field name="Bifrost AFBC" size="512" start="0:0" type="Render Target Bifrost AFBC Overlay"/>
1206 <field name="Internal Buffer Offset" size="12" start="0:4" type="uint" modifier="shr(4)"/>
1207 <field name="YUV Enable" size="1" start="0:24" type="bool"/>
1208 <field name="Internal Format" size="6" start="0:26" type="Color Buffer Internal Format"/>
1209 <field name="Write Enable" size="1" start="1:0" type="bool"/>
1210 <field name="Writeback Format" size="5" start="1:3" type="MFBD Color Format"/>
1211 <field name="Writeback MSAA" size="2" start="1:12" type="MSAA"/>
1212 <field name="sRGB" size="1" start="1:14" type="bool"/>
1213 <field name="Dithering Enable" size="1" start="1:15" type="bool"/>
1214 <field name="Swizzle" size="12" start="1:16" type="uint"/>
1215 <field name="Clean Pixel Write Enable" size="1" start="1:31" type="bool"/>
1216 <field name="RGB" size="128" start="8:0" type="RT Buffer"/>
1217 <field name="Midgard Preload" size="128" start="12:0" type="RT Buffer"/>
1218 <field name="Clear" size="128" start="12:0" type="RT Clear"/>
Boris Brezillon5d5f7552020-09-08 10:17:40 +02001219 </struct>
1220
1221 <enum name="Pre Post Frame Shader Mode">
1222 <value name="Never" value="0"/>
1223 <value name="Always" value="1"/>
1224 <value name="Intersect" value="2"/>
1225 </enum>
1226
1227 <struct name="Bifrost Framebuffer Parameters">
1228 <field name="Pre Frame 0" size="3" start="0:0" type="Pre Post Frame Shader Mode"/>
1229 <field name="Pre Frame 1" size="3" start="0:3" type="Pre Post Frame Shader Mode"/>
1230 <field name="Post Frame" size="3" start="0:6" type="Pre Post Frame Shader Mode"/>
1231 <field name="Sample Locations" size="64" start="4:0" type="address"/>
1232 <field name="Frame Shader DCDs" size="64" start="6:0" type="address"/>
1233 </struct>
1234
Boris Brezillonefce73d2020-09-08 10:11:26 +02001235 <struct name="Bifrost Tiler Heap">
1236 <field name="Size" size="32" start="1:0" type="uint" modifier="align(4096)"/>
1237 <field name="Base" size="64" start="2:0" type="address"/>
1238 <field name="Bottom" size="64" start="4:0" type="address"/>
1239 <field name="Top" size="64" start="6:0" type="address"/>
1240 </struct>
1241
Boris Brezillon6abb4cd2020-09-25 10:24:43 +02001242 <struct name="Bifrost Tiler Weights" size="8">
1243 <field name="Weight0" size="16" start="0:16" type="uint"/>
1244 <field name="Weight1" size="16" start="1:16" type="uint"/>
1245 <field name="Weight2" size="16" start="2:16" type="uint"/>
1246 <field name="Weight3" size="16" start="3:16" type="uint"/>
1247 <field name="Weight4" size="16" start="4:16" type="uint"/>
1248 <field name="Weight5" size="16" start="5:16" type="uint"/>
1249 <field name="Weight6" size="16" start="6:16" type="uint"/>
1250 <field name="Weight7" size="16" start="7:16" type="uint"/>
Boris Brezillonefce73d2020-09-08 10:11:26 +02001251 </struct>
1252
Boris Brezillon6abb4cd2020-09-25 10:24:43 +02001253 <struct name="Bifrost Tiler" size="48">
Boris Brezillonefce73d2020-09-08 10:11:26 +02001254 <field name="Polygon List" size="64" start="0:0" type="address"/>
1255 <field name="Hierarchy Mask" size="13" start="2:0" type="uint"/>
1256 <field name="Sample Pattern" size="3" start="2:13" type="Sample Pattern"/>
1257 <field name="Update Cost Table" size="1" start="2:16" type="bool"/>
1258 <field name="FB Width" size="16" start="3:0" type="uint" modifier="minus(1)"/>
1259 <field name="FB Height" size="16" start="3:16" type="uint" modifier="minus(1)"/>
1260 <field name="Heap" size="64" start="6:0" type="address"/>
Boris Brezillon6abb4cd2020-09-25 10:24:43 +02001261 <field name="Weights" size="256" start="8:0" type="Bifrost Tiler Weights"/>
Boris Brezillonefce73d2020-09-08 10:11:26 +02001262 </struct>
Boris Brezillon5d5f7552020-09-08 10:17:40 +02001263
1264 <struct name="Bifrost Tiler Pointer">
1265 <field name="Address" size="64" start="0:0" type="address"/>
1266 </struct>
1267
1268 <struct name="Bifrost Framebuffer Padding" size="16">
1269 </struct>
1270
1271 <aggregate name="Multi-Target Framebuffer">
1272 <section name="Local Storage" offset="0" type="Local Storage"/>
1273 <section name="Bifrost Parameters" offset="0" type="Bifrost Framebuffer Parameters"/>
1274 <section name="Parameters" offset="32" type="Multi-Target Framebuffer Parameters"/>
1275 <section name="Tiler" offset="56" type="Midgard Tiler"/>
1276 <section name="Tiler Weights" offset="96" type="Midgard Tiler Weights"/>
1277 <section name="Bifrost Tiler Pointer" offset="56" type="Bifrost Tiler Pointer"/>
1278 <section name="Bifrost Padding" offset="64" type="Bifrost Framebuffer Padding"/>
1279 </aggregate>
Boris Brezilloneb923542020-09-08 07:07:41 +02001280
1281 <struct name="Job Header">
1282 <field name="Exception Status" size="32" start="0:0" type="uint"/>
1283 <field name="First Incomplete Task" size="32" start="1:0" type="uint"/>
1284 <field name="Fault Pointer" size="64" start="2:0" type="address"/>
1285 <field name="Is 64b" size="1" start="4:0" type="bool" default="true"/>
1286 <field name="Type" size="7" start="4:1" type="Job Type"/>
1287 <field name="Barrier" size="1" start="4:8" type="bool"/>
1288 <field name="Invalidate Cache" size="1" start="4:9" type="bool"/>
1289 <field name="Suppress Prefetch" size="1" start="4:11" type="bool"/>
1290 <field name="Enable Texture Mapper" size="1" start="4:12" type="bool"/>
1291 <field name="Relax Dependency 1" size="1" start="4:14" type="bool"/>
1292 <field name="Relax Dependency 2" size="1" start="4:15" type="bool"/>
1293 <field name="Index" size="16" start="4:16" type="uint"/>
1294 <field name="Dependency 1" size="16" start="5:0" type="uint"/>
1295 <field name="Dependency 2" size="16" start="5:16" type="uint"/>
1296 <field name="Next" size="64" start="6:0" type="address"/>
1297 </struct>
Boris Brezillon9121e7d2020-09-08 10:39:23 +02001298
Boris Brezillon89fafe92020-09-08 12:43:48 +02001299 <struct name="Fragment Job Payload" size="8">
1300 <field name="Bound Min X" size="12" start="0:0" type="uint"/>
1301 <field name="Bound Min Y" size="12" start="0:16" type="uint"/>
1302 <field name="Bound Max X" size="12" start="1:0" type="uint"/>
1303 <field name="Bound Max Y" size="12" start="1:16" type="uint"/>
1304 <field name="Has Tile Enable Map" size="1" start="1:31" type="bool"/>
1305 <field name="Framebuffer" size="64" start="2:0" type="address"/>
1306 <field name="Tile Enable Map" size="64" start="4:0" type="address"/>
1307 <field name="Tile Enable Map Row Stride" size="8" start="6:0" type="uint"/>
1308 </struct>
1309
1310 <aggregate name="Fragment Job">
1311 <section name="Header" offset="0" type="Job Header"/>
1312 <section name="Payload" offset="32" type="Fragment Job Payload"/>
1313 </aggregate>
1314
Boris Brezillon9121e7d2020-09-08 10:39:23 +02001315 <enum name="Write Value Type">
1316 <value name="Cycle Counter" value="1"/>
1317 <value name="System Timestamp" value="2"/>
1318 <value name="Zero" value="3"/>
1319 <value name="Immediate 8" value="4"/>
1320 <value name="Immediate 16" value="5"/>
1321 <value name="Immediate 32" value="6"/>
1322 <value name="Immediate 64" value="7"/>
1323 </enum>
1324
1325 <struct name="Write Value Job Payload">
1326 <field name="Address" size="64" start="0:0" type="address"/>
1327 <field name="Type" size="32" start="2:0" type="Write Value Type"/>
1328 <field name="Immediate Value" size="64" start="4:0" type="uint"/>
1329 </struct>
1330
1331 <aggregate name="Write Value Job">
1332 <section name="Header" offset="0" type="Job Header"/>
1333 <section name="Payload" offset="32" type="Write Value Job Payload"/>
1334 </aggregate>
Boris Brezillond2892092020-09-08 19:41:51 +02001335
1336 <struct name="Compute Job Parameters" size="6">
1337 <field name="Job Task Split" size="4" start="0:26" type="uint"/>
1338 </struct>
1339
1340 <!-- Compute job also covers vertex and geometry operations -->
1341 <aggregate name="Compute Job">
1342 <section name="Header" offset="0" type="Job Header"/>
1343 <section name="Invocation" offset="32" type="Invocation"/>
1344 <section name="Parameters" offset="40" type="Compute Job Parameters"/>
1345 <section name="Draw" offset="64" type="Draw"/>
1346 </aggregate>
1347
1348 <struct name="Primitive Size">
1349 <field name="Constant" size="32" start="0:0" type="float"/>
1350 <field name="Size Array" size="64" start="0:0" type="uint"/>
1351 </struct>
1352
1353 <aggregate name="Midgard Tiler Job" size="192">
1354 <section name="Header" offset="0" type="Job Header"/>
1355 <section name="Invocation" offset="32" type="Invocation"/>
1356 <section name="Primitive" offset="40" type="Primitive"/>
1357 <section name="Draw" offset="64" type="Draw"/>
1358 <section name="Primitive Size" offset="184" type="Primitive Size"/>
1359 </aggregate>
1360
1361 <struct name="Bifrost Tiler Job Padding" size="12">
1362 </struct>
1363
1364 <aggregate name="Bifrost Tiler Job" size="256">
1365 <section name="Header" offset="0" type="Job Header"/>
1366 <section name="Invocation" offset="32" type="Invocation"/>
1367 <section name="Primitive" offset="40" type="Primitive"/>
1368 <section name="Primitive Size" offset="64" type="Primitive Size"/>
1369 <section name="Tiler" offset="72" type="Bifrost Tiler Pointer"/>
1370 <section name="Padding" offset="80" type="Bifrost Tiler Job Padding"/>
1371 <section name="Draw" offset="128" type="Draw"/>
1372 </aggregate>
Alyssa Rosenzweig9cb3a9e2020-08-05 18:16:38 -04001373</panxml>