Mesa (main): intel/genxml: Add XY_BLOCK_COPY_BLT on Tigerlake and later.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Oct 28 21:34:29 UTC 2021


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Aug 28 16:12:17 2020 -0700

intel/genxml: Add XY_BLOCK_COPY_BLT on Tigerlake and later.

This is a new blitter command introduced on Tigerlake and expanded
substantially on XeHP.  XY_BLOCK_COPY_BLT is actually fast, unlike
the legacy blitter commands.  iris will use this in the future, and
anv hopefully could use it for a transfer queue someday as well.

Reviewed-by: Sagar Ghuge <sagar.ghuge at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13520>

---

 src/intel/genxml/gen12.xml  |  31 ++++++++++++++
 src/intel/genxml/gen125.xml | 100 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 131 insertions(+)

diff --git a/src/intel/genxml/gen12.xml b/src/intel/genxml/gen12.xml
index 97a4e191927..76d71007b65 100644
--- a/src/intel/genxml/gen12.xml
+++ b/src/intel/genxml/gen12.xml
@@ -7061,6 +7061,37 @@
     <field name="MFX Pipeline Command Flush" start="51" end="51" type="bool"/>
   </instruction>
 
+  <instruction name="XY_BLOCK_COPY_BLT" bias="2" length="12" engine="blitter">
+    <field name="DWord Length" start="0" end="7" type="uint" default="10"/>
+    <field name="Color Depth" start="19" end="21" type="uint"/>
+    <field name="Opcode" start="22" end="28" type="uint" default="0x41"/>
+    <field name="Client" start="29" end="31" type="uint" default="2"/>
+    <field name="Destination Pitch" start="32" end="49" type="uint"/>
+    <field name="Destination MOCS" start="53" end="59" type="uint" nonzero="true"/>
+    <field name="Destination Tiling" start="62" end="63" type="int" prefix="XY_TILE">
+      <value name="LINEAR" value="0"/>
+      <value name="Y" value="1"/>
+    </field>
+    <field name="Destination X1" start="64" end="79" type="int"/>
+    <field name="Destination Y1" start="80" end="95" type="int"/>
+    <field name="Destination X2" start="96" end="111" type="int"/>
+    <field name="Destination Y2" start="112" end="127" type="int"/>
+    <field name="Destination Base Address" start="128" end="191" type="address"/>
+    <field name="Destination X Offset" start="192" end="205" type="uint"/>
+    <field name="Destination Y Offset" start="208" end="221" type="uint"/>
+    <field name="Source X1" start="224" end="239" type="int"/>
+    <field name="Source Y1" start="240" end="255" type="int"/>
+    <field name="Source Pitch" start="256" end="273" type="uint"/>
+    <field name="Source MOCS" start="277" end="283" type="uint" nonzero="true"/>
+    <field name="Source Tiling" start="286" end="287" type="uint" prefix="XY_TILE">
+      <value name="LINEAR" value="0"/>
+      <value name="Y" value="1"/>
+    </field>
+    <field name="Source Base Address" start="288" end="351" type="address"/>
+    <field name="Source X Offset" start="352" end="365" type="uint"/>
+    <field name="Source Y Offset" start="368" end="381" type="uint"/>
+  </instruction>
+
   <register name="3D_CHICKEN3" length="1" num="0x2090">
      <field name="AA Line Quality Fix" start="5" end="5" type="bool"/>
      <field name="AA Line Quality Fix Mask" start="21" end="21" type="bool"/>
diff --git a/src/intel/genxml/gen125.xml b/src/intel/genxml/gen125.xml
index bece8f0562a..4b91426f5b2 100644
--- a/src/intel/genxml/gen125.xml
+++ b/src/intel/genxml/gen125.xml
@@ -7044,6 +7044,106 @@
     <field name="MFX Pipeline Command Flush" start="51" end="51" type="bool"/>
   </instruction>
 
