panfrost: Add XML for attribute buffers
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Thu, 13 Aug 2020 18:44:11 +0000 (14:44 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 17 Aug 2020 11:43:52 +0000 (11:43 +0000)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

src/panfrost/lib/midgard.xml

index a5290b3c6caa113a472d6989325489ee7a0fb643..30a6423063c24f9eecadcf30f674e42274a28e6c 100644 (file)
@@ -1,5 +1,21 @@
 <panxml>
 
 <panxml>
 
+  <enum name="Attribute Type">
+    <value name="1D" value="1"/>
+    <value name="1D POT Divisor" value="2"/>
+    <value name="1D Modulus" value="3"/>
+    <value name="1D NPOT Divisor" value="4"/>
+    <value name="Continuation" value="32"/>
+  </enum>
+
+  <enum name="Attribute Special">
+    <value name="Vertex ID" value="34"/>
+    <value name="Instance ID" value="36"/>
+    <value name="Frag Coord" value="37"/>
+    <value name="Front Facing" value="38"/>
+    <value name="Point Coord" value="97"/>
+  </enum>
+
   <enum name="Channel">
     <value name="R" value="0"/>
     <value name="G" value="1"/>
   <enum name="Channel">
     <value name="R" value="0"/>
     <value name="G" value="1"/>
     <field name="Offset" size="32" start="32" type="int"/>
   </struct>
 
     <field name="Offset" size="32" start="32" type="int"/>
   </struct>
 
+  <struct name="Attribute Buffer">
+    <field name="Special" size="8" start="0" type="Attribute Special"/>
+    <field name="Type" size="6" start="0" type="Attribute Type" default="1D"/>
+    <field name="Pointer" size="50" start="6" type="address" modifier="shr(6)"/>
+    <field name="Stride" size="32" start="64" type="uint"/>
+    <field name="Size" size="32" start="96" type="uint"/>
+
+    <field name="Divisor R" size="5" start="56" type="uint"/>
+    <field name="Divisor P" size="3" start="61" type="uint"/>
+    <field name="Divisor E" size="1" start="61" type="uint"/>
+  </struct>
+
+  <struct name="Attribute Buffer Continuation NPOT">
+    <field name="Type" size="6" start="0:0" type="Attribute Type" default="Continuation"/>
+    <field name="Divisor Numerator" size="32" start="1:0" type="uint"/>
+    <field name="Divisor" size="32" start="3:0" type="uint"/>
+  </struct>
+
   <struct name="Midgard Sampler">
     <field name="Magnify Nearest" size="1" start="0" type="bool" default="true"/>
     <field name="Minify Nearest" size="1" start="1" type="bool" default="true"/>
   <struct name="Midgard Sampler">
     <field name="Magnify Nearest" size="1" start="0" type="bool" default="true"/>
     <field name="Minify Nearest" size="1" start="1" type="bool" default="true"/>