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