radeonsi: apply the LLVM discard bug workaround to LLVM 13 only

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>
This commit is contained in:
Marek Olšák 2022-02-20 02:10:27 -05:00 committed by Marge Bot
parent 21f169b2fb
commit 12e00be09b
3 changed files with 4 additions and 4 deletions

View 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)

View 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 */

View 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,