jay: annotate pure sends

for scheduling, CSE, etc

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41688>
This commit is contained in:
Alyssa Rosenzweig 2026-05-13 13:22:05 -04:00 committed by Marge Bot
parent c069b7e47c
commit e72ffb0046
3 changed files with 6 additions and 1 deletions

View file

@ -453,6 +453,7 @@ struct jayb_send_params {
bool check_tdr;
bool uniform;
bool bindless;
bool pure;
};
static inline jay_inst *
@ -572,6 +573,7 @@ _jay_SEND(jay_builder *b, const struct jayb_send_params p)
info->check_tdr = p.check_tdr;
info->uniform = p.uniform;
info->bindless = p.bindless;
info->pure = p.pure;
info->ex_desc_imm = p.ex_desc_imm;
info->ex_mlen = lens[2];
I->src[0] = jay_imm(((uint32_t) p.msg_desc) |

View file

@ -1092,6 +1092,7 @@ jay_emit_mem_access(struct nir_to_jay_state *nj, nir_intrinsic_instr *intr)
jay_SEND(b, .sfid = sfid, .msg_desc = desc, .srcs = srcs,
.nr_srcs = jay_is_null(data) ? 1 : 2, .dst = tmp, .type = data_type,
.src_type = { offset_type, data_type }, .uniform = uniform,
.pure = nir_intrinsic_can_reorder(intr),
.bindless = surf_type == LSC_ADDR_SURFTYPE_BSS, .ex_desc = ex_desc,
.ex_desc_imm = ex_desc_imm);
@ -2025,7 +2026,7 @@ jay_emit_texture(struct nir_to_jay_state *nj, nir_tex_instr *tex)
.ex_desc = desc_ex_src, .header = header, .srcs = payload,
.nr_srcs = n_sources, .type = JAY_TYPE_U32,
.src_type = { src_type }, .dst = tmp, .uniform = payload_uniform,
.bindless = surface_bindless);
.bindless = surface_bindless, .pure = true);
/* If we sampled into a temporary, copy out to the final */
if (residency) {

View file

@ -143,9 +143,11 @@ op('send', 4, None, Props.SIDE_EFFECTS, [
'bool check_tdr',
'bool uniform',
'bool bindless',
'bool pure',
'enum jay_type type_0',
'enum jay_type type_1',
'uint8_t ex_mlen',
'bool pad[3]',
'uint32_t ex_desc_imm',
])