+  <instruction name="XY_BLOCK_COPY_BLT" bias="2" length="22" engine="blitter">
+    <field name="DWord Length" start="0" end="7" type="uint" default="20"/>
+    <field name="Special Mode of Operation" start="12" end="13" type="uint">
+      <value name="NONE" value="0"/>
+      <value name="FULL_RESOLVE" value="1"/>
+      <value name="PARTIAL_RESOLVE" value="2"/>
+    </field>
+    <field name="Color Depth" start="19" end="21" type="uint"/>
+    <field name="Opcode" start="22" end="28" type="uint" default="0x41"/>
+    <field name="Client" start="29" end="31" type="uint" default="2"/>
+    <field name="Destination Pitch" start="32" end="49" type="uint"/>
+    <field name="Destination Auxiliary Surface Mode" start="50" end="52" type="uint" prefix="XY_AUX">
+      <value name="NONE" value="0"/>
+      <value name="CCS_E" value="5"/>
+    </field>
+    <field name="Destination MOCS" start="53" end="59" type="uint" nonzero="true"/>
+    <field name="Destination Control Surface Type" start="60" end="60" type="uint"/>
+    <field name="Destination Compression Enable" start="61" end="61" type="bool"/>
+    <field name="Destination Tiling" start="62" end="63" type="int" prefix="XY_TILE">
+      <value name="LINEAR" value="0"/>
+      <value name="X" value="1"/>
+      <value name="4" value="2"/>
+      <value name="64" value="3"/>
+    </field>
+    <field name="Destination X1" start="64" end="79" type="int"/>
+    <field name="Destination Y1" start="80" end="95" type="int"/>
+    <field name="Destination X2" start="96" end="111" type="int"/>
+    <field name="Destination Y2" start="112" end="127" type="int"/>
+    <field name="Destination Base Address" start="128" end="191" type="address"/>
+    <field name="Destination X Offset" start="192" end="205" type="uint"/>
+    <field name="Destination Y Offset" start="208" end="221" type="uint"/>
+    <field name="Destination Target Memory" start="223" end="223" type="uint" prefix="XY_MEM">
+      <value name="LOCAL" value="0"/>
+      <value name="SYSTEM" value="1"/>
+    </field>
+    <field name="Source X1" start="224" end="239" type="int"/>
+    <field name="Source Y1" start="240" end="255" type="int"/>
+    <field name="Source Pitch" start="256" end="273" type="uint"/>
+    <field name="Source Auxiliary Surface Mode" start="274" end="276" type="uint" prefix="XY">
+      <value name="NONE" value="0"/>
+      <value name="CCS_E" value="5"/>
+    </field>
+    <field name="Source MOCS" start="277" end="283" type="uint" nonzero="true"/>
+    <field name="Source Control Surface Type" start="284" end="284" type="uint"/>
+    <field name="Source Compression Enable" start="285" end="285" type="bool"/>
+    <field name="Source Tiling" start="286" end="287" type="uint" prefix="XY_TILE">
+      <value name="LINEAR" value="0"/>
+      <value name="X" value="1"/>
+      <value name="4" value="2"/>
+      <value name="64" value="3"/>
+    </field>
+    <field name="Source Base Address" start="288" end="351" type="address"/>
+    <field name="Source X Offset" start="352" end="365" type="uint"/>
+    <field name="Source Y Offset" start="368" end="381" type="uint"/>
+    <field name="Source Target Memory" start="383" end="383" type="uint" prefix="XY_MEM">
+      <value name="LOCAL" value="0"/>
+      <value name="SYSTEM" value="1"/>
+    </field>
+    <field name="Source Compression Format" start="384" end="388" type="uint"/>
+    <field name="Source Clear Value Enable" start="389" end="389" type="bool"/>
+    <field name="Source Clear Address" start="390" end="431" type="address"/>
+    <field name="Destination Compression Format" start="448" end="452" type="uint"/>
+    <field name="Destination Clear Value Enable" start="453" end="453" type="bool"/>
+    <field name="Destination Clear Address" start="454" end="495" type="address"/>
+    <field name="Destination Surface Height" start="512" end="525" type="uint"/>
+    <field name="Destination Surface Width" start="526" end="539" type="uint"/>
+    <field name="Destination Surface Type" start="541" end="543" type="uint" prefix="XY_SURFTYPE">
+      <value name="1D" value="0"/>
+      <value name="2D" value="1"/>
+      <value name="3D" value="2"/>
+      <value name="CUBE" value="3"/>
+    </field>
+    <field name="Destination LOD" start="544" end="547" type="uint"/>
+    <field name="Destination Surface QPitch" start="548" end="562" type="uint"/>
+    <field name="Destination Surface Depth" start="565" end="575" type="uint"/>
+    <field name="Destination Horizontal Align" start="576" end="577" type="uint"/>
+    <field name="Destination Vertical Align" start="579" end="580" type="uint"/>
+    <field name="Destination Mip Tail Start LOD" start="584" end="587" type="uint"/>
+    <field name="Destination Depth/Stencil Resource" start="594" end="594" type="bool"/>
+    <field name="Destination Array Index" start="597" end="607" type="uint"/>
+
+    <field name="Source Surface Height" start="608" end="621" type="uint"/>
+    <field name="Source Surface Width" start="622" end="635" type="uint"/>
+    <field name="Source Surface Type" start="637" end="639" type="uint" prefix="XY_SURFTYPE">
+      <value name="1D" value="0"/>
+      <value name="2D" value="1"/>
+      <value name="3D" value="2"/>
+      <value name="CUBE" value="3"/>
+    </field>
+    <field name="Source LOD" start="640" end="643" type="uint"/>
+    <field name="Source Surface QPitch" start="644" end="658" type="uint"/>
+    <field name="Source Surface Depth" start="661" end="671" type="uint"/>
+    <field name="Source Horizontal Align" start="672" end="673" type="uint"/>
+    <field name="Source Vertical Align" start="675" end="676" type="uint"/>
+    <field name="Source Mip Tail Start LOD" start="680" end="683" type="uint"/>
+    <field name="Source Depth/Stencil Resource" start="690" end="690" type="bool"/>
+    <field name="Source Array Index" start="693" end="703" type="uint"/>
+
+  </instruction>
+
   <register name="BCS_INSTDONE" length="1" num="0x2206c">
     <field name="Ring Enable" start="0" end="0" type="bool"/>
     <field name="Blitter IDLE" start="1" end="1" type="bool" default="1"/>



More information about the mesa-commit mailing list