intel/eu/xehp+: Don't initialize mlen and rlen descriptor fields from lsc_msg_desc*().

These fields are overlapping with the ones set by brw_message_desc(),
so the latter should be used instead.  This fixes corruption of the
LSC message descriptors when inconsistent values are specified through
both helpers, which can happen if the 'inst->mlen' field is modified
during optimization (e.g. by opt_split_sends()).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28484>
This commit is contained in:
Francisco Jerez
2022-09-28 16:26:02 -07:00
committed by Marge Bot
parent fa96274a87
commit f1812437e8
-11
View File
@@ -1156,15 +1156,6 @@ lsc_msg_desc_wcmask(UNUSED const struct intel_device_info *devinfo,
bool transpose, unsigned cache_ctrl, bool has_dest, unsigned cmask)
{
assert(devinfo->has_lsc);
unsigned dest_length = !has_dest ? 0 :
DIV_ROUND_UP(lsc_data_size_bytes(data_sz) * num_channels * simd_size,
reg_unit(devinfo) * REG_SIZE);
unsigned src0_length =
DIV_ROUND_UP(lsc_addr_size_bytes(addr_sz) * num_coordinates * simd_size,
reg_unit(devinfo) * REG_SIZE);
assert(!transpose || lsc_opcode_has_transpose(opcode));
unsigned msg_desc =
@@ -1174,8 +1165,6 @@ lsc_msg_desc_wcmask(UNUSED const struct intel_device_info *devinfo,
SET_BITS(transpose, 15, 15) |
(devinfo->ver >= 20 ? SET_BITS(cache_ctrl, 19, 16) :
SET_BITS(cache_ctrl, 19, 17)) |
SET_BITS(dest_length, 24, 20) |
SET_BITS(src0_length, 28, 25) |
SET_BITS(addr_type, 30, 29);
if (lsc_opcode_has_cmask(opcode))