mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 22:38:05 +02:00
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:
parent
26e78f83bb
commit
569a037fb1
2 changed files with 120 additions and 1 deletions
|
|
@ -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(¶ms->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(¶ms->src);
|
||||
blt.SourceCompressionEnable = true;
|
||||
#endif
|
||||
blt.SourceCompressionFormat =
|
||||
isl_get_render_compression_format(src_surf->format);
|
||||
blt.SourceClearValueEnable = !!params->src.clear_color_addr.buffer;
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue