intel/fs: Update SSBO & shared uniform block loads for Xe2
Note: lower_lsc_block_logical_send() most likely stills needs some
related updates.
Ref: a358b97c58
("intel/fs: optimize uniform SSBO & shared loads")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25020>
This commit is contained in:
@@ -5294,7 +5294,8 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
|
|||||||
srcs[SURFACE_LOGICAL_SRC_SURFACE] = fs_reg(brw_imm_ud(GFX7_BTI_SLM));
|
srcs[SURFACE_LOGICAL_SRC_SURFACE] = fs_reg(brw_imm_ud(GFX7_BTI_SLM));
|
||||||
}
|
}
|
||||||
|
|
||||||
const unsigned total_dwords = ALIGN(instr->num_components, REG_SIZE / 4);
|
const unsigned total_dwords = ALIGN(instr->num_components,
|
||||||
|
REG_SIZE * reg_unit(devinfo) / 4);
|
||||||
unsigned loaded_dwords = 0;
|
unsigned loaded_dwords = 0;
|
||||||
|
|
||||||
const fs_builder ubld1 = bld.exec_all().group(1, 0);
|
const fs_builder ubld1 = bld.exec_all().group(1, 0);
|
||||||
@@ -5325,7 +5326,8 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
|
|||||||
const fs_builder &ubld = block <= 8 ? ubld8 : ubld16;
|
const fs_builder &ubld = block <= 8 ? ubld8 : ubld16;
|
||||||
ubld.emit(SHADER_OPCODE_UNALIGNED_OWORD_BLOCK_READ_LOGICAL,
|
ubld.emit(SHADER_OPCODE_UNALIGNED_OWORD_BLOCK_READ_LOGICAL,
|
||||||
retype(byte_offset(packed_consts, loaded_dwords * 4), BRW_REGISTER_TYPE_UD),
|
retype(byte_offset(packed_consts, loaded_dwords * 4), BRW_REGISTER_TYPE_UD),
|
||||||
srcs, SURFACE_LOGICAL_NUM_SRCS)->size_written = align(block_bytes, REG_SIZE);
|
srcs, SURFACE_LOGICAL_NUM_SRCS)->size_written =
|
||||||
|
align(block_bytes, REG_SIZE * reg_unit(devinfo));
|
||||||
|
|
||||||
loaded_dwords += block;
|
loaded_dwords += block;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user