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:
parent
21f169b2fb
commit
12e00be09b
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue