intel/brw: Store and set sfid in memory fences

sfid is another field that is not preserved after brw_transform_inst_to_send()
so we need to store it before transform and retore it to preserve the sfid value.

Fixes: 0fcce2722f ("brw: Add brw_send_inst")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37823>
This commit is contained in:
José Roberto de Souza 2025-10-14 08:03:07 -07:00 committed by Marge Bot
parent a259f64595
commit 19de4b82f9

View file

@ -2482,9 +2482,11 @@ lower_lsc_memory_fence_and_interlock(const brw_builder &bld, struct brw_send_ins
assert(inst->size_written == reg_unit(devinfo) * REG_SIZE);
const uint32_t intrinsic_desc = inst->desc;
const uint8_t sfid = inst->sfid;
brw_send_inst *send = brw_transform_inst_to_send(bld, inst);
inst = NULL;
send->sfid = sfid;
send->check_tdr = interlock;
send->has_side_effects = true;
@ -2560,9 +2562,11 @@ lower_hdc_memory_fence_and_interlock(const brw_builder &bld, brw_send_inst *inst
assert(inst->size_written == (commit_enable ? REG_SIZE : 0));
const uint8_t sfid = inst->sfid;
brw_send_inst *send = brw_transform_inst_to_send(bld, inst);
inst = NULL;
send->sfid = sfid;
send->check_tdr = interlock;
send->has_side_effects = true;