intel/genxml: Add RENDER_SURFACE_STATE for xe2

The indirect BO of clear color is also removed along with clear value
address and its enabling.

Other delta in struct RENDER_SURFACE_STATE are deferred to their
functional enabling changes.

Signed-off-by: Zhang, Jianxun <jianxun.zhang@intel.com>
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26801>
This commit is contained in:
Zhang, Jianxun 2022-08-01 13:50:24 -07:00 committed by Marge Bot
parent db5be18862
commit e9b633619c
2 changed files with 114 additions and 4 deletions

View file

@ -2,6 +2,7 @@
<genxml name="XE2" gen="20">
<import name="gen125.xml">
<exclude name="3DSTATE_CLEAR_PARAMS" />
<exclude name="CLEAR_COLOR" />
</import>
<enum name="PREF_SLM_ALLOCATION_SIZE">
<value name="SLM_ENCODES_0K" value="0" />
@ -151,6 +152,109 @@
<field name="Inline Data" start="0" end="31" type="uint" />
</group>
</struct>
<struct name="RENDER_SURFACE_STATE" length="16">
<field name="Cube Face Enable - Positive Z" start="0" end="0" type="bool" />
<field name="Cube Face Enable - Negative Z" start="1" end="1" type="bool" />
<field name="Cube Face Enable - Positive Y" start="2" end="2" type="bool" />
<field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool" />
<field name="Cube Face Enable - Positive X" start="4" end="4" type="bool" />
<field name="Cube Face Enable - Negative X" start="5" end="5" type="bool" />
<field name="Media Boundary Pixel Mode" start="6" end="7" type="uint">
<value name="NORMAL_MODE" value="0" />
<value name="PROGRESSIVE_FRAME" value="2" />
<value name="INTERLACED_FRAME" value="3" />
</field>
<field name="Render Cache Read Write Mode" start="8" end="8" type="uint">
<value name="Write-Only Cache" value="0" />
<value name="Read-Write Cache" value="1" />
</field>
<field name="Enable Sampler Route to LSC" start="9" end="9" type="bool" />
<field name="Vertical Line Stride Offset" start="10" end="10" type="uint" />
<field name="Vertical Line Stride" start="11" end="11" type="uint" />
<field name="Tile Mode" start="12" end="13" type="uint">
<value name="LINEAR" value="0" />
<value name="TILE64" value="1" />
<value name="XMAJOR" value="2" />
<value name="TILE4" value="3" />
</field>
<field name="Surface Horizontal Alignment" start="14" end="15" 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="Surface Vertical Alignment" start="16" end="17" type="uint">
<value name="VALIGN_4" value="1" />
<value name="VALIGN_8" value="2" />
<value name="VALIGN_16" value="3" />
</field>
<field name="Surface Format" start="18" end="26" type="uint" />
<field name="Surface Array" start="28" end="28" type="bool" />
<field name="Surface Type" start="29" end="31" type="STATE_SURFACE_TYPE" />
<field name="Surface QPitch" start="32" end="46" type="uint" />
<field name="Sample Tap Discard Disable" start="47" end="47" type="bool" />
<field name="Corner Texel Mode" start="50" end="50" type="bool" />
<field name="Base Mip Level" start="51" end="55" type="uint" />
<field name="MOCS" start="56" end="62" type="uint" nonzero="true" />
<field name="Width" start="64" end="77" type="uint" />
<field name="Height" start="80" end="93" type="uint" />
<field name="Depth Stencil Resource" start="95" end="95" type="bool" />
<field name="Surface Pitch" start="96" end="113" type="uint" />
<field name="Depth" start="117" end="127" type="uint" />
<field name="Multisample Position Palette Index" start="128" end="130" type="uint" />
<field name="Number of Multisamples" start="131" end="133" type="uint">
<value name="MULTISAMPLECOUNT_1" value="0" />
<value name="MULTISAMPLECOUNT_2" value="1" />
<value name="MULTISAMPLECOUNT_4" value="2" />
<value name="MULTISAMPLECOUNT_8" value="3" />
<value name="MULTISAMPLECOUNT_16" value="4" />
</field>
<field name="Multisampled Surface Storage Format" start="134" end="134" type="uint">
<value name="MSFMT_MSS" value="0" />
<value name="MSFMT_DEPTH_STENCIL" value="1" />
</field>
<field name="Render Target View Extent" start="135" end="145" type="uint" />
<field name="Minimum Array Element" start="146" end="156" type="uint" />
<field name="Render Target And Sample Unorm Rotation" start="157" end="158" type="uint">
<value name="0DEG" value="0" />
<value name="90DEG" value="1" />
<value name="180DEG" value="2" />
<value name="270DEG" value="3" />
</field>
<field name="MIP Count / LOD" start="160" end="163" type="uint" />
<field name="Surface Min LOD" start="164" end="167" type="uint" />
<field name="Mip Tail Start LOD" start="168" end="171" type="uint" />
<field name="L1 Cache Control" start="176" end="178" type="L1_CACHE_CONTROL" />
<field name="EWA Disable For Cube" start="180" end="180" type="bool" />
<field name="Y Offset" start="181" end="183" type="uint" />
<field name="X Offset" start="185" end="191" type="uint" />
<field name="Auxiliary Surface Mode" start="192" end="194" type="uint">
<value name="AUX_NONE" value="0" />
<value name="AUX_APPEND" value="1" />
<value name="AUX_MCS" value="2" />
</field>
<field name="Y Offset for U or UV Plane" start="192" end="205" type="uint" />
<field name="Auxiliary Surface Pitch" start="195" end="204" type="uint" />
<field name="YUV Interpolation Enable" start="207" end="207" type="bool" />
<field name="X Offset for U or UV Plane" start="208" end="221" type="uint" />
<field name="Auxiliary Surface QPitch" start="208" end="222" type="uint" />
<field name="Resource Min LOD" start="224" end="235" type="u4.8" />
<field name="Shader Channel Select Alpha" start="240" end="242" type="Shader Channel Select" />
<field name="Shader Channel Select Blue" start="243" end="245" type="Shader Channel Select" />
<field name="Shader Channel Select Green" start="246" end="248" type="Shader Channel Select" />
<field name="Shader Channel Select Red" start="249" end="251" type="Shader Channel Select" />
<field name="Surface Base Address" start="256" end="319" type="address" />
<field name="Mip Region Width In Log2" start="320" end="323" type="uint" />
<field name="Append Counter Address" start="322" end="383" type="address" />
<field name="Mip Region Height In Log2" start="324" end="327" type="uint" />
<field name="Procedural Texture" start="331" end="331" type="bool" />
<field name="Auxiliary Surface Base Address" start="332" end="383" type="address" />
<field name="Y Offset for V Plane" start="352" end="365" type="uint" />
<field name="X Offset for V Plane" start="368" end="381" type="uint" />
<field name="Compression Format" start="384" end="387" type="UNIFIED_COMPRESSION_FORMAT" />
<field name="Mip Region Depth In Log2" start="388" end="391" type="uint" />
<field name="Disallowlowqualityfiltering" start="447" end="447" type="bool" />
</struct>
<instruction name="3DSTATE_DEPTH_BUFFER" bias="2" length="8" engine="render">
<field name="DWord Length" start="0" end="7" type="uint" default="6" />
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="5" />

