aco: don't split swizzled store_buffer_amd on GFX9+
authorRhys Perry <pendingchaos02@gmail.com>
Wed, 19 Oct 2022 14:25:51 +0000 (15:25 +0100)
committerMarge Bot <emma+marge@anholt.net>
Mon, 31 Oct 2022 14:33:43 +0000 (14:33 +0000)
This isn't necessary.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19228>

src/amd/compiler/aco_instruction_selection.cpp

index 91d8c5c..393fbf6 100644 (file)
@@ -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;