v3d: we always have at least one output segment
[mesa.git] / src / broadcom / cle / v3d_packet_v21.xml
index 1d5b5b7d0e4b40f917fa6e785d9dd118a9a56806..df838a7084579db19d0d498231c7056f2eaa79e1 100644 (file)
@@ -1,4 +1,26 @@
-<vcxml ver="2.1">
+<vcxml gen="2.1" min_ver="21" max_ver="21">
+
+  <enum name="Compare Function" prefix="V3D_COMPARE_FUNC">
+    <value name="NEVER" value="0"/>
+    <value name="LESS" value="1"/>
+    <value name="EQUAL" value="2"/>
+    <value name="LEQUAL" value="3"/>
+    <value name="GREATER" value="4"/>
+    <value name="NOTEQUAL" value="5"/>
+    <value name="GEQUAL" value="6"/>
+    <value name="ALWAYS" value="7"/>
+  </enum>
+
+  <enum name="Primitive" prefix="V3D_PRIM">
+    <value name="POINTS" value="0"/>
+    <value name="LINES" value="1"/>
+    <value name="LINE_LOOP" value="2"/>
+    <value name="LINE_STRIP" value="3"/>
+    <value name="TRIANGLES" value="4"/>
+    <value name="TRIANGLE_STRIP" value="5"/>
+    <value name="TRIANGLE_FAN" value="6"/>
+  </enum>
+
   <packet name="Halt" code="0"/>
   <packet name="NOP" code="1"/>
   <packet name="Flush" code="4" cl="B"/>
@@ -18,7 +40,7 @@
   <packet name="Store Multi-sample Resolved Tile Color Buffer and EOF" code="25" cl="R"/>
 
   <packet name="Store Full Resolution Tile Buffer" cl="R" code="26">
-    <field name="Address" size="32" start="0" type="address"/>
+    <field name="Address" size="28" start="4" type="address"/>
     <field name="Last Tile" size="1" start="3" type="bool"/>
     <field name="Disable Clear on Write" size="1" start="2" type="bool"/>
     <field name="Disable Z/Stencil Buffer write" size="1" start="1" type="bool"/>
   </packet>
 
   <packet name="Re-load Full Resolution Tile Buffer" cl="R" code="27">
-    <field name="Address" size="32" start="0" type="address"/>
+    <field name="Address" size="28" start="4" type="address"/>
     <field name="Disable Z/Stencil Buffer read" size="1" start="1" type="bool"/>
     <field name="Disable Color Buffer read" size="1" start="0" type="bool"/>
   </packet>
 
+  <packet name="Store Tile Buffer General" code="28" cl="R">
+    <field name="Memory base address of frame/tile dump buffer" size="28" start="20" type="address"/>
+    <field name="Last Tile of Frame" size="1" start="19" type="bool"/>
+    <field name="Disable VG-Mask buffer dump" size="1" start="18" type="bool"/>
+    <field name="Disable Z/Stencil buffer dump" size="1" start="17" type="bool"/>
+    <field name="Disable Color buffer dump" size="1" start="16" type="bool"/>
+    <field name="Disable VG-Mask buffer clear on store/dump" size="1" start="15" type="bool"/>
+    <field name="Disable Z/Stencil buffer clear on store/dump" size="1" start="14" type="bool"/>
+    <field name="Disable Color buffer clear on store/dump" size="1" start="13" type="bool"/>
+
+    <field name="Pixel Color Format" size="2" start="8" type="uint">
+      <value name="rgba8888" value="0"/>
+      <value name="bgr565 dithered" value="1"/>
+      <value name="bgr565 no dither" value="2"/>
+    </field>
+
+    <field name="Mode" size="2" start="6" type="uint">
+      <value name="Sample 0" value="0"/>
+      <value name="Decimate x4" value="1"/>
+      <value name="Decimate x16" value="2"/>
+    </field>
+
+    <field name="Format" size="2" start="4" type="uint">
+      <value name="Raster" value="0"/>
+      <value name="T" value="1"/>
+      <value name="LT" value="2"/>
+    </field>
+
+    <field name="Buffer to Store" size="3" start="0" type="uint">
+      <value name="None" value="0"/>
+      <value name="Color" value="1"/>
+      <value name="Z/stencil" value="2"/>
+      <value name="Z" value="3"/>
+      <value name="VG-Mask" value="4"/>
+    </field>
+  </packet>
+
+  <packet name="Load Tile Buffer General" code="29" cl="R">
+    <field name="Memory base address of frame/tile dump buffer" size="28" start="20" type="address"/>
+    <field name="Disable VG-Mask buffer load" size="1" start="18" type="bool"/>
+    <field name="Disable Z/Stencil buffer load" size="1" start="17" type="bool"/>
+    <field name="Disable Color buffer load" size="1" start="16" type="bool"/>
+
+    <field name="Pixel Color Format" size="2" start="8" type="uint">
+      <value name="rgba8888" value="0"/>
+      <value name="bgr565 dithered" value="1"/>
+      <value name="bgr565 no dither" value="2"/>
+    </field>
+
+    <field name="Mode" size="2" start="6" type="uint">
+      <value name="Sample 0" value="0"/>
+      <value name="Decimate x4" value="1"/>
+      <value name="Decimate x16" value="2"/>
+    </field>
+
+    <field name="Format" size="2" start="4" type="uint">
+      <value name="Raster" value="0"/>
+      <value name="T" value="1"/>
+      <value name="LT" value="2"/>
+    </field>
+
+    <field name="Buffer to Store" size="3" start="0" type="uint">
+      <value name="None" value="0"/>
+      <value name="Color" value="1"/>
+      <value name="Z/stencil" value="2"/>
+      <value name="Z" value="3"/>
+      <value name="VG-Mask" value="4"/>
+    </field>
+  </packet>
+
   <packet name="Indexed Primitive List" code="32">
     <field name="Maximum Index" size="32" start="72" type="uint"/>
     <field name="Address of Indices List" size="32" start="40" type="uint"/>
       <value name="8-bit" value="0"/>
       <value name="16-bit" value="1"/>
     </field>
