intel/genxml: Update XY_BLOCK_COPY_BLT

Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29264>
This commit is contained in:
Rohan Garg 2023-08-08 15:12:22 +02:00 committed by Marge Bot
parent 26e78f83bb
commit 569a037fb1
2 changed files with 120 additions and 1 deletions

View file

@ -1907,6 +1907,7 @@ xy_bcb_surf_depth(const struct isl_surf *surf)
: surf->logical_level0_px.array_len;
}
#if GFX_VER < 20
static uint32_t
xy_aux_mode(const struct blorp_surface_info *info)
{
@ -1921,7 +1922,8 @@ xy_aux_mode(const struct blorp_surface_info *info)
unreachable("Unsupported aux mode");
}
}
#endif
#endif // GFX_VER < 20
#endif // GFX_VERx10 >= 125
UNUSED static void
blorp_xy_block_copy_blt(struct blorp_batch *batch,
@ -2010,15 +2012,19 @@ blorp_xy_block_copy_blt(struct blorp_batch *batch,
blt.DestinationMipTailStartLOD = dst_surf->miptail_start_level;
blt.DestinationHorizontalAlign = isl_encode_halign(dst_align.width);
blt.DestinationVerticalAlign = isl_encode_valign(dst_align.height);
#if GFX_VER < 20
/* XY_BLOCK_COPY_BLT only supports AUX_CCS. */
blt.DestinationDepthStencilResource =
params->dst.aux_usage == ISL_AUX_USAGE_STC_CCS;
#endif
blt.DestinationTargetMemory =
params->dst.addr.local_hint ? XY_MEM_LOCAL : XY_MEM_SYSTEM;
if (params->dst.aux_usage != ISL_AUX_USAGE_NONE) {
#if GFX_VER < 20
blt.DestinationAuxiliarySurfaceMode = xy_aux_mode(&params->dst);
blt.DestinationCompressionEnable = true;
#endif
blt.DestinationCompressionFormat =
isl_get_render_compression_format(dst_surf->format);
blt.DestinationClearValueEnable = !!params->dst.clear_color_addr.buffer;
@ -2047,15 +2053,19 @@ blorp_xy_block_copy_blt(struct blorp_batch *batch,
blt.SourceMipTailStartLOD = src_surf->miptail_start_level;
blt.SourceHorizontalAlign = isl_encode_halign(src_align.width);
blt.SourceVerticalAlign = isl_encode_valign(src_align.height);
#if GFX_VER < 20
/* XY_BLOCK_COPY_BLT only supports AUX_CCS. */
blt.SourceDepthStencilResource =
params->src.aux_usage == ISL_AUX_USAGE_STC_CCS;
#endif
blt.SourceTargetMemory =
params->src.addr.local_hint ? XY_MEM_LOCAL : XY_MEM_SYSTEM;
if (params->src.aux_usage != ISL_AUX_USAGE_NONE) {
#if GFX_VER < 20
blt.SourceAuxiliarySurfaceMode = xy_aux_mode(&params->src);
blt.SourceCompressionEnable = true;
#endif
blt.SourceCompressionFormat =
isl_get_render_compression_format(src_surf->format);
blt.SourceClearValueEnable = !!params->src.clear_color_addr.buffer;

View file

@ -948,6 +948,115 @@
<field name="Command Type" start="29" end="31" type="uint" default="3" />
<field name="Byte Stride" start="34" end="63" type="uint" />
</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" prefix="XY_BPP">
<value name="8_BIT" value="0" />
<value name="16_BIT" value="1" />
<value name="32_BIT" value="2" />
<value name="64_BIT" value="3" />
<value name="96_BIT" value="4" />
<value name="128_BIT" value="5" />
</field>
<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="56" end="59" type="uint" nonzero="true" />
<field name="Destination Tiling" start="62" end="63" 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="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 Encrypt En" start="277" end="277" type="bool" />
<field name="Source MOCS" start="280" end="283" type="uint" />
<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">
<value name="HALIGN_16" value="0" />
<value name="HALIGN_32" value="1" />
<value name="HALIGN_64" value="2" />
<value name="HALIGN_128" value="3" />
</field>
<field name="Destination Vertical Align" start="579" end="580" type="uint">
<value name="VALIGN_4" value="1" />
<value name="VALIGN_8" value="2" />
<value name="VALIGN_16" value="3" />
</field>
<field name="Destination Mip Tail Start LOD" start="584" end="587" type="uint" />
<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">
<value name="HALIGN_16" value="0" />
<value name="HALIGN_32" value="1" />
<value name="HALIGN_64" value="2" />
<value name="HALIGN_128" value="3" />
</field>
<field name="Source Vertical Align" start="675" end="676" type="uint">
<value name="VALIGN_4" value="1" />
<value name="VALIGN_8" value="2" />
<value name="VALIGN_16" value="3" />
</field>
<field name="Source Mip Tail Start LOD" start="680" end="683" type="uint" />
<field name="Source Array Index" start="693" end="703" type="uint" />
</instruction>
<instruction name="XY_FAST_COLOR_BLT" bias="2" length="16" engine="blitter">
<field name="DWord Length" start="0" end="7" type="uint" default="14" />
<field name="Number of Multisamples" start="9" end="11" type="uint">