View file

@ -78,7 +78,13 @@ static const uint32_t isl_encode_multisample_layout[] = {
};
#endif
#if GFX_VER >= 12
#if GFX_VER >= 20
static const uint32_t isl_encode_aux_mode[] = {
[ISL_AUX_USAGE_NONE] = AUX_NONE,
[ISL_AUX_USAGE_MC] = AUX_NONE,
[ISL_AUX_USAGE_MCS_CCS] = AUX_MCS,
};
#elif GFX_VER >= 12
static const uint32_t isl_encode_aux_mode[] = {
[ISL_AUX_USAGE_NONE] = AUX_NONE,
[ISL_AUX_USAGE_MC] = AUX_NONE,
@ -664,7 +670,7 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
isl_get_render_compression_format(info->surf->format);
}
#endif
#if GFX_VER >= 12
#if GFX_VER == 12
s.MemoryCompressionEnable = info->aux_usage == ISL_AUX_USAGE_MC;
/* The Tiger Lake PRM for RENDER_SURFACE_STATE::DecompressInL3 says:
@ -790,11 +796,11 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
if (isl_aux_usage_has_fast_clears(info->aux_usage)) {
if (info->use_clear_address) {
#if GFX_VER >= 10
#if GFX_VER > 10 && GFX_VER < 20
s.ClearValueAddressEnable = true;
s.ClearValueAddress = info->clear_address;
#else
unreachable("Gfx9 and earlier do not support indirect clear colors");
unreachable("Only Gfx11 and Gfx12 support indirect clear colors");
#endif
}