Mesa (main): panfrost: Add remaining ZS/CRC XML
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Feb 3 16:00:42 UTC 2022
Module: Mesa
Branch: main
Commit: 3bf34a14940305b56401147dd11d06ef53330cac
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3bf34a14940305b56401147dd11d06ef53330cac
Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date: Wed Feb 2 17:15:10 2022 -0500
panfrost: Add remaining ZS/CRC XML
Flesh out the ZS/CRC XML, adding fields required for AFBC. Valhall allows AFBC
compressing stencil buffers independent of depth buffers, which is a new feature
since Bifrost. That results in a shuffling of the descriptor.
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 | 58 +++++++++++++++++-------------------------
1 file changed, 23 insertions(+), 35 deletions(-)
diff --git a/src/panfrost/lib/genxml/v9.xml b/src/panfrost/lib/genxml/v9.xml
index 5f0bd46bbd1..9922a06c61d 100644
--- a/src/panfrost/lib/genxml/v9.xml
+++ b/src/panfrost/lib/genxml/v9.xml
@@ -963,11 +963,7 @@
<value name="D24" value="2"/>
<value name="D24X8" value="4"/>
<value name="D24S8" value="5"/>
- <value name="X8D24" value="6"/>
- <value name="S8D24" value="7"/>
- <value name="D32_X8X24" value="13"/>
<value name="D32" value="14"/>
- <value name="D32_S8X24" value="15"/>
</enum>
<enum name="ZS Preload Format">
@@ -976,11 +972,7 @@
<enum name="S Format">
<value name="S8" value="1"/>
- <value name="S8X8" value="2"/>
- <value name="S8X24" value="3"/>
<value name="X24S8" value="4"/>
- <value name="X8S8" value="5"/>
- <value name="X32_S8X24" value="6"/>
</enum>
<enum name="Tie-Break Rule">
@@ -1066,36 +1058,32 @@
</struct>
<struct name="ZS CRC Extension" align="64" size="16">
- <field name="Word 0" size="32" start="0:0" type="hex"/>
+ <field name="ZS Write Format" size="4" start="0:0" type="ZS Format"/>
+ <field name="ZS Block Format" size="4" start="0:4" type="Block Format"/>
+ <field name="ZS MSAA" size="2" start="0:8" default="Single" type="MSAA"/>
+ <field name="CRC Render Target" size="4" start="0:13" type="uint"/>
+ <field name="S Write Format" size="4" start="0:16" type="S Format"/>
+ <field name="S Block Format" size="4" start="0:20" type="Block Format"/>
+ <field name="S MSAA" size="2" start="0:24" default="Single" type="MSAA"/>
+
+ <field name="AFBC Reverse Issue Order" size="1" start="0:30" type="bool"/>
+ <!-- Note: Must be set if AFBC is enabled and effective_tile_size is not 16x16 -->
+ <field name="ZS Clean Pixel Write Enable" size="1" start="0:31" type="bool"/>
+
<field name="CRC Row Stride" size="32" start="1:0" type="uint"/>
<field name="CRC Clear Color" size="64" start="2:0" type="hex"/>
<field name="CRC Base" size="64" start="4:0" type="address"/>
- <field name="Word 6" size="64" start="6:0" type="hex"/>
- <field name="Word 8" size="64" start="8:0" type="hex"/>
- <field name="Word 10" size="64" start="10:0" type="hex"/>
- <field name="Word 12" size="64" start="12:0" type="hex"/>
- <field name="Word 14" size="64" start="14:0" type="hex"/>
-
- <!-- TODO: everything below this, Arm shuffled this descriptor -->
- <!--
- <field name="ZS Write Format" size="4" start="3:0" type="ZS Format"/>
- <field name="ZS Block Format" size="4" start="3:4" type="Block Format"/>
- <field name="ZS MSAA" size="2" start="3:8" default="Single" type="MSAA"/>
- <field name="ZS Clean Pixel Write Enable" size="1" start="3:10" type="bool"/>
- <field name="CRC Render Target" size="4" start="3:11" type="uint"/>
- <field name="S Write Format" size="4" start="3:16" type="S Format"/>
- <field name="S Block Format" size="4" start="3:20" type="Block Format"/>
- <field name="S MSAA" size="2" start="3:24" default="Single" type="MSAA"/>
- <field name="ZS Writeback Base" size="64" start="4:0" type="address"/>
- <field name="ZS Writeback Row Stride" size="32" start="6:0" type="uint"/>
- <field name="ZS Writeback Surface Stride" size="32" start="7:0" type="uint"/>
- <field name="S Writeback Base" size="64" start="8:0" type="address"/>
- <field name="S Writeback Row Stride" size="32" start="10:0" type="uint"/>
- <field name="S Writeback Surface Stride" size="32" start="11:0" type="uint"/>
- <field name="ZS AFBC Header" size="64" start="4:0" type="address"/>
- <field name="ZS AFBC Row Stride" size="13" start="6:0" type="uint"/>
- <field name="ZS AFBC Body" size="64" start="8:0" type="address"/>
- -->
+
+ <field name="ZS Writeback Base" size="64" start="8:0" type="address"/>
+ <!-- Header clumps per row (different than Bifrost's AFBC line stride) -->
+ <field name="ZS Writeback Row Stride" size="32" start="10:0" type="uint"/>
+ <field name="ZS Writeback Surface Stride" size="32" start="11:0" type="uint"/>
+ <field name="ZS AFBC Body Offset" size="32" start="11:0" type="uint"/>
+
+ <field name="S Writeback Base" size="64" start="12:0" type="address"/>
+ <field name="S Writeback Row Stride" size="32" start="14:0" type="uint"/>
+ <field name="S Writeback Surface Stride" size="32" start="15:0" type="uint"/>
+ <field name="S AFBC Body Offset" size="32" start="15:0" type="uint"/>
</struct>
<enum name="YUV Conv K6">
More information about the mesa-commit
mailing list