From: Marek Olšák <marek.ol...@amd.com>

It seems to be the same, but this doesn't use integer division with
a variable divisor.
---
 src/gallium/drivers/radeonsi/si_state_draw.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c 
b/src/gallium/drivers/radeonsi/si_state_draw.c
index c72c59b29d4..09dd4a7e098 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -308,24 +308,26 @@ static bool si_emit_derived_tess_state(struct si_context 
*sctx,
                return true; /* true if the context rolls */
        }
        return false;
 }
 
 static unsigned si_num_prims_for_vertices(const struct pipe_draw_info *info)
 {
        switch (info->mode) {
        case PIPE_PRIM_PATCHES:
                return info->count / info->vertices_per_patch;
+       case PIPE_PRIM_POLYGON:
+               return info->count >= 3;
        case SI_PRIM_RECTANGLE_LIST:
                return info->count / 3;
        default:
-               return u_prims_for_vertices(info->mode, info->count);
+               return u_decomposed_prims_for_vertices(info->mode, info->count);
        }
 }
 
 static unsigned
 si_get_init_multi_vgt_param(struct si_screen *sscreen,
                            union si_vgt_param_key *key)
 {
        STATIC_ASSERT(sizeof(union si_vgt_param_key) == 4);
        unsigned max_primgroup_in_wave = 2;
 
-- 
2.17.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to