From 79b2fa785d51d21e56d3647ee5abb6cb78edab7a Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Mon, 20 Oct 2025 10:44:07 +0100 Subject: [PATCH] amd/lower_mem_access_bit_sizes: don't create subdword UBO loads with LLVM These are unsupported. Signed-off-by: Rhys Perry Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14127 Fixes: fbf0399517ae ("amd/lower_mem_access_bit_sizes: lower all SMEM instructions to supported sizes") Reviewed-by: Georg Lehmann Part-of: --- src/amd/common/nir/ac_nir_lower_mem_access_bit_sizes.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/amd/common/nir/ac_nir_lower_mem_access_bit_sizes.c b/src/amd/common/nir/ac_nir_lower_mem_access_bit_sizes.c index bfee117288a..dfa0151bd10 100644 --- a/src/amd/common/nir/ac_nir_lower_mem_access_bit_sizes.c +++ b/src/amd/common/nir/ac_nir_lower_mem_access_bit_sizes.c @@ -122,8 +122,11 @@ lower_mem_access_cb(nir_intrinsic_op intrin, uint8_t bytes, uint8_t bit_size, ui } if (is_smem) { + const bool supported_subdword = cb_data->gfx_level >= GFX12 && + intrin != nir_intrinsic_load_push_constant && + (!cb_data->use_llvm || intrin != nir_intrinsic_load_ubo); + /* Round up subdword loads if unsupported. */ - const bool supported_subdword = cb_data->gfx_level >= GFX12 && intrin != nir_intrinsic_load_push_constant; if (bit_size < 32 && (bytes >= 3 || !supported_subdword)) bytes = align(bytes, 4);