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;
dst.component_size(inst->exec_size);
}
inst->offset = base_offset;
- inst->mlen = 2;
}
}
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;
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);
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. */
inst->size_written = instr->num_components * REG_SIZE * reg_unit(devinfo);
}
inst->offset = imm_offset;
- inst->mlen = 2;
}
break;
}
srcs, ARRAY_SIZE(srcs));
inst->size_written = instr->num_components * REG_SIZE * reg_unit(devinfo);
}
- inst->mlen = 1;
inst->offset = imm_offset;
}
} else {
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);
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;
false,
inst->offset);
+ inst->mlen = header_size;
inst->ex_desc = 0;
inst->ex_mlen = 0;
inst->send_is_volatile = true;
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;
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;