ac/nir: adjust an assertion for D16 on GFX6-GFX7
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 4 Jun 2020 07:28:16 +0000 (09:28 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 8 Jun 2020 06:45:32 +0000 (08:45 +0200)
16-bit types can be used with MUBUF on GFX6-GFX7.

Fixes: c3e0ba52a0a ("ac/nir: support 16-bit data in buffer_load_format opcodes")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5325>

src/amd/llvm/ac_llvm_build.c

index ef4e79c85f0e8e8dcbb9a210c484b5d6d6bceb6f..69b1deaa8b275597ded358c78b076e43c29bb343 100644 (file)
@@ -1315,7 +1315,8 @@ ac_build_buffer_load_common(struct ac_llvm_context *ctx,
        char name[256], type_name[8];
 
        /* D16 is only supported on gfx8+ */
-       assert((channel_type != ctx->f16 && channel_type != ctx->i16) ||
+       assert(!use_format ||
+              (channel_type != ctx->f16 && channel_type != ctx->i16) ||
               ctx->chip_class >= GFX8);
 
        LLVMTypeRef type = func > 1 ? LLVMVectorType(channel_type, func) : channel_type;