From 9859f5b4d2048467dd2a1104e79ec5158290ec36 Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Wed, 7 Sep 2022 00:22:13 -0700 Subject: [PATCH] intel/compiler/xe2: Account for reg_unit() in TCS intrinsics Reviewed-by: Jordan Justen Part-of: --- src/intel/compiler/brw_fs_nir.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index 7c67eb7..9d19f15 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -2735,7 +2735,8 @@ fs_visitor::get_tcs_multi_patch_icp_handle(const fs_builder &bld, */ bld.emit(SHADER_OPCODE_MOV_INDIRECT, icp_handle, start, icp_offset_bytes, - brw_imm_ud(brw_tcs_prog_key_input_vertices(tcs_key) * REG_SIZE)); + brw_imm_ud(brw_tcs_prog_key_input_vertices(tcs_key) * REG_SIZE * + reg_unit(devinfo))); return icp_handle; } @@ -2843,7 +2844,7 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld, if (inst->offset == 0 && indirect_offset.file == BAD_FILE) { assert(type_sz(dst.type) == 4); inst->dst = bld.vgrf(dst.type, 4); - inst->size_written = 4 * REG_SIZE; + inst->size_written = 4 * REG_SIZE * reg_unit(devinfo); bld.MOV(dst, offset(inst->dst, bld, 3)); } break; @@ -2874,7 +2875,7 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld, fs_reg tmp = bld.vgrf(dst.type, read_components); inst = bld.emit(SHADER_OPCODE_URB_READ_LOGICAL, tmp, srcs, ARRAY_SIZE(srcs)); - inst->size_written = read_components * REG_SIZE; + inst->size_written = read_components * REG_SIZE * reg_unit(devinfo); for (unsigned i = 0; i < instr->num_components; i++) { bld.MOV(offset(dst, bld, i), offset(tmp, bld, i + first_component)); @@ -2882,7 +2883,7 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld, } else { inst = bld.emit(SHADER_OPCODE_URB_READ_LOGICAL, dst, srcs, ARRAY_SIZE(srcs)); - inst->size_written = instr->num_components * REG_SIZE; + inst->size_written = instr->num_components * REG_SIZE * reg_unit(devinfo); } inst->offset = imm_offset; inst->mlen = 1; @@ -2899,7 +2900,7 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld, fs_reg tmp = bld.vgrf(dst.type, read_components); inst = bld.emit(SHADER_OPCODE_URB_READ_LOGICAL, tmp, srcs, ARRAY_SIZE(srcs)); - inst->size_written = read_components * REG_SIZE; + inst->size_written = read_components * REG_SIZE * reg_unit(devinfo); for (unsigned i = 0; i < instr->num_components; i++) { bld.MOV(offset(dst, bld, i), offset(tmp, bld, i + first_component)); @@ -2907,7 +2908,7 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld, } else { inst = bld.emit(SHADER_OPCODE_URB_READ_LOGICAL, dst, srcs, ARRAY_SIZE(srcs)); - inst->size_written = instr->num_components * REG_SIZE; + inst->size_written = instr->num_components * REG_SIZE * reg_unit(devinfo); } inst->offset = imm_offset; inst->mlen = 2; -- 2.7.4