intel/eu: Provide desc immediate argument up front to brw_send_indirect_message().
The current approach of returning a setup instruction where additional descriptor fields can be specified is still supported in order to keep things working, but it will be removed later in this series. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
b382bdde1d
commit
1c90ae5acc
|
@ -324,7 +324,8 @@ brw_send_indirect_message(struct brw_codegen *p,
|
|||
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,
|
||||
|
|
|
@ -2527,7 +2527,8 @@ brw_send_indirect_message(struct brw_codegen *p,
|
|||
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;
|
||||
|
@ -2546,7 +2547,7 @@ brw_send_indirect_message(struct brw_codegen *p,
|
|||
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);
|
||||
|
@ -2562,7 +2563,7 @@ brw_send_indirect_message(struct brw_codegen *p,
|
|||
* 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);
|
||||
|
||||
|
@ -2615,7 +2616,7 @@ brw_send_indirect_surface_message(struct brw_codegen *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);
|
||||
|
@ -3373,7 +3374,7 @@ brw_pixel_interpolator_query(struct brw_codegen *p,
|
|||
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);
|
||||
|
||||
|
|
|
@ -1180,7 +1180,7 @@ fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src
|
|||
|
||||
/* 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 */,
|
||||
|
@ -1449,7 +1449,7 @@ fs_generator::generate_uniform_pull_constant_load_gen7(fs_inst *inst,
|
|||
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,
|
||||
|
@ -1585,7 +1585,7 @@ fs_generator::generate_varying_pull_constant_load_gen7(fs_inst *inst,
|
|||
/* 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 */,
|
||||
|
|
|
@ -325,7 +325,7 @@ generate_tex(struct brw_codegen *p,
|
|||
|
||||
/* 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 */,
|
||||
|
@ -1393,7 +1393,7 @@ generate_pull_constant_load_gen7(struct brw_codegen *p,
|
|||
|
||||
/* 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 */,
|
||||
|
|
Loading…
Reference in New Issue