diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c
index 5178313d803..7ae85ce74cc 100644
--- a/src/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/freedreno/ir3/ir3_compiler_nir.c
@@ -1270,29 +1270,6 @@ emit_intrinsic_image_size_tex(struct ir3_context *ctx, nir_intrinsic_instr *intr
ir3_split_dest(b, tmp, sam, 0, 4);
- /* get_size instruction returns size in bytes instead of texels
- * for imageBuffer, so we need to divide it by the pixel size
- * of the image format.
- *
- * TODO: This is at least true on a5xx. Check other gens.
- */
- if (nir_intrinsic_image_dim(intr) == GLSL_SAMPLER_DIM_BUF) {
- /* Since all the possible values the divisor can take are
- * power-of-two (4, 8, or 16), the division is implemented
- * as a shift-right.
- * During shader setup, the log2 of the image format's
- * bytes-per-pixel should have been emitted in 2nd slot of
- * image_dims. See ir3_shader::emit_image_dims().
- */
- const struct ir3_const_state *const_state =
- ir3_const_state(ctx->so);
- unsigned cb = regid(const_state->offsets.image_dims, 0) +
- const_state->image_dims.off[nir_src_as_uint(intr->src[0])];
- struct ir3_instruction *aux = create_uniform(b, cb + 1);
-
- tmp[0] = ir3_SHR_B(b, tmp[0], 0, aux, 0);
- }
-
for (unsigned i = 0; i < ncoords; i++)
dst[i] = tmp[i];
diff --git a/src/freedreno/registers/adreno/a5xx.xml b/src/freedreno/registers/adreno/a5xx.xml
index e298c15bd16..e4991f270d3 100644
--- a/src/freedreno/registers/adreno/a5xx.xml
+++ b/src/freedreno/registers/adreno/a5xx.xml
@@ -2905,11 +2905,20 @@ different border-color states per texture.. Looks something like:
+
+
Pitch in bytes (so actually stride)
+