1b8e80941Smrg<vcxml gen="2.1" min_ver="21" max_ver="21">
2b8e80941Smrg
3b8e80941Smrg  <enum name="Compare Function" prefix="V3D_COMPARE_FUNC">
4b8e80941Smrg    <value name="NEVER" value="0"/>
5b8e80941Smrg    <value name="LESS" value="1"/>
6b8e80941Smrg    <value name="EQUAL" value="2"/>
7b8e80941Smrg    <value name="LEQUAL" value="3"/>
8b8e80941Smrg    <value name="GREATER" value="4"/>
9b8e80941Smrg    <value name="NOTEQUAL" value="5"/>
10b8e80941Smrg    <value name="GEQUAL" value="6"/>
11b8e80941Smrg    <value name="ALWAYS" value="7"/>
12b8e80941Smrg  </enum>
13b8e80941Smrg
14b8e80941Smrg  <enum name="Primitive" prefix="V3D_PRIM">
15b8e80941Smrg    <value name="POINTS" value="0"/>
16b8e80941Smrg    <value name="LINES" value="1"/>
17b8e80941Smrg    <value name="LINE_LOOP" value="2"/>
18b8e80941Smrg    <value name="LINE_STRIP" value="3"/>
19b8e80941Smrg    <value name="TRIANGLES" value="4"/>
20b8e80941Smrg    <value name="TRIANGLE_STRIP" value="5"/>
21b8e80941Smrg    <value name="TRIANGLE_FAN" value="6"/>
22b8e80941Smrg  </enum>
23b8e80941Smrg
24b8e80941Smrg  <packet name="Halt" code="0"/>
25b8e80941Smrg  <packet name="NOP" code="1"/>
26b8e80941Smrg  <packet name="Flush" code="4" cl="B"/>
27b8e80941Smrg  <packet name="Flush All State" code="5" cl="B"/>
28b8e80941Smrg  <packet name="Start Tile Binning" code="6" cl="B"/>
29b8e80941Smrg  <packet name="Increment Semaphore" code="7"/>
30b8e80941Smrg  <packet name="Wait on Semaphore" code="8"/>
31b8e80941Smrg  <packet name="Branch" code="16">
32b8e80941Smrg    <field name="Address" size="32" start="0" type="address"/>
33b8e80941Smrg  </packet>
34b8e80941Smrg  <packet name="Branch to sub-list" code="17">
35b8e80941Smrg    <field name="Address" size="32" start="0" type="address"/>
36b8e80941Smrg  </packet>
37b8e80941Smrg  <packet name="Return from sub-list" code="18"/>
38b8e80941Smrg
39b8e80941Smrg  <packet name="Store Multi-sample Resolved Tile Color Buffer" code="24" cl="R"/>
40b8e80941Smrg  <packet name="Store Multi-sample Resolved Tile Color Buffer and EOF" code="25" cl="R"/>
41b8e80941Smrg
42b8e80941Smrg  <packet name="Store Full Resolution Tile Buffer" cl="R" code="26">
43b8e80941Smrg    <field name="Address" size="28" start="4" type="address"/>
44b8e80941Smrg    <field name="Last Tile" size="1" start="3" type="bool"/>
45b8e80941Smrg    <field name="Disable Clear on Write" size="1" start="2" type="bool"/>
46b8e80941Smrg    <field name="Disable Z/Stencil Buffer write" size="1" start="1" type="bool"/>
47b8e80941Smrg    <field name="Disable Color Buffer write" size="1" start="0" type="bool"/>
48b8e80941Smrg  </packet>
49b8e80941Smrg
50b8e80941Smrg  <packet name="Re-load Full Resolution Tile Buffer" cl="R" code="27">
51b8e80941Smrg    <field name="Address" size="28" start="4" type="address"/>
52b8e80941Smrg    <field name="Disable Z/Stencil Buffer read" size="1" start="1" type="bool"/>
53b8e80941Smrg    <field name="Disable Color Buffer read" size="1" start="0" type="bool"/>
54b8e80941Smrg  </packet>
55b8e80941Smrg
56b8e80941Smrg  <packet name="Store Tile Buffer General" code="28" cl="R">
57b8e80941Smrg    <field name="Memory base address of frame/tile dump buffer" size="28" start="20" type="address"/>
58b8e80941Smrg    <field name="Last Tile of Frame" size="1" start="19" type="bool"/>
59b8e80941Smrg    <field name="Disable VG-Mask buffer dump" size="1" start="18" type="bool"/>
60b8e80941Smrg    <field name="Disable Z/Stencil buffer dump" size="1" start="17" type="bool"/>
61b8e80941Smrg    <field name="Disable Color buffer dump" size="1" start="16" type="bool"/>
62b8e80941Smrg    <field name="Disable VG-Mask buffer clear on store/dump" size="1" start="15" type="bool"/>
63b8e80941Smrg    <field name="Disable Z/Stencil buffer clear on store/dump" size="1" start="14" type="bool"/>
64b8e80941Smrg    <field name="Disable Color buffer clear on store/dump" size="1" start="13" type="bool"/>
65b8e80941Smrg
66b8e80941Smrg    <field name="Pixel Color Format" size="2" start="8" type="uint">
67b8e80941Smrg      <value name="rgba8888" value="0"/>
68b8e80941Smrg      <value name="bgr565 dithered" value="1"/>
69b8e80941Smrg      <value name="bgr565 no dither" value="2"/>
70b8e80941Smrg    </field>
71b8e80941Smrg
72b8e80941Smrg    <field name="Mode" size="2" start="6" type="uint">
73b8e80941Smrg      <value name="Sample 0" value="0"/>
74b8e80941Smrg      <value name="Decimate x4" value="1"/>
75b8e80941Smrg      <value name="Decimate x16" value="2"/>
76b8e80941Smrg    </field>
77b8e80941Smrg
78b8e80941Smrg    <field name="Format" size="2" start="4" type="uint">
79b8e80941Smrg      <value name="Raster" value="0"/>
80b8e80941Smrg      <value name="T" value="1"/>
81b8e80941Smrg      <value name="LT" value="2"/>
82b8e80941Smrg    </field>
83b8e80941Smrg
84b8e80941Smrg    <field name="Buffer to Store" size="3" start="0" type="uint">
85b8e80941Smrg      <value name="None" value="0"/>
86b8e80941Smrg      <value name="Color" value="1"/>
87b8e80941Smrg      <value name="Z/stencil" value="2"/>
88b8e80941Smrg      <value name="Z" value="3"/>
89b8e80941Smrg      <value name="VG-Mask" value="4"/>
90b8e80941Smrg    </field>
91b8e80941Smrg  </packet>
92b8e80941Smrg
93b8e80941Smrg  <packet name="Load Tile Buffer General" code="29" cl="R">
94b8e80941Smrg    <field name="Memory base address of frame/tile dump buffer" size="28" start="20" type="address"/>
95b8e80941Smrg    <field name="Disable VG-Mask buffer load" size="1" start="18" type="bool"/>
96b8e80941Smrg    <field name="Disable Z/Stencil buffer load" size="1" start="17" type="bool"/>
97b8e80941Smrg    <field name="Disable Color buffer load" size="1" start="16" type="bool"/>
98b8e80941Smrg
99b8e80941Smrg    <field name="Pixel Color Format" size="2" start="8" type="uint">
100b8e80941Smrg      <value name="rgba8888" value="0"/>
101b8e80941Smrg      <value name="bgr565 dithered" value="1"/>
102b8e80941Smrg      <value name="bgr565 no dither" value="2"/>
103b8e80941Smrg    </field>
104b8e80941Smrg
105b8e80941Smrg    <field name="Mode" size="2" start="6" type="uint">
106b8e80941Smrg      <value name="Sample 0" value="0"/>
107b8e80941Smrg      <value name="Decimate x4" value="1"/>
108b8e80941Smrg      <value name="Decimate x16" value="2"/>
109b8e80941Smrg    </field>
110b8e80941Smrg
111b8e80941Smrg    <field name="Format" size="2" start="4" type="uint">
112b8e80941Smrg      <value name="Raster" value="0"/>
113b8e80941Smrg      <value name="T" value="1"/>
114b8e80941Smrg      <value name="LT" value="2"/>
115b8e80941Smrg    </field>
116b8e80941Smrg
117b8e80941Smrg    <field name="Buffer to Store" size="3" start="0" type="uint">
118b8e80941Smrg      <value name="None" value="0"/>
119b8e80941Smrg      <value name="Color" value="1"/>
120b8e80941Smrg      <value name="Z/stencil" value="2"/>
121b8e80941Smrg      <value name="Z" value="3"/>
122b8e80941Smrg      <value name="VG-Mask" value="4"/>
123b8e80941Smrg    </field>
124b8e80941Smrg  </packet>
125b8e80941Smrg
126b8e80941Smrg  <packet name="Indexed Primitive List" code="32">
127b8e80941Smrg    <field name="Maximum Index" size="32" start="72" type="uint"/>
128b8e80941Smrg    <field name="Address of Indices List" size="32" start="40" type="uint"/>
129b8e80941Smrg    <field name="Length" size="32" start="8" type="uint"/>
130b8e80941Smrg    <field name="Index type" size="4" start="4" type="uint">
131b8e80941Smrg      <value name="8-bit" value="0"/>
132b8e80941Smrg      <value name="16-bit" value="1"/>
133b8e80941Smrg    </field>
134b8e80941Smrg    <field name="Primitive mode" size="4" start="0" type="Primitive"/>
135b8e80941Smrg  </packet>
136b8e80941Smrg
137b8e80941Smrg  <packet name="Vertex Array Primitives" code="33">
138b8e80941Smrg    <field name="Index of First Vertex" size="32" start="40" type="uint"/>
139b8e80941Smrg    <field name="Length" size="32" start="8" type="uint"/>
140b8e80941Smrg    <field name="Primitive mode" size="4" start="0" type="Primitive"/>
141b8e80941Smrg  </packet>
142b8e80941Smrg
143b8e80941Smrg  <packet name="Primitive List Format" cl="R" code="56">
144b8e80941Smrg    <field name="Data Type" size="4" start="4" type="uint">
145b8e80941Smrg      <value name="16-bit index" value="1"/>
146b8e80941Smrg      <value name="32-bit x/y" value="3"/>
147b8e80941Smrg    </field>
148b8e80941Smrg
149b8e80941Smrg    <field name="Primitive Type" size="4" start="0" type="uint">
150b8e80941Smrg      <value name="Points List" value="0"/>
151b8e80941Smrg      <value name="Lines List" value="1"/>
152b8e80941Smrg      <value name="Triangles List" value="2"/>
153b8e80941Smrg      <value name="RHY List" value="3"/>
154b8e80941Smrg    </field>
155b8e80941Smrg  </packet>
156b8e80941Smrg
157b8e80941Smrg  <packet name="GL Shader State" code="64">
158b8e80941Smrg    <!-- The address field will be filled in by kernel validation code. -->
159b8e80941Smrg    <field name="Address" size="28" start="0" type="uint"/>
160b8e80941Smrg    <field name="Extended shader record" size="1" start="3" type="bool"/>
161b8e80941Smrg    <field name="Number of attribute arrays" size="3" start="0" type="uint"/>
162b8e80941Smrg  </packet>
163b8e80941Smrg
164b8e80941Smrg  <packet name="Clear Colors" cl="R" code="114">
165b8e80941Smrg    <field name="Clear Stencil" size="8" start="96" type="uint"/>
166b8e80941Smrg    <field name="Clear VG Mask" size="8" start="88" type="uint"/>
167b8e80941Smrg    <field name="Clear ZS" size="24" start="64" type="uint"/>
168b8e80941Smrg    <field name="Clear Color" size="64" start="0" type="uint"/>
169b8e80941Smrg  </packet>
170b8e80941Smrg
171b8e80941Smrg  <packet name="Configuration Bits" code="96">
172b8e80941Smrg    <field name="Early Z updates enable" size="1" start="17" type="bool"/>
173b8e80941Smrg    <field name="Early Z enable" size="1" start="16" type="bool"/>
174b8e80941Smrg    <field name="Z updates enable" size="1" start="15" type="bool"/>
175b8e80941Smrg    <field name="Depth-Test Function" size="3" start="12" type="Compare Function"/>
176b8e80941Smrg    <field name="Coverage Read Mode" size="1" start="11" type="uint"/>
177b8e80941Smrg    <!-- add values -->
178b8e80941Smrg    <field name="Coverage Pipe Select" size="1" start="8" type="bool"/>
179b8e80941Smrg    <field name="Rasteriser Oversample Mode" size="2" start="6" type="uint"/>
180b8e80941Smrg    <!-- add values -->
181b8e80941Smrg    <field name="Coverage Read Type" size="1" start="5" type="uint"/>
182b8e80941Smrg    <!-- add values -->
183b8e80941Smrg    <field name="Antialiased Points and Lines" size="1" start="4" type="bool"/>
184b8e80941Smrg    <field name="Enable Depth Offset" size="1" start="3" type="bool"/>
185b8e80941Smrg    <field name="Clockwise Primitives" size="1" start="2" type="bool"/>
186b8e80941Smrg    <field name="Enable Reverse Facing Primitive" size="1" start="1" type="bool"/>
187b8e80941Smrg    <field name="Enable Forward Facing Primitive" size="1" start="0" type="bool"/>
188b8e80941Smrg  </packet>
189b8e80941Smrg
190b8e80941Smrg  <packet name="Flat Shade Flags" code="97">
191b8e80941Smrg    <field name="Flat-shading Flags" size="32" start="0" type="uint"/>
192b8e80941Smrg  </packet>
193b8e80941Smrg
194b8e80941Smrg  <packet name="Point size" code="98">
195b8e80941Smrg    <field name="Point Size" size="32" start="0" type="float"/>
196b8e80941Smrg  </packet>
197b8e80941Smrg
198b8e80941Smrg  <packet name="Line width" code="99">
199b8e80941Smrg    <field name="Line width" size="32" start="0" type="float"/>
200b8e80941Smrg  </packet>
201b8e80941Smrg
202b8e80941Smrg  <packet name="RHT X boundary" code="100">
203b8e80941Smrg    <field name="RHT primitive X boundary" size="16" start="0" type="int"/>
204b8e80941Smrg  </packet>
205b8e80941Smrg
206b8e80941Smrg  <packet name="Depth Offset" code="101">
207b8e80941Smrg    <!-- these fields are both float-1-8-7 encoded (top 16 bits of a float32) -->
208b8e80941Smrg    <field name="Depth Offset Units" size="16" start="16" type="uint"/>
209b8e80941Smrg    <field name="Depth Offset Factor" size="16" start="0" type="uint"/>
210b8e80941Smrg  </packet>
211b8e80941Smrg
212b8e80941Smrg  <packet name="Clip Window" code="102">
213b8e80941Smrg    <field name="Clip Window Height in pixels" size="16" start="48" type="uint"/>
214b8e80941Smrg    <field name="Clip Window Width in pixels" size="16" start="32" type="uint"/>
215b8e80941Smrg    <field name="Clip Window Bottom Pixel Coordinate" size="16" start="16" type="uint"/>
216b8e80941Smrg    <field name="Clip Window Left Pixel Coordinate" size="16" start="0" type="uint"/>
217b8e80941Smrg  </packet>
218b8e80941Smrg
219b8e80941Smrg  <packet name="Viewport Offset" code="103">
220b8e80941Smrg    <field name="Viewport Centre Y-coordinate" size="16" start="16" type="s12.4"/>
221b8e80941Smrg    <field name="Viewport Centre X-coordinate" size="16" start="0" type="s12.4"/>
222b8e80941Smrg  </packet>
223b8e80941Smrg
224b8e80941Smrg  <packet name="Z min and max clipping planes" code="104">
225b8e80941Smrg    <field name="Maximum Zw" size="32" start="32" type="float"/>
226b8e80941Smrg    <field name="Minimum Zw" size="32" start="0" type="float"/>
227b8e80941Smrg  </packet>
228b8e80941Smrg
229b8e80941Smrg  <packet name="Clipper XY Scaling" code="105" cl="B">
230b8e80941Smrg    <field name="Viewport Half-Height in 1/16th of pixel" size="32" start="32" type="float"/>
231b8e80941Smrg    <field name="Viewport Half-Width in 1/16th of pixel" size="32" start="0" type="float"/>
232b8e80941Smrg  </packet>
233b8e80941Smrg
234b8e80941Smrg  <packet name="Clipper Z Scale and Offset" code="106" cl="B">
235b8e80941Smrg    <field name="Viewport Z Offset (Zc to Zs)" size="32" start="32" type="float"/>
236b8e80941Smrg    <field name="Viewport Z Scale (Zc to Zs)" size="32" start="0" type="float"/>
237b8e80941Smrg  </packet>
238b8e80941Smrg
239b8e80941Smrg  <packet name="Tile Binning Mode Configuration" code="112" cl="B">
240b8e80941Smrg    <field name="Double-buffer in non-ms mode" size="1" start="119" type="bool"/>
241b8e80941Smrg
242b8e80941Smrg    <field name="Tile Allocation Block Size" size="2" start="117" type="uint">
243b8e80941Smrg      <value name="block size 32" value="0"/>
244b8e80941Smrg      <value name="block size 64" value="1"/>
245b8e80941Smrg      <value name="block size 128" value="2"/>
246b8e80941Smrg      <value name="block size 256" value="3"/>
247b8e80941Smrg    </field>
248b8e80941Smrg
249b8e80941Smrg    <field name="Tile Allocation Initial Block Size" size="2" start="115" type="uint">
250b8e80941Smrg      <value name="block size 32" value="0"/>
251b8e80941Smrg      <value name="block size 64" value="1"/>
252b8e80941Smrg      <value name="block size 128" value="2"/>
253b8e80941Smrg      <value name="block size 256" value="3"/>
254b8e80941Smrg    </field>
255b8e80941Smrg
256b8e80941Smrg    <field name="Auto-initialise Tile State Data Array" size="1" start="114" type="bool"/>
257b8e80941Smrg    <field name="Tile Buffer 64-bit Color Depth" size="1" start="113" type="bool"/>
258b8e80941Smrg    <field name="Multisample Mode (4x)" size="1" start="112" type="bool"/>
259b8e80941Smrg
260b8e80941Smrg    <field name="Height (in tiles)" size="8" start="104" type="uint"/>
261b8e80941Smrg    <field name="Width (in tiles)" size="8" start="96" type="uint"/>
262b8e80941Smrg
263b8e80941Smrg    <field name="Tile State Data Array Address" size="32" start="64" type="uint"/>
264b8e80941Smrg    <field name="Tile Allocation memory size" size="32" start="32" type="uint"/>
265b8e80941Smrg    <field name="Tile Allocation memory address" size="32" start="0" type="uint"/>
266b8e80941Smrg
267b8e80941Smrg  </packet>
268b8e80941Smrg
269b8e80941Smrg  <packet name="Tile Rendering Mode Configuration" code="113" cl="R">
270b8e80941Smrg    <field name="Double-buffer in non-ms mode" size="1" start="76" type="bool"/>
271b8e80941Smrg    <field name="Early-Z/Early-Cov disable" size="1" start="75" type="bool"/>
272b8e80941Smrg    <field name="Early-Z Update Direction GT/GE" size="1" start="74" type="bool"/>
273b8e80941Smrg    <field name="Select Coverage Mode" size="1" start="73" type="bool"/>
274b8e80941Smrg    <field name="Enable VG Mask Buffer" size="1" start="72" type="bool"/>
275b8e80941Smrg    <field name="Memory Format" size="2" start="70" type="uint">
276b8e80941Smrg      <value name="Raster" value="0"/>
277b8e80941Smrg      <value name="T" value="1"/>
278b8e80941Smrg      <value name="LT" value="2"/>
279b8e80941Smrg    </field>
280b8e80941Smrg    <field name="Decimate Mode" size="2" start="68" type="uint"/>
281b8e80941Smrg
282b8e80941Smrg    <field name="Non-HDR Frame Buffer Color Format" size="2" start="66" type="uint">
283b8e80941Smrg      <value name="rendering config bgr565 dithered" value="0"/>
284b8e80941Smrg      <value name="rendering config rgba8888" value="1"/>
285b8e80941Smrg      <value name="rendering config bgr565 no dither" value="2"/>
286b8e80941Smrg    </field>
287b8e80941Smrg
288b8e80941Smrg    <field name="Tile Buffer 64-bit Color Depth" size="1" start="65" type="bool"/>
289b8e80941Smrg    <field name="Multisample Mode (4x)" size="1" start="64" type="bool"/>
290b8e80941Smrg    <field name="Height (pixels)" size="16" start="48" type="uint"/>
291b8e80941Smrg    <field name="Width (pixels)" size="16" start="32" type="uint"/>
292b8e80941Smrg    <field name="Memory Address" size="32" start="0" type="address"/>
293b8e80941Smrg  </packet>
294b8e80941Smrg
295b8e80941Smrg  <packet name="Tile Coordinates" code="115" cl="R">
296b8e80941Smrg    <field name="Tile Row Number" size="8" start="8" type="uint"/>
297b8e80941Smrg    <field name="Tile Column Number" size="8" start="0" type="uint"/>
298b8e80941Smrg  </packet>
299b8e80941Smrg
300b8e80941Smrg  <packet name="Gem Relocations" code="254" cl="B">
301b8e80941Smrg    <field name="buffer 1" size="32" start="32" type="uint"/>
302b8e80941Smrg    <field name="buffer 0" size="32" start="0" type="uint"/>
303b8e80941Smrg  </packet>
304b8e80941Smrg
305b8e80941Smrg  <struct name="Shader Record">
306b8e80941Smrg    <field name="Fragment Shader is single threaded" size="1" start="0" type="bool"/>
307b8e80941Smrg    <field name="Point Size included in shaded vertex data" size="1" start="1" type="bool"/>
308b8e80941Smrg    <field name="Enable Clipping" size="1" start="2" type="bool"/>
309b8e80941Smrg
310b8e80941Smrg    <field name="Fragment Shader Number of Uniforms (not used currently)" size="16" start="2b" type="uint"/>
311b8e80941Smrg    <field name="Fragment Shader Number of Varyings" size="8" start="3b" type="uint"/>
312b8e80941Smrg    <field name="Fragment Shader Code Address" size="32" start="4b" type="address"/>
313b8e80941Smrg    <!-- set up by the kernel -->
314b8e80941Smrg    <field name="Fragment Shader Uniforms Address" size="32" start="8b" type="uint"/>
315b8e80941Smrg
316b8e80941Smrg    <field name="Vertex Shader Number of Uniforms (not used currently)" size="16" start="12b" type="uint"/>
317b8e80941Smrg    <field name="Vertex Shader Attribute Array select bits" size="8" start="14b" type="uint"/>
318b8e80941Smrg    <field name="Vertex Shader Total Attributes Size" size="8" start="15b" type="uint"/>
319b8e80941Smrg    <field name="Vertex Shader Code Address" size="32" start="16b" type="address"/>
320b8e80941Smrg    <!-- set up by the kernel -->
321b8e80941Smrg    <field name="Vertex Shader Uniforms Address" size="32" start="16b" type="uint"/>
322b8e80941Smrg
323b8e80941Smrg    <field name="Coordinate Shader Number of Uniforms (not used currently)" size="16" start="24b" type="uint"/>
324b8e80941Smrg    <field name="Coordinate Shader Attribute Array select bits" size="8" start="26b" type="uint"/>
325b8e80941Smrg    <field name="Coordinate Shader Total Attributes Size" size="8" start="27b" type="uint"/>
326b8e80941Smrg    <field name="Coordinate Shader Code Address" size="32" start="28b" type="address"/>
327b8e80941Smrg    <!-- set up by the kernel -->
328b8e80941Smrg    <field name="Coordinate Shader Uniforms Address" size="32" start="32b" type="uint"/>
329b8e80941Smrg  </struct>
330b8e80941Smrg
331b8e80941Smrg  <struct name="Attribute Record">
332b8e80941Smrg    <field name="Address" size="32" start="0b" type="address"/>
333b8e80941Smrg    <field name="Number of Bytes minus 1" size="8" start="4b" type="uint"/>
334b8e80941Smrg    <field name="Stride" size="8" start="5b" type="uint"/>
335b8e80941Smrg    <field name="Vertex Shader VPM offset" size="8" start="6b" type="uint"/>
336b8e80941Smrg    <field name="Coordinate Shader VPM offset" size="8" start="7b" type="uint"/>
337b8e80941Smrg  </struct>
338b8e80941Smrg
339b8e80941Smrg</vcxml>
340