intel/fs: Delete manual 'inst->mlen' calculations from all uses of logical URB reads.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25195>
This commit is contained in:
committed by
Marge Bot
parent
53d1d793cb
commit
7f3dc4505d
@@ -2556,7 +2556,6 @@ fs_visitor::emit_gs_input_load(const fs_reg &dst,
|
||||
dst.component_size(inst->exec_size);
|
||||
}
|
||||
inst->offset = base_offset + nir_src_as_uint(offset_src);
|
||||
inst->mlen = 1;
|
||||
} else {
|
||||
/* Indirect indexing - use per-slot offsets as well. */
|
||||
unsigned read_components = num_components + first_component;
|
||||
@@ -2582,7 +2581,6 @@ fs_visitor::emit_gs_input_load(const fs_reg &dst,
|
||||
dst.component_size(inst->exec_size);
|
||||
}
|
||||
inst->offset = base_offset;
|
||||
inst->mlen = 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2811,7 +2809,6 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld,
|
||||
ARRAY_SIZE(srcs));
|
||||
}
|
||||
inst->offset = imm_offset;
|
||||
inst->mlen = 1;
|
||||
} else {
|
||||
/* Indirect indexing - use per-slot offsets as well. */
|
||||
srcs[URB_LOGICAL_SRC_PER_SLOT_OFFSETS] = indirect_offset;
|
||||
@@ -2830,7 +2827,6 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld,
|
||||
srcs, ARRAY_SIZE(srcs));
|
||||
}
|
||||
inst->offset = imm_offset;
|
||||
inst->mlen = 2;
|
||||
}
|
||||
inst->size_written = (num_components + first_component) *
|
||||
inst->dst.component_size(inst->exec_size);
|
||||
@@ -2884,7 +2880,6 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld,
|
||||
inst->size_written = instr->num_components * REG_SIZE * reg_unit(devinfo);
|
||||
}
|
||||
inst->offset = imm_offset;
|
||||
inst->mlen = 1;
|
||||
}
|
||||
} else {
|
||||
/* Indirect indexing - use per-slot offsets as well. */
|
||||
@@ -2909,7 +2904,6 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld,
|
||||
inst->size_written = instr->num_components * REG_SIZE * reg_unit(devinfo);
|
||||
}
|
||||
inst->offset = imm_offset;
|
||||
inst->mlen = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3036,7 +3030,6 @@ fs_visitor::nir_emit_tes_intrinsic(const fs_builder &bld,
|
||||
srcs, ARRAY_SIZE(srcs));
|
||||
inst->size_written = instr->num_components * REG_SIZE * reg_unit(devinfo);
|
||||
}
|
||||
inst->mlen = 1;
|
||||
inst->offset = imm_offset;
|
||||
}
|
||||
} else {
|
||||
@@ -3066,7 +3059,6 @@ fs_visitor::nir_emit_tes_intrinsic(const fs_builder &bld,
|
||||
inst = bld.emit(SHADER_OPCODE_URB_READ_LOGICAL, dest,
|
||||
srcs, ARRAY_SIZE(srcs));
|
||||
}
|
||||
inst->mlen = 2;
|
||||
inst->offset = imm_offset;
|
||||
inst->size_written = (num_components + first_component) *
|
||||
inst->dst.component_size(inst->exec_size);
|
||||
|
||||
@@ -40,18 +40,15 @@ lower_urb_read_logical_send(const fs_builder &bld, fs_inst *inst)
|
||||
assert(inst->size_written % REG_SIZE == 0);
|
||||
assert(inst->header_size == 0);
|
||||
|
||||
fs_reg *payload_sources = new fs_reg[inst->mlen];
|
||||
fs_reg payload = fs_reg(VGRF, bld.shader->alloc.allocate(inst->mlen),
|
||||
BRW_REGISTER_TYPE_F);
|
||||
|
||||
fs_reg payload_sources[2];
|
||||
unsigned header_size = 0;
|
||||
payload_sources[header_size++] = inst->src[URB_LOGICAL_SRC_HANDLE];
|
||||
if (per_slot_present)
|
||||
payload_sources[header_size++] = inst->src[URB_LOGICAL_SRC_PER_SLOT_OFFSETS];
|
||||
|
||||
bld.LOAD_PAYLOAD(payload, payload_sources, inst->mlen, header_size);
|
||||
|
||||
delete [] payload_sources;
|
||||
fs_reg payload = fs_reg(VGRF, bld.shader->alloc.allocate(header_size),
|
||||
BRW_REGISTER_TYPE_F);
|
||||
bld.LOAD_PAYLOAD(payload, payload_sources, header_size, header_size);
|
||||
|
||||
inst->opcode = SHADER_OPCODE_SEND;
|
||||
inst->header_size = header_size;
|
||||
@@ -63,6 +60,7 @@ lower_urb_read_logical_send(const fs_builder &bld, fs_inst *inst)
|
||||
false,
|
||||
inst->offset);
|
||||
|
||||
inst->mlen = header_size;
|
||||
inst->ex_desc = 0;
|
||||
inst->ex_mlen = 0;
|
||||
inst->send_is_volatile = true;
|
||||
|
||||
@@ -1861,7 +1861,6 @@ emit_urb_direct_reads(const fs_builder &bld, nir_intrinsic_instr *instr,
|
||||
|
||||
fs_inst *inst = ubld8.emit(SHADER_OPCODE_URB_READ_LOGICAL, data,
|
||||
srcs, ARRAY_SIZE(srcs));
|
||||
inst->mlen = 1;
|
||||
inst->offset = urb_global_offset;
|
||||
assert(inst->offset < 2048);
|
||||
inst->size_written = num_regs * REG_SIZE;
|
||||
@@ -1924,7 +1923,6 @@ emit_urb_indirect_reads(const fs_builder &bld, nir_intrinsic_instr *instr,
|
||||
|
||||
fs_inst *inst = bld8.emit(SHADER_OPCODE_URB_READ_LOGICAL,
|
||||
data, srcs, ARRAY_SIZE(srcs));
|
||||
inst->mlen = 2;
|
||||
inst->offset = 0;
|
||||
inst->size_written = 4 * REG_SIZE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user