radeonsi: apply the LLVM discard bug workaround to LLVM 13 only
authorMarek Olšák <marek.olsak@amd.com>
Sun, 20 Feb 2022 07:10:27 +0000 (02:10 -0500)
committerMarge Bot <emma+marge@anholt.net>
Tue, 22 Feb 2022 11:41:04 +0000 (11:41 +0000)
It was fixed in LLVM 14.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15098>

src/gallium/drivers/radeonsi/si_shader.h
src/gallium/drivers/radeonsi/si_shader_info.c
src/gallium/drivers/radeonsi/si_state_shaders.cpp

index 24f2e82..5e8314c 100644 (file)
@@ -290,7 +290,7 @@ enum
 
 #define SI_PROFILE_WAVE32                    (1 << 0)
 #define SI_PROFILE_WAVE64                    (1 << 1)
-#define SI_PROFILE_IGNORE_LLVM_DISCARD_BUG   (1 << 2)
+#define SI_PROFILE_IGNORE_LLVM13_DISCARD_BUG (1 << 2)
 #define SI_PROFILE_VS_NO_BINNING             (1 << 3)
 #define SI_PROFILE_PS_NO_BINNING             (1 << 4)
 #define SI_PROFILE_CLAMP_DIV_BY_ZERO         (1 << 5)
index f34dcc4..630b1ef 100644 (file)
@@ -41,7 +41,7 @@ static struct si_shader_profile profiles[] =
    {
       /* Viewperf/Energy isn't affected by the discard bug. */
       {0x17118671, 0xd0102e0c, 0x947f3592, 0xb2057e7b, 0x4da5d9b0},
-      SI_PROFILE_IGNORE_LLVM_DISCARD_BUG,
+      SI_PROFILE_IGNORE_LLVM13_DISCARD_BUG,
    },
    {
       /* Viewperf/Medical */
index 251107a..3a26ace 100644 (file)
@@ -96,8 +96,8 @@ unsigned si_determine_wave_size(struct si_screen *sscreen, struct si_shader *sha
     * in some cases. Alpha test in Wave32 is luckily unaffected.
     */
    if (stage == MESA_SHADER_FRAGMENT && info->base.fs.uses_discard &&
-       !(info && info->options & SI_PROFILE_IGNORE_LLVM_DISCARD_BUG) &&
-       LLVM_VERSION_MAJOR >= 13 && !(sscreen->debug_flags & DBG(W32_PS_DISCARD)))
+       !(info && info->options & SI_PROFILE_IGNORE_LLVM13_DISCARD_BUG) &&
+       LLVM_VERSION_MAJOR == 13 && !(sscreen->debug_flags & DBG(W32_PS_DISCARD)))
       return 64;
 
    /* Debug flags except w32psdiscard don't override the discard bug workaround,