From de9eee7700c436f7fb0aa75e4d918af48983f7cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 26 May 2025 05:52:23 -0400 Subject: [PATCH] radeonsi: support 8 instead of 6 clip planes with gl_ClipVertex Reviewed-by: Qiang Yu Part-of: --- src/gallium/drivers/radeonsi/si_nir_kill_outputs.c | 6 +----- src/gallium/drivers/radeonsi/si_shader.h | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_nir_kill_outputs.c b/src/gallium/drivers/radeonsi/si_nir_kill_outputs.c index fdbeed80b6d..2953f568b99 100644 --- a/src/gallium/drivers/radeonsi/si_nir_kill_outputs.c +++ b/src/gallium/drivers/radeonsi/si_nir_kill_outputs.c @@ -75,11 +75,7 @@ bool si_nir_kill_outputs(nir_shader *nir, const union si_shader_key *key) break; case VARYING_SLOT_CLIP_VERTEX: - /* TODO: We should only kill specific clip planes as required by kill_clip_distance, - * not whole gl_ClipVertex. Lower ClipVertex in NIR. - */ - if ((key->ge.opt.kill_clip_distances & SI_USER_CLIP_PLANE_MASK) == - SI_USER_CLIP_PLANE_MASK) + if (key->ge.opt.kill_clip_distances == SI_USER_CLIP_PLANE_MASK) progress |= nir_remove_sysval_output(intr, MESA_SHADER_FRAGMENT); break; diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index 36c4df7df1e..76b2e18d788 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -129,7 +129,7 @@ struct nir_instr; #define SI_MAX_ATTRIBS 16 #define SI_MAX_VS_OUTPUTS 40 -#define SI_USER_CLIP_PLANE_MASK 0x3F +#define SI_USER_CLIP_PLANE_MASK BITFIELD_MASK(8) #define INTERP_MODE_COLOR INTERP_MODE_COUNT