unsigned sfid,
struct brw_reg dst,
struct brw_reg payload,
- struct brw_reg desc);
+ struct brw_reg desc,
+ unsigned desc_imm);
void brw_ff_sync(struct brw_codegen *p,
struct brw_reg dest,
unsigned sfid,
struct brw_reg dst,
struct brw_reg payload,
- struct brw_reg desc)
+ struct brw_reg desc,
+ unsigned desc_imm)
{
const struct gen_device_info *devinfo = p->devinfo;
struct brw_inst *send;
if (desc.file == BRW_IMMEDIATE_VALUE) {
setup = p->nr_insn;
send = next_insn(p, BRW_OPCODE_SEND);
- brw_set_src1(p, send, desc);
+ brw_set_desc(p, send, desc.ud | desc_imm);
} else {
struct brw_reg addr = retype(brw_address_reg(0), BRW_REGISTER_TYPE_UD);
* brw_set_*_message() helper functions.
*/
setup = p->nr_insn;
- brw_OR(p, addr, desc, brw_imm_ud(0));
+ brw_OR(p, addr, desc, brw_imm_ud(desc_imm));
brw_pop_insn_state(p);
surface = addr;
}
- insn = brw_send_indirect_message(p, sfid, dst, payload, surface);
+ insn = brw_send_indirect_message(p, sfid, dst, payload, surface, 0);
brw_inst_set_mlen(devinfo, insn, message_len);
brw_inst_set_rlen(devinfo, insn, response_len);
brw_inst_set_header_present(devinfo, insn, header_present);
GEN7_SFID_PIXEL_INTERPOLATOR,
dest,
mrf,
- vec1(data));
+ vec1(data), 0);
brw_inst_set_mlen(devinfo, insn, msg_length);
brw_inst_set_rlen(devinfo, insn, response_length);
/* dst = send(offset, a0.0 | <descriptor>) */
brw_inst *insn = brw_send_indirect_message(
- p, BRW_SFID_SAMPLER, dst, src, addr);
+ p, BRW_SFID_SAMPLER, dst, src, addr, 0);
brw_set_sampler_message(p, insn,
0 /* surface */,
0 /* sampler */,
brw_inst *insn = brw_send_indirect_message(
p, GEN6_SFID_DATAPORT_CONSTANT_CACHE,
retype(dst, BRW_REGISTER_TYPE_UD),
- retype(payload, BRW_REGISTER_TYPE_UD), addr);
+ retype(payload, BRW_REGISTER_TYPE_UD), addr, 0);
brw_set_dp_read_message(p, insn, 0 /* surface */,
BRW_DATAPORT_OWORD_BLOCK_DWORDS(inst->exec_size),
GEN7_DATAPORT_DC_OWORD_BLOCK_READ,
/* dst = send(offset, a0.0 | <descriptor>) */
brw_inst *insn = brw_send_indirect_message(
p, BRW_SFID_SAMPLER, retype(dst, BRW_REGISTER_TYPE_UW),
- offset, addr);
+ offset, addr, 0);
brw_set_sampler_message(p, insn,
0 /* surface */,
0 /* sampler */,
/* dst = send(offset, a0.0 | <descriptor>) */
brw_inst *insn = brw_send_indirect_message(
- p, BRW_SFID_SAMPLER, dst, src, addr);
+ p, BRW_SFID_SAMPLER, dst, src, addr, 0);
brw_set_sampler_message(p, insn,
0 /* surface */,
0 /* sampler */,
/* dst = send(offset, a0.0 | <descriptor>) */
brw_inst *insn = brw_send_indirect_message(
- p, BRW_SFID_SAMPLER, dst, offset, addr);
+ p, BRW_SFID_SAMPLER, dst, offset, addr, 0);
brw_set_sampler_message(p, insn,
0 /* surface */,
0 /* sampler */,