Mesa (main): panfrost: Fix alignments on Valhall

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 3 16:00:42 UTC 2022


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

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Sun Jan  9 13:38:23 2022 -0500

panfrost: Fix alignments on Valhall

Otherwise we get DATA_INVALID_FAULT trying to run even trivial null jobs. For
each descriptor, set the correct alignment.

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

---

 src/panfrost/lib/genxml/v9.xml | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/panfrost/lib/genxml/v9.xml b/src/panfrost/lib/genxml/v9.xml
index 6918362d5fd..9d68b4c081a 100644
--- a/src/panfrost/lib/genxml/v9.xml
+++ b/src/panfrost/lib/genxml/v9.xml
@@ -551,7 +551,7 @@
     <field name="PC" size="28" start="1:4" type="uint" modifier="shr(4)"/>
   </struct>
 
-  <struct name="Internal Conversion" size="1">
+  <struct name="Internal Conversion" size="1" align="4">
     <field name="Memory Format" size="22" start="0" type="Pixel Format"/>
     <field name="Raw" size="1" start="22" type="bool"/>
     <field name="Register Format" size="3" start="24" type="Register File Format"/>
@@ -565,7 +565,7 @@
     <field name="Conversion" size="32" start="1:0" type="Internal Conversion"/>
   </struct>
 
-  <struct name="Internal Blend">
+  <struct name="Internal Blend" align="8">
     <field name="Mode" size="2" start="0:0" type="Blend Mode"/>
     <field name="Shader" size="64" start="0:0" type="Blend Shader"/>
     <field name="Fixed-Function" size="64" start="0:0" type="Blend Fixed-Function"/>
@@ -877,7 +877,7 @@
     <value name="Early ZS always" value="3"/>
   </enum>
 
-  <struct name="Framebuffer Parameters">
+  <struct name="Framebuffer Parameters" align="64">
     <field name="Pre Frame 0" size="3" start="0:0" type="Pre Post Frame Shader Mode"/>
     <field name="Pre Frame 1" size="3" start="0:3" type="Pre Post Frame Shader Mode"/>
     <field name="Post Frame" size="3" start="0:6" type="Pre Post Frame Shader Mode"/>
@@ -1020,7 +1020,7 @@
     <field name="Clear" size="128" start="12:0" type="RT Clear"/>
   </struct>
 
-  <struct name="Tiler Heap" align="64">
+  <struct name="Tiler Heap" align="32">
     <field name="Unknown" size="32" start="0:0" type="hex" default="0x329"/>
     <field name="Size" size="32" start="1:0" type="uint" modifier="align(4096)"/>
     <field name="Base" size="64" start="2:0" type="address"/>
@@ -1078,7 +1078,7 @@
     <section name="Padding" offset="64" type="Framebuffer Padding"/>
   </aggregate>
 
-  <struct name="Job Header" align="64">
+  <struct name="Job Header" align="128">
     <field name="Exception Status" size="32" start="0:0" type="uint"/>
     <field name="First Incomplete Task" size="32" start="1:0" type="uint"/>
     <field name="Fault Pointer" size="64" start="2:0" type="address"/>
@@ -1106,7 +1106,7 @@
     <field name="Tile Enable Map Row Stride" size="8" start="6:0" type="uint"/>
   </struct>
 
-  <aggregate name="Fragment Job" align="64">
+  <aggregate name="Fragment Job" align="128">
     <section name="Header" offset="0" type="Job Header"/>
     <section name="Payload" offset="32" type="Fragment Job Payload"/>
   </aggregate>
@@ -1139,17 +1139,17 @@
     <field name="L2 Invalidate" size="1" start="1:1" type="bool"/>
   </struct>
 
-  <aggregate name="Write Value Job" align="64">
+  <aggregate name="Write Value Job" align="128">
     <section name="Header" offset="0" type="Job Header"/>
     <section name="Payload" offset="32" type="Write Value Job Payload"/>
   </aggregate>
 
-  <aggregate name="Cache Flush Job" align="64">
+  <aggregate name="Cache Flush Job" align="128">
     <section name="Header" offset="0" type="Job Header"/>
     <section name="Payload" offset="32" type="Cache Flush Job Payload"/>
   </aggregate>
 
-  <struct name="Shader" size="16">
+  <struct name="Shader" size="16" align="64">
     <field name="FAU count" start="1:0" size="32" type="uint"/>
     <field name="Resources" start="8:0" size="64" type="address"/>
     <field name="Shader" start="10:0" size="64" type="address"/>
@@ -1178,7 +1178,7 @@
   </struct>
 
   <!-- Compute job also covers vertex and geometry operations -->
-  <aggregate name="Compute Job" align="64">
+  <aggregate name="Compute Job" align="128">
     <section name="Header" offset="0" type="Job Header"/>
     <section name="Payload" offset="32" type="Compute Payload"/>
   </aggregate>
@@ -1271,7 +1271,7 @@
     <field name="Address" size="64" start="0:0" type="address"/>
   </struct>
 
-  <aggregate name="IDVS Helper Job" size="384" align="64">
+  <aggregate name="IDVS Helper Job" size="384" align="128">
     <section name="Header" offset="0" type="Job Header"/>
     <section name="Primitive" offset="32" type="Primitive"/>
     <section name="Counts" offset="48" type="IDVS Counts"/>



More information about the mesa-commit mailing list