Mesa (master): freedreno: Use multi-draw helper

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Mar 20 20:42:51 UTC 2021


Module: Mesa
Branch: master
Commit: 57659323751e40be49a4a102a312ca65a3c4d152
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=57659323751e40be49a4a102a312ca65a3c4d152

Author: Rob Clark <robdclark at chromium.org>
Date:   Sun Mar 14 11:13:58 2021 -0700

freedreno: Use multi-draw helper

In the normal case, we'll be pushing multi-draw (eventually) down into
the backend, but there are still a few remaining edge cases where we
can't deal with it.

Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581>

---

 src/gallium/drivers/freedreno/freedreno_draw.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/src/gallium/drivers/freedreno/freedreno_draw.c b/src/gallium/drivers/freedreno/freedreno_draw.c
index ee36da81087..9893a11d410 100644
--- a/src/gallium/drivers/freedreno/freedreno_draw.c
+++ b/src/gallium/drivers/freedreno/freedreno_draw.c
@@ -257,19 +257,13 @@ update_draw_stats(struct fd_context *ctx, const struct pipe_draw_info *info,
 
 static void
 fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info,
-            const struct pipe_draw_indirect_info *indirect,
-            const struct pipe_draw_start_count *draws,
-            unsigned num_draws)
+		const struct pipe_draw_indirect_info *indirect,
+		const struct pipe_draw_start_count *draws,
+		unsigned num_draws)
 	in_dt
 {
 	if (num_draws > 1) {
-		struct pipe_draw_info tmp_info = *info;
-
-		for (unsigned i = 0; i < num_draws; i++) {
-			fd_draw_vbo(pctx, &tmp_info, indirect, &draws[i], 1);
-			if (tmp_info.increment_draw_id)
-				tmp_info.drawid++;
-		}
+		util_draw_multi(pctx, info, indirect, draws, num_draws);
 		return;
 	}
 



More information about the mesa-commit mailing list