Mesa (main): panfrost: Flesh out compute jobs

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Feb 16 22:24:22 UTC 2022


Module: Mesa
Branch: main
Commit: 1ca2358d6b4de7c432ee873ba5674ba70eacf3e3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ca2358d6b4de7c432ee873ba5674ba70eacf3e3

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Wed Feb  2 19:39:23 2022 -0500

panfrost: Flesh out compute jobs

Valhall has a new twist on Mali's task splitting voodoo, plus compute offset
support.

On Bifrost + Vulkan, compute offsets needed lowering on Bifrost (gl_GlobalID).
Valhall saves a few instructions here.

Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15047>

---

 src/panfrost/lib/genxml/v9.xml | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/panfrost/lib/genxml/v9.xml b/src/panfrost/lib/genxml/v9.xml
index 02f6fc868e6..5a93e32b5d1 100644
--- a/src/panfrost/lib/genxml/v9.xml
+++ b/src/panfrost/lib/genxml/v9.xml
@@ -413,6 +413,12 @@
     <value name="Mirrored Clamp to Border" value="15"/>
   </enum>
 
+  <enum name="Task Axis">
+    <value name="X" value="0"/>
+    <value name="Y" value="1"/>
+    <value name="Z" value="2"/>
+  </enum>
+
   <enum name="Attribute Frequency">
     <value name="Vertex" value="0"/>
     <value name="Instance" value="1"/>
@@ -1272,15 +1278,15 @@
     <field name="Workgroup size X" start="0:0" size="10" type="uint" modifier="minus(1)"/>
     <field name="Workgroup size Y" start="0:10" size="10" type="uint" modifier="minus(1)"/>
     <field name="Workgroup size Z" start="0:20" size="10" type="uint" modifier="minus(1)"/>
-    <field name="Unk 0" start="0:30" size="2" type="uint"/>
-    <field name="Unk 1" start="1:0" size="32" type="hex"/> <!-- 0x8001 -->
+    <field name="Allow merging workgroups" start="0:31" size="1" type="bool"/>
+    <field name="Task increment" start="1:0" size="14" type="uint" default="1"/>
+    <field name="Task axis" start="1:14" size="2" type="Task Axis"/>
     <field name="Workgroup count X" start="2:0" size="32" type="uint"/>
     <field name="Workgroup count Y" start="3:0" size="32" type="uint"/>
     <field name="Workgroup count Z" start="4:0" size="32" type="uint"/>
-    <!-- TODO: Missing/unknown from Bifrost v7:
-      Thread group split
-      Job Task Split
-    -->
+    <field name="Offset X" start="5:0" size="32" type="uint"/>
+    <field name="Offset Y" start="6:0" size="32" type="uint"/>
+    <field name="Offset Z" start="7:0" size="32" type="uint"/>
     <field name="Compute" start="8:0" size="512" type="Shader Environment"/>
   </struct>
 



More information about the mesa-commit mailing list