Mesa (main): radv: Remove num_viewports from radv_skip_ngg_culling.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jul 16 13:20:03 UTC 2021


Module: Mesa
Branch: main
Commit: d07e5bde751a7f85ded96b35660075d8f782b49c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d07e5bde751a7f85ded96b35660075d8f782b49c

Author: Timur Kristóf <timur.kristof at gmail.com>
Date:   Thu Jul 15 17:19:56 2021 +0200

radv: Remove num_viewports from radv_skip_ngg_culling.

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 <timur.kristof at gmail.com>
Reviewed-by: Daniel Schürmann <daniel at schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11910>

---

 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 66ebd70ad34..b68e0796a68 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)



More information about the mesa-commit mailing list