intel/eu: Add an EOT parameter to send_indirect_[split]_message
For split indirect sends we have to put the EOT parameter in the extended descriptor as well as the instruction itself so just calling brw_inst_set_eot is insufficient. Moving the EOT handling handling into the send_indirect_[split]_message helper lets us handle it properly.
This commit is contained in:
@@ -279,16 +279,16 @@ fs_generator::generate_send(fs_inst *inst,
|
||||
* also covers the dual-payload case because ex_mlen goes in ex_desc.
|
||||
*/
|
||||
brw_send_indirect_split_message(p, inst->sfid, dst, payload, payload2,
|
||||
desc, desc_imm, ex_desc, ex_desc_imm);
|
||||
desc, desc_imm, ex_desc, ex_desc_imm,
|
||||
inst->eot);
|
||||
if (inst->check_tdr)
|
||||
brw_inst_set_opcode(p->devinfo, brw_last_inst, BRW_OPCODE_SENDSC);
|
||||
} else {
|
||||
brw_send_indirect_message(p, inst->sfid, dst, payload, desc, desc_imm);
|
||||
brw_send_indirect_message(p, inst->sfid, dst, payload, desc, desc_imm,
|
||||
inst->eot);
|
||||
if (inst->check_tdr)
|
||||
brw_inst_set_opcode(p->devinfo, brw_last_inst, BRW_OPCODE_SENDC);
|
||||
}
|
||||
|
||||
brw_inst_set_eot(p->devinfo, brw_last_inst, inst->eot);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1463,7 +1463,8 @@ fs_generator::generate_uniform_pull_constant_load_gen7(fs_inst *inst,
|
||||
brw_dp_read_desc(devinfo, 0 /* surface */,
|
||||
BRW_DATAPORT_OWORD_BLOCK_DWORDS(inst->exec_size),
|
||||
GEN7_DATAPORT_DC_OWORD_BLOCK_READ,
|
||||
BRW_DATAPORT_READ_TARGET_DATA_CACHE));
|
||||
BRW_DATAPORT_READ_TARGET_DATA_CACHE),
|
||||
false /* EOT */);
|
||||
|
||||
brw_pop_insn_state(p);
|
||||
}
|
||||
|
Reference in New Issue
Block a user