diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c index 5e151e7d858..dcc6b157155 100644 --- a/src/asahi/compiler/agx_compile.c +++ b/src/asahi/compiler/agx_compile.c @@ -2123,7 +2123,8 @@ agx_fp32_varying_mask(nir_shader *nir) } static nir_mem_access_size_align -mem_access_size_align_cb(nir_intrinsic_op intrin, uint8_t bytes, uint32_t align, +mem_access_size_align_cb(nir_intrinsic_op intrin, uint8_t bytes, + uint8_t input_bit_size, uint32_t align, uint32_t align_offset, bool offset_is_const, const void *cb_data) { diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index bdc3d45fa68..b8d0fcef558 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -5106,6 +5106,7 @@ typedef struct { typedef nir_mem_access_size_align (*nir_lower_mem_access_bit_sizes_cb)(nir_intrinsic_op intrin, uint8_t bytes, + uint8_t bit_size, uint32_t align_mul, uint32_t align_offset, bool offset_is_const, diff --git a/src/compiler/nir/nir_lower_mem_access_bit_sizes.c b/src/compiler/nir/nir_lower_mem_access_bit_sizes.c index 5ca3bcd4bb9..3939ad4db04 100644 --- a/src/compiler/nir/nir_lower_mem_access_bit_sizes.c +++ b/src/compiler/nir/nir_lower_mem_access_bit_sizes.c @@ -89,7 +89,7 @@ lower_mem_load(nir_builder *b, nir_intrinsic_instr *intrin, nir_mem_access_size_align requested = mem_access_size_align_cb(intrin->intrinsic, bytes_read, - align_mul, whole_align_offset, + bit_size, align_mul, whole_align_offset, offset_is_const, cb_data); assert(util_is_power_of_two_nonzero(align_mul)); @@ -112,7 +112,7 @@ lower_mem_load(nir_builder *b, nir_intrinsic_instr *intrin, const uint32_t chunk_align = nir_combined_align(align_mul, chunk_align_offset); requested = mem_access_size_align_cb(intrin->intrinsic, bytes_left, - align_mul, chunk_align_offset, + bit_size, align_mul, chunk_align_offset, offset_is_const, cb_data); unsigned chunk_bytes; @@ -253,7 +253,7 @@ lower_mem_store(nir_builder *b, nir_intrinsic_instr *intrin, nir_mem_access_size_align requested = mem_access_size_align_cb(intrin->intrinsic, bytes_written, - align_mul, whole_align_offset, + bit_size, align_mul, whole_align_offset, offset_is_const, cb_data); assert(util_is_power_of_two_nonzero(align_mul)); @@ -289,7 +289,7 @@ lower_mem_store(nir_builder *b, nir_intrinsic_instr *intrin, (whole_align_offset + chunk_start) % align_mul; requested = mem_access_size_align_cb(intrin->intrinsic, max_chunk_bytes, - align_mul, chunk_align_offset, + bit_size, align_mul, chunk_align_offset, offset_is_const, cb_data); const uint32_t chunk_bytes = diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index a19547d61a6..ef174ff1889 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -1368,7 +1368,7 @@ bool combine_all_memory_barriers(nir_intrinsic_instr *a, static nir_mem_access_size_align get_mem_access_size_align(nir_intrinsic_op intrin, uint8_t bytes, - uint32_t align_mul, uint32_t align_offset, + uint8_t bit_size, uint32_t align_mul, uint32_t align_offset, bool offset_is_const, const void *cb_data) { const uint32_t align = nir_combined_align(align_mul, align_offset); diff --git a/src/panfrost/compiler/bifrost_compile.c b/src/panfrost/compiler/bifrost_compile.c index 44389370e77..a13557b0a3c 100644 --- a/src/panfrost/compiler/bifrost_compile.c +++ b/src/panfrost/compiler/bifrost_compile.c @@ -4330,7 +4330,8 @@ bifrost_nir_lower_blend_components(struct nir_builder *b, nir_instr *instr, } static nir_mem_access_size_align -mem_access_size_align_cb(nir_intrinsic_op intrin, uint8_t bytes, uint32_t align, +mem_access_size_align_cb(nir_intrinsic_op intrin, uint8_t bytes, + uint8_t input_bit_size, uint32_t align, uint32_t align_offset, bool offset_is_const, const void *cb_data) {