diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 91d8c5c69d0..393fbf6d6e4 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -5157,8 +5157,9 @@ store_vmem_mubuf(isel_context* ctx, Temp src, Temp descriptor, Temp voffset, Tem unsigned write_count = 0; Temp write_datas[32]; unsigned offsets[32]; - split_buffer_store(ctx, NULL, false, RegType::vgpr, src, write_mask, swizzled ? 4 : 16, - &write_count, write_datas, offsets); + split_buffer_store(ctx, NULL, false, RegType::vgpr, src, write_mask, + swizzled && ctx->program->gfx_level <= GFX8 ? 4 : 16, &write_count, + write_datas, offsets); for (unsigned i = 0; i < write_count; i++) { unsigned const_offset = offsets[i] + base_const_offset;