1<vcxml gen="2.1" min_ver="21" max_ver="21"> 2 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"/> 12 </enum> 13 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"/> 22 </enum> 23 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"/> 33 </packet> 34 <packet name="Branch to sub-list" code="17"> 35 <field name="Address" size="32" start="0" type="address"/> 36 </packet> 37 <packet name="Return from sub-list" code="18"/> 38 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"/> 41 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"/> 48 </packet> 49 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"/> 54 </packet> 55 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"/> 65 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"/> 70 </field> 71 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"/> 76 </field> 77 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"/> 82 </field> 83 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"/> 90 </field> 91 </packet> 92 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"/> 98 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"/> 103 </field> 104 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"/> 109 </field> 110 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"/> 115 </field> 116 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"/> 123 </field> 124 </packet> 125 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"/> 133 </field> 134 <field name="Primitive mode" size="4" start="0" type="Primitive"/> 135 </packet> 136 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"/> 141 </packet> 142 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"/> 147 </field> 148 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"/> 154 </field> 155 </packet> 156 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"/> 162 </packet> 163 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"/> 169 </packet> 170 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"/> 177 <!-- add values --> 178 <field name="Coverage Pipe Select" size="1" start="8" type="bool"/> 179 <field name="Rasteriser Oversample Mode" size="2" start="6" type="uint"/> 180 <!-- add values --> 181 <field name="Coverage Read Type" size="1" start="5" type="uint"/> 182 <!-- add values --> 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"/> 188 </packet> 189 190 <packet name="Flat Shade Flags" code="97"> 191 <field name="Flat-shading Flags" size="32" start="0" type="uint"/> 192 </packet> 193 194 <packet name="Point size" code="98"> 195 <field name="Point Size" size="32" start="0" type="float"/> 196 </packet> 197 198 <packet name="Line width" code="99"> 199 <field name="Line width" size="32" start="0" type="float"/> 200 </packet> 201 202 <packet name="RHT X boundary" code="100"> 203 <field name="RHT primitive X boundary" size="16" start="0" type="int"/> 204 </packet> 205 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"/> 210 </packet> 211 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"/> 217 </packet> 218 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"/> 222 </packet> 223 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"/> 227 </packet> 228 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"/> 232 </packet> 233 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"/> 237 </packet> 238 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"/> 241 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"/> 247 </field> 248 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"/> 254 </field> 255 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"/> 259 260 <field name="Height (in tiles)" size="8" start="104" type="uint"/> 261 <field name="Width (in tiles)" size="8" start="96" type="uint"/> 262 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"/> 266 267 </packet> 268 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"/> 279 </field> 280 <field name="Decimate Mode" size="2" start="68" type="uint"/> 281 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"/> 286 </field> 287 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"/> 293 </packet> 294 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"/> 298 </packet> 299 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"/> 303 </packet> 304 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"/> 309 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"/> 315 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"/> 322 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"/> 329 </struct> 330 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"/> 337 </struct> 338 339</vcxml> 340