diff --git a/src/gallium/drivers/asahi/agx_nir_lower_bindings.c b/src/gallium/drivers/asahi/agx_nir_lower_bindings.c index cd27e079a2d..b8daeaa758a 100644 --- a/src/gallium/drivers/asahi/agx_nir_lower_bindings.c +++ b/src/gallium/drivers/asahi/agx_nir_lower_bindings.c @@ -122,8 +122,9 @@ lower(nir_builder *b, nir_instr *instr, void *data) * The GL spec says out-of-bounds image indexing is undefined, but * faulting is not acceptable for robustness. */ - index = - nir_umin(b, index, nir_imm_int(b, b->shader->info.num_images - 1)); + index = nir_umin( + b, index, + nir_imm_intN_t(b, b->shader->info.num_images - 1, index->bit_size)); index = nir_iadd_imm(b, nir_imul_imm(b, index, 2), offset); nir_src_rewrite(&intr->src[0], nir_load_texture_handle_agx(b, index)); @@ -155,8 +156,9 @@ lower(nir_builder *b, nir_instr *instr, void *data) index = nir_imm_int(b, tex->texture_index); /* As above */ - index = - nir_umin(b, index, nir_imm_int(b, b->shader->info.num_textures - 1)); + index = nir_umin( + b, index, + nir_imm_intN_t(b, b->shader->info.num_textures - 1, index->bit_size)); nir_tex_instr_add_src(tex, nir_tex_src_texture_handle, nir_load_texture_handle_agx(b, index)); diff --git a/src/gallium/drivers/asahi/agx_nir_lower_sysvals.c b/src/gallium/drivers/asahi/agx_nir_lower_sysvals.c index ade2ea8058a..5b5919a6d43 100644 --- a/src/gallium/drivers/asahi/agx_nir_lower_sysvals.c +++ b/src/gallium/drivers/asahi/agx_nir_lower_sysvals.c @@ -117,8 +117,9 @@ load_texture_handle(nir_builder *b, nir_intrinsic_instr *intr, void *base) nir_load_sysval_agx(b, 1, 64, .desc_set = stage_table(b), .binding = (uintptr_t)base, .flags = ~0); - return nir_vec2(b, nir_u2u32(b, uniform), - nir_imul_imm(b, intr->src[0].ssa, AGX_TEXTURE_DESC_STRIDE)); + return nir_vec2( + b, nir_u2u32(b, uniform), + nir_imul_imm(b, nir_u2u32(b, intr->src[0].ssa), AGX_TEXTURE_DESC_STRIDE)); } static nir_def *