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