From d07e5bde751a7f85ded96b35660075d8f782b49c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timur=20Krist=C3=B3f?= Date: Thu, 15 Jul 2021 17:19:56 +0200 Subject: [PATCH] radv: Remove num_viewports from radv_skip_ngg_culling. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit NGG culling is not compiled into shaders that can use multiple viewports, so it's not necessary to check it here. Fixes: 9a95f5487f5ab83fa44bea12afa30cf1a25fc9db Signed-off-by: Timur Kristóf Reviewed-by: Daniel Schürmann Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 66ebd70..b68e079 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -5664,17 +5664,15 @@ enum { ALWAYS_INLINE static bool radv_skip_ngg_culling(bool has_tess, const unsigned vtx_cnt, - bool indirect, unsigned num_viewports) + bool indirect) { /* If we have to draw only a few vertices, we get better latency if * we disable NGG culling. * * When tessellation is used, what matters is the number of tessellated * vertices, so let's always assume it's not a small draw. - * - * TODO: Figure out how to do culling with multiple viewports efficiently. */ - return !has_tess && !indirect && vtx_cnt < 512 && num_viewports == 1; + return !has_tess && !indirect && vtx_cnt < 512; } ALWAYS_INLINE static uint32_t @@ -5757,9 +5755,7 @@ radv_emit_ngg_culling_state(struct radv_cmd_buffer *cmd_buffer, const struct rad * For small draw calls, we disable culling by setting the SGPR to 0. */ const bool skip = - radv_skip_ngg_culling( - stage == MESA_SHADER_TESS_EVAL, draw_info->count, draw_info->indirect, - cmd_buffer->state.dynamic.viewport.count); + radv_skip_ngg_culling(stage == MESA_SHADER_TESS_EVAL, draw_info->count, draw_info->indirect); /* See if anything changed. */ if (!dirty && skip == cmd_buffer->state.last_nggc_skip) -- 2.7.4