From f1b9b7f95566a7d89e5da90c55ac5d9b7ad8a4a9 Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Thu, 13 Apr 2023 15:55:07 -0700 Subject: [PATCH] intel/fs: Update SSBO & shared uniform block loads for Xe2 Note: lower_lsc_block_logical_send() most likely stills needs some related updates. Ref: a358b97c586 ("intel/fs: optimize uniform SSBO & shared loads") Signed-off-by: Jordan Justen Reviewed-by: Caio Oliveira Part-of: --- src/intel/compiler/brw_fs_nir.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index a66ab18705d..b3428d2f97b 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -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)); } - 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; 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; ubld.emit(SHADER_OPCODE_UNALIGNED_OWORD_BLOCK_READ_LOGICAL, 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;