diff --git a/.pick_status.json b/.pick_status.json index dab7a7b6bbd..015a28c0b5c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -14,7 +14,7 @@ "description": "ac/nir: fix calculation of aligned_new_size", "nominated": true, "nomination_type": 4, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/common/nir/ac_nir.c b/src/amd/common/nir/ac_nir.c index 358cf1cfe8c..01c06b5702d 100644 --- a/src/amd/common/nir/ac_nir.c +++ b/src/amd/common/nir/ac_nir.c @@ -542,8 +542,9 @@ ac_nir_mem_vectorize_callback(unsigned align_mul, unsigned align_offset, unsigne /* Align the size to what the hw supports. */ unsigned unaligned_new_size = num_components * bit_size; - unsigned aligned_new_size = align_load_store_size(config->gfx_level, unaligned_new_size, - uses_smem, is_shared); + unsigned aligned_new_size = nir_round_up_components(num_components) * bit_size; + aligned_new_size = align_load_store_size(config->gfx_level, aligned_new_size, + uses_smem, is_shared); if (uses_smem) { /* Maximize SMEM vectorization except for LLVM, which suffers from SGPR and VGPR spilling.