Module: Mesa
Branch: main
Commit: fee5e379f4cf6539b59e25c09f92d5d83d2eb8f3
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fee5e379f4cf6539b59e25c09f92d5d83d2eb8f3

Author: Samuel Pitoiset <[email protected]>
Date:   Thu Oct 20 04:40:20 2022 +0000

radv/llvm: do not set COMPR for exports on GFX11

Use 0x3 channel mask instead.

Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19216>

---

 src/amd/vulkan/radv_nir_to_llvm.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/amd/vulkan/radv_nir_to_llvm.c 
b/src/amd/vulkan/radv_nir_to_llvm.c
index 47ae7128529..1cd57a1999c 100644
--- a/src/amd/vulkan/radv_nir_to_llvm.c
+++ b/src/amd/vulkan/radv_nir_to_llvm.c
@@ -668,7 +668,6 @@ si_llvm_init_export_args(struct radv_shader_context *ctx, 
LLVMValueRef *values,
             packed = packf(&ctx->ac, pack_args);
             args->out[chan] = ac_to_float(&ctx->ac, packed);
          }
-         args->compr = 1; /* COMPR flag */
       }
 
       /* Pack i16/u16. */
@@ -681,8 +680,16 @@ si_llvm_init_export_args(struct radv_shader_context *ctx, 
LLVMValueRef *values,
             packed = packi(&ctx->ac, pack_args, is_int8 ? 8 : is_int10 ? 10 : 
16, chan == 1);
             args->out[chan] = ac_to_float(&ctx->ac, packed);
          }
-         args->compr = 1; /* COMPR flag */
       }
+
+      if (packf || packi) {
+         if (ctx->options->gfx_level >= GFX11) {
+            args->enabled_channels = 0x3;
+         } else {
+            args->compr = 1; /* COMPR flag */
+         }
+      }
+
       return;
    }
 

Reply via email to