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