-    <field name="Primitive mode" size="4" start="0" type="uint">
-      <value name="points" value="0"/>
-      <value name="lines" value="1"/>
-      <value name="line loop" value="2"/>
-      <value name="line strip" value="3"/>
-      <value name="triangles" value="4"/>
-      <value name="triangles strip" value="5"/>
-      <value name="triangles fan" value="6"/>
-    </field>
+    <field name="Primitive mode" size="4" start="0" type="Primitive"/>
   </packet>
 
   <packet name="Vertex Array Primitives" code="33">
     <field name="Index of First Vertex" size="32" start="40" type="uint"/>
     <field name="Length" size="32" start="8" type="uint"/>
-    <field name="Primitive mode" size="4" start="0" type="uint">
-      <value name="points" value="0"/>
-      <value name="lines" value="1"/>
-      <value name="line loop" value="2"/>
-      <value name="line strip" value="3"/>
-      <value name="triangles" value="4"/>
-      <value name="triangles strip" value="5"/>
-      <value name="triangles fan" value="6"/>
-    </field>
+    <field name="Primitive mode" size="4" start="0" type="Primitive"/>
   </packet>
 
   <packet name="Primitive List Format" cl="R" code="56">
     <field name="Early Z updates enable" size="1" start="17" type="bool"/>
     <field name="Early Z enable" size="1" start="16" type="bool"/>
     <field name="Z updates enable" size="1" start="15" type="bool"/>
-    <field name="Depth-Test Function" size="3" start="12" type="uint"/>
-    <!-- add values -->
+    <field name="Depth-Test Function" size="3" start="12" type="Compare Function"/>
     <field name="Coverage Read Mode" size="1" start="11" type="uint"/>
     <!-- add values -->
     <field name="Coverage Pipe Select" size="1" start="8" type="bool"/>
-    <field name="Rasteriser Oversample Mode" size="2" start="6" type="bool"/>
+    <field name="Rasteriser Oversample Mode" size="2" start="6" type="uint"/>
     <!-- add values -->
     <field name="Coverage Read Type" size="1" start="5" type="uint"/>
     <!-- add values -->
   </packet>
 
   <packet name="Viewport Offset" code="103">
-    <field name="Viewport Centre Y-coordinate" size="16" start="16" type="int"/>
-    <field name="Viewport Centre X-coordinate" size="16" start="0" type="int"/>
+    <field name="Viewport Centre Y-coordinate" size="16" start="16" type="s12.4"/>
+    <field name="Viewport Centre X-coordinate" size="16" start="0" type="s12.4"/>
   </packet>
 
   <packet name="Z min and max clipping planes" code="104">
 
   </packet>
 
+  <packet name="Tile Rendering Mode Configuration" code="113" cl="R">
+    <field name="Double-buffer in non-ms mode" size="1" start="76" type="bool"/>
+    <field name="Early-Z/Early-Cov disable" size="1" start="75" type="bool"/>
+    <field name="Early-Z Update Direction GT/GE" size="1" start="74" type="bool"/>
+    <field name="Select Coverage Mode" size="1" start="73" type="bool"/>
+    <field name="Enable VG Mask Buffer" size="1" start="72" type="bool"/>
+    <field name="Memory Format" size="2" start="70" type="uint">
+      <value name="Raster" value="0"/>
+      <value name="T" value="1"/>
+      <value name="LT" value="2"/>
+    </field>
+    <field name="Decimate Mode" size="2" start="68" type="uint"/>
+
+    <field name="Non-HDR Frame Buffer Color Format" size="2" start="66" type="uint">
+      <value name="rendering config bgr565 dithered" value="0"/>
+      <value name="rendering config rgba8888" value="1"/>
+      <value name="rendering config bgr565 no dither" value="2"/>
+    </field>
+
+    <field name="Tile Buffer 64-bit Color Depth" size="1" start="65" type="bool"/>
+    <field name="Multisample Mode (4x)" size="1" start="64" type="bool"/>
+    <field name="Height (pixels)" size="16" start="48" type="uint"/>
+    <field name="Width (pixels)" size="16" start="32" type="uint"/>
+    <field name="Memory Address" size="32" start="0" type="address"/>
+  </packet>
+
+  <packet name="Tile Coordinates" code="115" cl="R">
+    <field name="Tile Row Number" size="8" start="8" type="uint"/>
+    <field name="Tile Column Number" size="8" start="0" type="uint"/>
+  </packet>
+
+  <packet name="Gem Relocations" code="254" cl="B">
+    <field name="buffer 1" size="32" start="32" type="uint"/>
+    <field name="buffer 0" size="32" start="0" type="uint"/>
+  </packet>
+
   <struct name="Shader Record">
     <field name="Fragment Shader is single threaded" size="1" start="0" type="bool"/>
     <field name="Point Size included in shaded vertex data" size="1" start="1" type="bool"/>
     <field name="Coordinate Shader Uniforms Address" size="32" start="32b" type="uint"/>
   </struct>
 
+  <struct name="Attribute Record">
+    <field name="Address" size="32" start="0b" type="address"/>
+    <field name="Number of Bytes minus 1" size="8" start="4b" type="uint"/>
+    <field name="Stride" size="8" start="5b" type="uint"/>
+    <field name="Vertex Shader VPM offset" size="8" start="6b" type="uint"/>
+    <field name="Coordinate Shader VPM offset" size="8" start="7b" type="uint"/>
+  </struct>
+
 </vcxml>