diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c index cdc730c89ab..677f3f12dc3 100644 --- a/src/asahi/compiler/agx_compile.c +++ b/src/asahi/compiler/agx_compile.c @@ -1894,7 +1894,7 @@ agx_emit_alu(agx_builder *b, nir_alu_instr *instr) BINOP(iand, and); BINOP(ior, or); BINOP(ixor, xor); - BINOP(interleave_agx, intl); + BINOP(interleave, intl); case nir_op_fadd: if (instr->def.bit_size == 16) diff --git a/src/asahi/compiler/agx_nir_opt_preamble.c b/src/asahi/compiler/agx_nir_opt_preamble.c index 5bff88fee1f..91fbb3721e5 100644 --- a/src/asahi/compiler/agx_nir_opt_preamble.c +++ b/src/asahi/compiler/agx_nir_opt_preamble.c @@ -169,7 +169,7 @@ alu_cost(nir_alu_instr *alu) case nir_op_u2fmp: case nir_op_u2f16: case nir_op_u2f32: - case nir_op_interleave_agx: + case nir_op_interleave: /* IC */ return 4.0; diff --git a/src/asahi/libagx/compression.cl b/src/asahi/libagx/compression.cl index 4021bd9a9b0..1097dd19ffd 100644 --- a/src/asahi/libagx/compression.cl +++ b/src/asahi/libagx/compression.cl @@ -43,7 +43,7 @@ index_metadata(uint3 c, uint width, uint height, uint layer_stride) uint intl_mask = (1 << intl_bits) - 1; uint2 intl_coords = c.xy & intl_mask; - return nir_interleave_agx(intl_coords.x, intl_coords.y) + + return nir_interleave(intl_coords.x, intl_coords.y) + ((major_coord & ~intl_mask) << intl_bits) + (layer_stride * c.z); } diff --git a/src/asahi/libagx/libagx_intrinsics.h b/src/asahi/libagx/libagx_intrinsics.h index fdad0a60c41..1c54ed912c8 100644 --- a/src/asahi/libagx/libagx_intrinsics.h +++ b/src/asahi/libagx/libagx_intrinsics.h @@ -7,7 +7,7 @@ #include "compiler/libcl/libcl.h" -uint32_t nir_interleave_agx(uint16_t x, uint16_t y); +uint32_t nir_interleave(uint16_t x, uint16_t y); void nir_doorbell_agx(uint8_t value); void nir_stack_map_agx(uint16_t index, uint32_t address); uint32_t nir_stack_unmap_agx(uint16_t index); diff --git a/src/asahi/libagx/texture.cl b/src/asahi/libagx/texture.cl index 8fdcd7158da..f6bf75a8cae 100644 --- a/src/asahi/libagx/texture.cl +++ b/src/asahi/libagx/texture.cl @@ -133,7 +133,7 @@ libagx_twiddle_coordinates(ushort2 coord, uint16_t tile_w_px, uint32_t tile_mask = upsample(tile_mask_vec.y, tile_mask_vec.x); uint32_t coord_xy = upsample(coord.y, coord.x); ushort2 offs_px = as_ushort2(coord_xy & tile_mask); - uint32_t offset_within_tile_px = nir_interleave_agx(offs_px.x, offs_px.y); + uint32_t offset_within_tile_px = nir_interleave(offs_px.x, offs_px.y); /* Get the coordinates of the corner of the tile */ ushort2 tile_px = as_ushort2(coord_xy & ~tile_mask); diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py index 23a39158b87..28d9f130a83 100644 --- a/src/compiler/nir/nir_opcodes.py +++ b/src/compiler/nir/nir_opcodes.py @@ -1415,7 +1415,7 @@ opcode("bounds_agx", 0, tint, [0, 0, 0], [tint, tint, tint], False, "", "src1 <= src2 ? src0 : 0") -binop_convert("interleave_agx", tuint32, tuint16, "", """ +binop_convert("interleave", tuint32, tuint16, "", """ dst = 0; for (unsigned bit = 0; bit < 16; bit++) { dst |= (src0 & (1 << bit)) << bit;