From 99a60ed3786a3224e7ca0930d2c19d5f2fd3727b Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 21 May 2021 11:37:45 -0400 Subject: [PATCH] util/primconvert: handle multidraws in primconvert once a draw reaches primconvert, it should never be able to reach the driver until all draw operations have been converted as necessary Reviewed-by: Rob Clark Part-of: --- src/gallium/auxiliary/indices/u_primconvert.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/indices/u_primconvert.c b/src/gallium/auxiliary/indices/u_primconvert.c index d376841e72e..d8704237e49 100644 --- a/src/gallium/auxiliary/indices/u_primconvert.c +++ b/src/gallium/auxiliary/indices/u_primconvert.c @@ -139,7 +139,13 @@ util_primconvert_draw_vbo(struct primconvert_context *pc, } if (num_draws > 1) { - util_draw_multi(pc->pipe, info, drawid_offset, indirect, draws, num_draws); + unsigned drawid = drawid_offset; + for (unsigned i = 0; i < num_draws; i++) { + if (draws[i].count && info->instance_count) + util_primconvert_draw_vbo(pc, info, drawid, NULL, &draws[i], 1); + if (info->increment_draw_id) + drawid++; + } return; }