From b97c4bfd58ea3725aa91231b1fcf3903f020aa3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 8 Jun 2025 23:54:14 -0400 Subject: [PATCH] radv: enable W/front/back face NGG culling with multiple viewports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is supported. Reviewed-by: Samuel Pitoiset Reviewed-by: Timur Kristóf Part-of: --- src/amd/vulkan/radv_shader.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index d6d779c594f..95fd4b04bea 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -691,10 +691,6 @@ radv_consider_culling(const struct radv_physical_device *pdev, struct nir_shader if (is_meta_shader(nir)) return false; - /* We don't support culling with multiple viewports yet. */ - if (nir->info.outputs_written & (VARYING_BIT_VIEWPORT | VARYING_BIT_VIEWPORT_MASK)) - return false; - /* We don't support culling with vertex shader prologs. */ if (info->vs.has_prolog) return false; @@ -804,6 +800,7 @@ radv_lower_ngg(struct radv_device *device, struct radv_shader_stage *ngg_stage, options.has_gs_invocations_query = pdev->info.gfx_level < GFX11; options.has_gs_primitives_query = pdev->info.gfx_level < GFX11; options.force_vrs = info->force_vrs_per_vertex; + options.skip_viewport_state_culling = nir->info.outputs_written & (VARYING_BIT_VIEWPORT | VARYING_BIT_VIEWPORT_MASK); if (nir->info.stage == MESA_SHADER_VERTEX || nir->info.stage == MESA_SHADER_TESS_EVAL) { assert(info->is_ngg);