diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index 80993d4be48..36b328ef7ff 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -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); diff --git a/src/intel/compiler/brw_lower_logical_sends.cpp b/src/intel/compiler/brw_lower_logical_sends.cpp index e665f82786d..c055da7e8bc 100644 --- a/src/intel/compiler/brw_lower_logical_sends.cpp +++ b/src/intel/compiler/brw_lower_logical_sends.cpp @@ -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; diff --git a/src/intel/compiler/brw_mesh.cpp b/src/intel/compiler/brw_mesh.cpp index 1486dc3bb82..c4d429477e7 100644 --- a/src/intel/compiler/brw_mesh.cpp +++ b/src/intel/compiler/brw_mesh.cpp @@ -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;