From ae8d89260c6c40864d1a50af51801b7eae6c3448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 9 Oct 2020 17:40:17 -0400 Subject: [PATCH] radeonsi: don't check info->count == 0 it won't work with multi draws Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_state_draw.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index 27acc4a1340..2ee204b23e8 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -1739,18 +1739,12 @@ static void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *i (!sctx->screen->options.prim_restart_tri_strips_only || (prim != PIPE_PRIM_TRIANGLE_STRIP && prim != PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY)); - if (likely(!info->indirect)) { - /* GFX6-GFX7 treat instance_count==0 as instance_count==1. There is - * no workaround for indirect draws, but we can at least skip - * direct draws. - */ - if (unlikely(!instance_count)) - return; - - /* Handle count == 0. */ - if (unlikely(!info->count && (index_size || !info->count_from_stream_output))) - return; - } + /* GFX6-GFX7 treat instance_count==0 as instance_count==1. There is + * no workaround for indirect draws, but we can at least skip + * direct draws. + */ + if (unlikely(!info->indirect && !instance_count)) + return; struct si_shader_selector *vs = sctx->vs_shader.cso; if (unlikely(!vs || sctx->num_vertex_elements < vs->num_vs_inputs ||