asahi: Identify Dimension for Render Target
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sun, 23 Oct 2022 16:20:52 +0000 (12:20 -0400)
committerMarge Bot <emma+marge@anholt.net>
Sat, 19 Nov 2022 04:27:10 +0000 (04:27 +0000)
Metal uses when rendering to multisampled 2D.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19811>

src/asahi/lib/cmdbuf.xml

index 0b07f3a..7f5db1d 100644 (file)
     <field name="Base coefficient register" size="8" start="16" type="uint"/>
   </struct>
 
+  <enum name="Texture dimension">
+    <value name="1D" value="0"/>
+    <value name="1D Array" value="1"/>
+    <value name="2D" value="2"/>
+    <value name="2D Array" value="3"/>
+    <value name="2D Multisampled" value="4"/>
+    <value name="3D" value="5"/>
+    <value name="Cube" value="6"/>
+    <value name="Cube Array" value="7"/>
+    <value name="2D Array Multisampled" value="8"/>
+  </enum>
+
   <struct name="Render Target" size="24">
-    <field name="Unknown" size="4" start="0" type="hex" default="0x2"/>
+    <!-- 2D or 2D Multisampled, no layering -->
+    <field name="Dimension" size="4" start="0" type="Texture dimension" default="2D"/>
     <field name="Layout" size="2" start="4" type="Layout"/>
     <field name="Channels" size="7" start="6" type="Channels"/>
     <field name="Type" size="3" start="13" type="Texture Type"/>
     <field name="Acceleration buffer" size="64" start="128" type="address"/>
   </struct>
 
-  <enum name="Texture dimension">
-    <value name="1D" value="0"/>
-    <value name="1D Array" value="1"/>
-    <value name="2D" value="2"/>
-    <value name="2D Array" value="3"/>
-    <value name="2D Multisampled" value="4"/>
-    <value name="3D" value="5"/>
-    <value name="Cube" value="6"/>
-    <value name="Cube Array" value="7"/>
-    <value name="2D Array Multisampled" value="8"/>
-  </enum>
-
   <enum name="Sample Count">
     <value name="2" value="0"/>
     <value name="4" value="1"/>