v3d: Use util_draw_multi() helper
authorRob Clark <robdclark@chromium.org>
Sun, 21 Mar 2021 17:13:04 +0000 (10:13 -0700)
committerMarge Bot <eric+marge@anholt.net>
Sat, 27 Mar 2021 19:30:04 +0000 (19:30 +0000)
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9742>

src/gallium/drivers/v3d/v3dx_draw.c

index 0b76ef8..5a708ad 100644 (file)
@@ -22,6 +22,7 @@
  */
 
 #include "util/u_blitter.h"
+#include "util/u_draw.h"
 #include "util/u_prim.h"
 #include "util/format/u_format.h"
 #include "util/u_pack_color.h"
@@ -1097,16 +1098,10 @@ v3d_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info,
              const struct pipe_draw_start_count *draws,
              unsigned num_draws)
 {
-       if (num_draws > 1) {
-           struct pipe_draw_info tmp_info = *info;
-
-           for (unsigned i = 0; i < num_draws; i++) {
-              v3d_draw_vbo(pctx, &tmp_info, indirect, &draws[i], 1);
-              if (tmp_info.increment_draw_id)
-                 tmp_info.drawid++;
-           }
-           return;
-       }
+        if (num_draws > 1) {
+                util_draw_multi(pctx, info, indirect, draws, num_draws);
+                return;
+        }
 
         if (!indirect && (!draws[0].count || !info->instance_count))
            return;