mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 11:20:11 +01:00
intel/brw/xehp+: Drop redundant arguments of lsc_msg_desc*().
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28484>
This commit is contained in:
parent
f1812437e8
commit
74efde7663
4 changed files with 44 additions and 94 deletions
|
|
@ -1148,12 +1148,12 @@ lsc_vect_size(unsigned vect_size)
|
|||
}
|
||||
|
||||
static inline uint32_t
|
||||
lsc_msg_desc_wcmask(UNUSED const struct intel_device_info *devinfo,
|
||||
enum lsc_opcode opcode, unsigned simd_size,
|
||||
lsc_msg_desc_wcmask(const struct intel_device_info *devinfo,
|
||||
enum lsc_opcode opcode,
|
||||
enum lsc_addr_surface_type addr_type,
|
||||
enum lsc_addr_size addr_sz, unsigned num_coordinates,
|
||||
enum lsc_addr_size addr_sz,
|
||||
enum lsc_data_size data_sz, unsigned num_channels,
|
||||
bool transpose, unsigned cache_ctrl, bool has_dest, unsigned cmask)
|
||||
bool transpose, unsigned cache_ctrl, unsigned cmask)
|
||||
{
|
||||
assert(devinfo->has_lsc);
|
||||
assert(!transpose || lsc_opcode_has_transpose(opcode));
|
||||
|
|
@ -1177,15 +1177,14 @@ lsc_msg_desc_wcmask(UNUSED const struct intel_device_info *devinfo,
|
|||
|
||||
static inline uint32_t
|
||||
lsc_msg_desc(UNUSED const struct intel_device_info *devinfo,
|
||||
enum lsc_opcode opcode, unsigned simd_size,
|
||||
enum lsc_opcode opcode,
|
||||
enum lsc_addr_surface_type addr_type,
|
||||
enum lsc_addr_size addr_sz, unsigned num_coordinates,
|
||||
enum lsc_addr_size addr_sz,
|
||||
enum lsc_data_size data_sz, unsigned num_channels,
|
||||
bool transpose, unsigned cache_ctrl, bool has_dest)
|
||||
bool transpose, unsigned cache_ctrl)
|
||||
{
|
||||
return lsc_msg_desc_wcmask(devinfo, opcode, simd_size, addr_type, addr_sz,
|
||||
num_coordinates, data_sz, num_channels, transpose, cache_ctrl,
|
||||
has_dest, 0);
|
||||
return lsc_msg_desc_wcmask(devinfo, opcode, addr_type, addr_sz,
|
||||
data_sz, num_channels, transpose, cache_ctrl, 0);
|
||||
}
|
||||
|
||||
static inline enum lsc_opcode
|
||||
|
|
|
|||
|
|
@ -1350,15 +1350,12 @@ fs_visitor::assign_curb_setup()
|
|||
|
||||
send->sfid = GFX12_SFID_UGM;
|
||||
send->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD,
|
||||
1 /* exec_size */,
|
||||
LSC_ADDR_SURFTYPE_FLAT,
|
||||
LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
num_regs * 8 /* num_channels */,
|
||||
true /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
send->header_size = 0;
|
||||
send->mlen = lsc_msg_addr_len(devinfo, LSC_ADDR_SIZE_A32, 1);
|
||||
send->size_written =
|
||||
|
|
|
|||
|
|
@ -674,15 +674,12 @@ fs_reg_alloc::emit_unspill(const fs_builder &bld,
|
|||
srcs, ARRAY_SIZE(srcs));
|
||||
unspill_inst->sfid = GFX12_SFID_UGM;
|
||||
unspill_inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD,
|
||||
unspill_inst->exec_size,
|
||||
LSC_ADDR_SURFTYPE_SS,
|
||||
LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
use_transpose ? reg_size * 8 : 1 /* num_channels */,
|
||||
use_transpose,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
unspill_inst->header_size = 0;
|
||||
unspill_inst->mlen = lsc_msg_addr_len(devinfo, LSC_ADDR_SIZE_A32,
|
||||
unspill_inst->exec_size);
|
||||
|
|
@ -756,15 +753,12 @@ fs_reg_alloc::emit_spill(const fs_builder &bld,
|
|||
srcs, ARRAY_SIZE(srcs));
|
||||
spill_inst->sfid = GFX12_SFID_UGM;
|
||||
spill_inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE,
|
||||
bld.dispatch_width(),
|
||||
LSC_ADDR_SURFTYPE_SS,
|
||||
LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
1 /* num_channels */,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
false /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
spill_inst->header_size = 0;
|
||||
spill_inst->mlen = lsc_msg_addr_len(devinfo, LSC_ADDR_SIZE_A32,
|
||||
bld.dispatch_width());
|
||||
|
|
|
|||
|
|
@ -110,14 +110,11 @@ lower_urb_read_logical_send_xe2(const fs_builder &bld, fs_inst *inst)
|
|||
|
||||
assert((dst_comps >= 1 && dst_comps <= 4) || dst_comps == 8);
|
||||
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD,
|
||||
LSC_ADDR_SURFTYPE_FLAT, LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32, dst_comps /* num_channels */,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, STORE, L1UC_L3UC),
|
||||
false /* has_dest */);
|
||||
|
||||
LSC_CACHE(devinfo, STORE, L1UC_L3UC));
|
||||
|
||||
/* Update the original instruction. */
|
||||
inst->opcode = SHADER_OPCODE_SEND;
|
||||
|
|
@ -241,13 +238,12 @@ lower_urb_write_logical_send_xe2(const fs_builder &bld, fs_inst *inst)
|
|||
inst->sfid = BRW_SFID_URB;
|
||||
|
||||
enum lsc_opcode op = mask ? LSC_OP_STORE_CMASK : LSC_OP_STORE;
|
||||
inst->desc = lsc_msg_desc_wcmask(devinfo, op, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc_wcmask(devinfo, op,
|
||||
LSC_ADDR_SURFTYPE_FLAT, LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32, src_comps /* num_channels */,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, STORE, L1UC_L3UC),
|
||||
false /* has_dest */, mask);
|
||||
mask);
|
||||
|
||||
|
||||
/* Update the original instruction. */
|
||||
|
|
@ -1722,24 +1718,20 @@ lower_lsc_surface_logical_send(const fs_builder &bld, fs_inst *inst)
|
|||
case SHADER_OPCODE_UNTYPED_SURFACE_READ_LOGICAL:
|
||||
num_components = arg.ud;
|
||||
has_dest = true;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD_CMASK, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD_CMASK,
|
||||
surf_type, LSC_ADDR_SIZE_A32,
|
||||
dims.ud /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32, num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
break;
|
||||
case SHADER_OPCODE_UNTYPED_SURFACE_WRITE_LOGICAL:
|
||||
num_components = arg.ud;
|
||||
has_dest = false;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE_CMASK, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE_CMASK,
|
||||
surf_type, LSC_ADDR_SIZE_A32,
|
||||
dims.ud /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32, num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, STORE, L1STATE_L3MOCS),
|
||||
false /* has_dest */);
|
||||
LSC_CACHE(devinfo, STORE, L1STATE_L3MOCS));
|
||||
break;
|
||||
case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL: {
|
||||
/* Bspec: Atomic instruction -> Cache section:
|
||||
|
|
@ -1751,39 +1743,33 @@ lower_lsc_surface_logical_send(const fs_builder &bld, fs_inst *inst)
|
|||
|
||||
num_components = 1;
|
||||
has_dest = !inst->dst.is_null();
|
||||
inst->desc = lsc_msg_desc(devinfo, opcode, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, opcode,
|
||||
surf_type, LSC_ADDR_SIZE_A32,
|
||||
dims.ud /* num_coordinates */,
|
||||
lsc_bits_to_data_size(dst_sz * 8),
|
||||
num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, STORE, L1UC_L3WB),
|
||||
!inst->dst.is_null());
|
||||
LSC_CACHE(devinfo, STORE, L1UC_L3WB));
|
||||
break;
|
||||
}
|
||||
case SHADER_OPCODE_BYTE_SCATTERED_READ_LOGICAL:
|
||||
num_components = 1;
|
||||
has_dest = true;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD,
|
||||
surf_type, LSC_ADDR_SIZE_A32,
|
||||
dims.ud /* num_coordinates */,
|
||||
lsc_bits_to_data_size(arg.ud),
|
||||
num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
break;
|
||||
case SHADER_OPCODE_BYTE_SCATTERED_WRITE_LOGICAL:
|
||||
num_components = 1;
|
||||
has_dest = false;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE,
|
||||
surf_type, LSC_ADDR_SIZE_A32,
|
||||
dims.ud /* num_coordinates */,
|
||||
lsc_bits_to_data_size(arg.ud),
|
||||
num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, STORE, L1STATE_L3MOCS),
|
||||
false /* has_dest */);
|
||||
LSC_CACHE(devinfo, STORE, L1STATE_L3MOCS));
|
||||
break;
|
||||
default:
|
||||
unreachable("Unknown surface logical instruction");
|
||||
|
|
@ -1870,15 +1856,12 @@ lower_lsc_block_logical_send(const fs_builder &bld, fs_inst *inst)
|
|||
LSC_ADDR_SURFTYPE_BSS : LSC_ADDR_SURFTYPE_BTI;
|
||||
inst->desc = lsc_msg_desc(devinfo,
|
||||
write ? LSC_OP_STORE : LSC_OP_LOAD,
|
||||
1 /* exec_size */,
|
||||
surf_type,
|
||||
LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
arg.ud /* num_channels */,
|
||||
true /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
!write /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
|
||||
inst->mlen = lsc_msg_addr_len(devinfo, LSC_ADDR_SIZE_A32, 1);
|
||||
inst->size_written = write ? 0 :
|
||||
|
|
@ -2047,48 +2030,40 @@ lower_lsc_a64_logical_send(const fs_builder &bld, fs_inst *inst)
|
|||
case SHADER_OPCODE_A64_UNTYPED_READ_LOGICAL:
|
||||
num_components = arg;
|
||||
has_dest = true;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD_CMASK, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD_CMASK,
|
||||
LSC_ADDR_SURFTYPE_FLAT, LSC_ADDR_SIZE_A64,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32, num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
break;
|
||||
case SHADER_OPCODE_A64_UNTYPED_WRITE_LOGICAL:
|
||||
num_components = arg;
|
||||
has_dest = false;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE_CMASK, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE_CMASK,
|
||||
LSC_ADDR_SURFTYPE_FLAT, LSC_ADDR_SIZE_A64,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32, num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, STORE, L1STATE_L3MOCS),
|
||||
false /* has_dest */);
|
||||
LSC_CACHE(devinfo, STORE, L1STATE_L3MOCS));
|
||||
break;
|
||||
case SHADER_OPCODE_A64_BYTE_SCATTERED_READ_LOGICAL:
|
||||
num_components = 1;
|
||||
has_dest = true;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD,
|
||||
LSC_ADDR_SURFTYPE_FLAT, LSC_ADDR_SIZE_A64,
|
||||
1 /* num_coordinates */,
|
||||
lsc_bits_to_data_size(arg),
|
||||
num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
break;
|
||||
case SHADER_OPCODE_A64_BYTE_SCATTERED_WRITE_LOGICAL:
|
||||
num_components = 1;
|
||||
has_dest = false;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_STORE,
|
||||
LSC_ADDR_SURFTYPE_FLAT, LSC_ADDR_SIZE_A64,
|
||||
1 /* num_coordinates */,
|
||||
lsc_bits_to_data_size(arg),
|
||||
num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, STORE, L1STATE_L3MOCS),
|
||||
false /* has_dest */);
|
||||
LSC_CACHE(devinfo, STORE, L1STATE_L3MOCS));
|
||||
break;
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_LOGICAL: {
|
||||
/* Bspec: Atomic instruction -> Cache section:
|
||||
|
|
@ -2099,14 +2074,12 @@ lower_lsc_a64_logical_send(const fs_builder &bld, fs_inst *inst)
|
|||
enum lsc_opcode opcode = (enum lsc_opcode) arg;
|
||||
num_components = 1;
|
||||
has_dest = !inst->dst.is_null();
|
||||
inst->desc = lsc_msg_desc(devinfo, opcode, inst->exec_size,
|
||||
inst->desc = lsc_msg_desc(devinfo, opcode,
|
||||
LSC_ADDR_SURFTYPE_FLAT, LSC_ADDR_SIZE_A64,
|
||||
1 /* num_coordinates */,
|
||||
lsc_bits_to_data_size(dst_sz * 8),
|
||||
num_components,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, STORE, L1UC_L3WB),
|
||||
!inst->dst.is_null());
|
||||
LSC_CACHE(devinfo, STORE, L1UC_L3WB));
|
||||
break;
|
||||
}
|
||||
case SHADER_OPCODE_A64_OWORD_BLOCK_READ_LOGICAL:
|
||||
|
|
@ -2116,15 +2089,12 @@ lower_lsc_a64_logical_send(const fs_builder &bld, fs_inst *inst)
|
|||
inst->exec_size = 1;
|
||||
inst->desc = lsc_msg_desc(devinfo,
|
||||
LSC_OP_LOAD,
|
||||
1 /* exec_size */,
|
||||
LSC_ADDR_SURFTYPE_FLAT,
|
||||
LSC_ADDR_SIZE_A64,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
num_components,
|
||||
true /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
break;
|
||||
case SHADER_OPCODE_A64_OWORD_BLOCK_WRITE_LOGICAL:
|
||||
num_components = arg;
|
||||
|
|
@ -2132,15 +2102,12 @@ lower_lsc_a64_logical_send(const fs_builder &bld, fs_inst *inst)
|
|||
inst->exec_size = 1;
|
||||
inst->desc = lsc_msg_desc(devinfo,
|
||||
LSC_OP_STORE,
|
||||
1 /* exec_size */,
|
||||
LSC_ADDR_SURFTYPE_FLAT,
|
||||
LSC_ADDR_SIZE_A64,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
num_components,
|
||||
true /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
false /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
|
||||
break;
|
||||
default:
|
||||
|
|
@ -2333,14 +2300,12 @@ lower_lsc_varying_pull_constant_logical_send(const fs_builder &bld,
|
|||
|
||||
if (alignment >= 4) {
|
||||
inst->desc =
|
||||
lsc_msg_desc(devinfo, LSC_OP_LOAD_CMASK, inst->exec_size,
|
||||
lsc_msg_desc(devinfo, LSC_OP_LOAD_CMASK,
|
||||
surf_type, LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
4 /* num_channels */,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
inst->mlen = lsc_msg_addr_len(devinfo, LSC_ADDR_SIZE_A32, inst->exec_size);
|
||||
|
||||
setup_lsc_surface_descriptors(bld, inst, inst->desc,
|
||||
|
|
@ -2348,14 +2313,12 @@ lower_lsc_varying_pull_constant_logical_send(const fs_builder &bld,
|
|||
surface : surface_handle);
|
||||
} else {
|
||||
inst->desc =
|
||||
lsc_msg_desc(devinfo, LSC_OP_LOAD, inst->exec_size,
|
||||
lsc_msg_desc(devinfo, LSC_OP_LOAD,
|
||||
surf_type, LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
1 /* num_channels */,
|
||||
false /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
inst->mlen = lsc_msg_addr_len(devinfo, LSC_ADDR_SIZE_A32, inst->exec_size);
|
||||
|
||||
setup_lsc_surface_descriptors(bld, inst, inst->desc,
|
||||
|
|
@ -2957,17 +2920,14 @@ brw_fs_lower_uniform_pull_constant_loads(fs_visitor &s)
|
|||
|
||||
inst->sfid = GFX12_SFID_UGM;
|
||||
inst->desc = lsc_msg_desc(devinfo, LSC_OP_LOAD,
|
||||
1 /* simd_size */,
|
||||
surface_handle.file == BAD_FILE ?
|
||||
LSC_ADDR_SURFTYPE_BTI :
|
||||
LSC_ADDR_SURFTYPE_BSS,
|
||||
LSC_ADDR_SIZE_A32,
|
||||
1 /* num_coordinates */,
|
||||
LSC_DATA_SIZE_D32,
|
||||
inst->size_written / 4,
|
||||
true /* transpose */,
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS),
|
||||
true /* has_dest */);
|
||||
LSC_CACHE(devinfo, LOAD, L1STATE_L3MOCS));
|
||||
|
||||
/* Update the original instruction. */
|
||||
inst->opcode = SHADER_OPCODE_SEND;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue