brw: fix workaround fence rlen field
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

send.ugm (1|M0)          r125     r0      null:0  0x0            0x0200651F           {$9} // wr:1+0, rd:0; fence invalid flush type scoped to tile

When destination of Send(s) is not null, the response length must not be 0.

Should only affect DG2 products.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38478>
This commit is contained in:
Lionel Landwerlin 2025-11-17 09:52:53 +02:00 committed by Marge Bot
parent 17c015c2de
commit 4816318887

View file

@ -120,9 +120,11 @@ brw_workaround_memory_fence_before_eot(brw_shader &s)
dummy_fence->mlen = reg_unit(s.devinfo);
dummy_fence->ex_mlen = 0;
dummy_fence->sfid = BRW_SFID_UGM;
dummy_fence->desc = lsc_fence_msg_desc(s.devinfo, LSC_FENCE_TILE,
LSC_FLUSH_TYPE_NONE_6, false);
dummy_fence->size_written = REG_SIZE * reg_unit(s.devinfo);
dummy_fence->desc = lsc_fence_msg_desc(s.devinfo, LSC_FENCE_TILE,
LSC_FLUSH_TYPE_NONE_6, false) |
brw_message_desc(s.devinfo, dummy_fence->mlen,
dummy_fence->size_written / REG_SIZE, 0);
ubld.emit(FS_OPCODE_SCHEDULING_FENCE, ubld.null_reg_ud(), dst);
progress = true;
/* TODO: remove this break if we ever have shader with multiple EOT. */