diff options
author | Francisco Jerez <[email protected]> | 2018-06-02 15:15:15 -0700 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2018-07-09 23:46:57 -0700 |
commit | 27c211e30f92a0bf85bd03aab8f5e5de7d094a22 (patch) | |
tree | 8966e70c21f2f294fcb624708c980ae3c26457a9 /src/intel/compiler/brw_fs_generator.cpp | |
parent | 1c90ae5accc284cf6b27bcc25e5e3fc3cfb80407 (diff) |
intel/eu: Use descriptor constructors for sampler messages.
v2: Use SET_BITS macro instead of left shift (Ken).
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_fs_generator.cpp')
-rw-r--r-- | src/intel/compiler/brw_fs_generator.cpp | 72 |
1 files changed, 32 insertions, 40 deletions
diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp index c685537fa5e..49cc0302fae 100644 --- a/src/intel/compiler/brw_fs_generator.cpp +++ b/src/intel/compiler/brw_fs_generator.cpp @@ -1179,17 +1179,16 @@ fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src brw_pop_insn_state(p); /* dst = send(offset, a0.0 | <descriptor>) */ - brw_inst *insn = brw_send_indirect_message( - p, BRW_SFID_SAMPLER, dst, src, addr, 0); - brw_set_sampler_message(p, insn, - 0 /* surface */, - 0 /* sampler */, - msg_type, - inst->size_written / REG_SIZE, - inst->mlen /* mlen */, - inst->header_size != 0 /* header */, - simd_mode, - return_format); + brw_send_indirect_message( + p, BRW_SFID_SAMPLER, dst, src, addr, + brw_message_desc(devinfo, inst->mlen, inst->size_written / REG_SIZE, + inst->header_size) | + brw_sampler_desc(devinfo, + 0 /* surface */, + 0 /* sampler */, + msg_type, + simd_mode, + return_format)); /* visitor knows more than we do about the surface limit required, * so has already done marking. @@ -1503,6 +1502,7 @@ fs_generator::generate_varying_pull_constant_load_gen4(fs_inst *inst, brw_inst *send = brw_next_insn(p, BRW_OPCODE_SEND); brw_inst_set_compression(devinfo, send, false); + brw_inst_set_sfid(devinfo, send, BRW_SFID_SAMPLER); brw_set_dest(p, send, retype(dst, BRW_REGISTER_TYPE_UW)); brw_set_src0(p, send, header); if (devinfo->gen < 6) @@ -1512,15 +1512,11 @@ fs_generator::generate_varying_pull_constant_load_gen4(fs_inst *inst, * stored in it. */ uint32_t return_format = BRW_SAMPLER_RETURN_FORMAT_FLOAT32; - brw_set_sampler_message(p, send, - surf_index, - 0, /* sampler (unused) */ - msg_type, - rlen, - inst->mlen, - inst->header_size != 0, - simd_mode, - return_format); + brw_set_desc(p, send, + brw_message_desc(devinfo, inst->mlen, rlen, inst->header_size) | + brw_sampler_desc(devinfo, surf_index, + 0, /* sampler (unused) */ + msg_type, simd_mode, return_format)); } void @@ -1554,17 +1550,15 @@ fs_generator::generate_varying_pull_constant_load_gen7(fs_inst *inst, uint32_t surf_index = index.ud; brw_inst *send = brw_next_insn(p, BRW_OPCODE_SEND); + brw_inst_set_sfid(devinfo, send, BRW_SFID_SAMPLER); brw_set_dest(p, send, retype(dst, BRW_REGISTER_TYPE_UW)); brw_set_src0(p, send, offset); - brw_set_sampler_message(p, send, - surf_index, - 0, /* LD message ignores sampler unit */ - GEN5_SAMPLER_MESSAGE_SAMPLE_LD, - rlen, - mlen, - false, /* no header */ - simd_mode, - 0); + brw_set_desc(p, send, + brw_message_desc(devinfo, mlen, rlen, false) | + brw_sampler_desc(devinfo, surf_index, + 0, /* LD message ignores sampler unit */ + GEN5_SAMPLER_MESSAGE_SAMPLE_LD, + simd_mode, 0)); } else { @@ -1583,18 +1577,16 @@ fs_generator::generate_varying_pull_constant_load_gen7(fs_inst *inst, brw_pop_insn_state(p); /* dst = send(offset, a0.0 | <descriptor>) */ - brw_inst *insn = brw_send_indirect_message( + brw_send_indirect_message( p, BRW_SFID_SAMPLER, retype(dst, BRW_REGISTER_TYPE_UW), - offset, addr, 0); - brw_set_sampler_message(p, insn, - 0 /* surface */, - 0 /* sampler */, - GEN5_SAMPLER_MESSAGE_SAMPLE_LD, - rlen /* rlen */, - mlen /* mlen */, - false /* header */, - simd_mode, - 0); + offset, addr, + brw_message_desc(devinfo, mlen, rlen, false) | + brw_sampler_desc(devinfo, + 0 /* surface */, + 0 /* sampler */, + GEN5_SAMPLER_MESSAGE_SAMPLE_LD, + simd_mode, + 0)); } } |