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

Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Mar 25 15:04:43 2021 -0400

aux/draw: pass the full draw params through to draw_pt_arrays_restart()

multidraw depth 1.5: loop in draw_pt_arrays_restart()

Reviewed-by: Dave Airlie <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9844>

---

 src/gallium/auxiliary/draw/draw_pt.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pt.c 
b/src/gallium/auxiliary/draw/draw_pt.c
index df4179cbc25..ad5257ce369 100644
--- a/src/gallium/auxiliary/draw/draw_pt.c
+++ b/src/gallium/auxiliary/draw/draw_pt.c
@@ -411,7 +411,8 @@ prim_restart_loop(struct draw_context *draw,
 static void
 draw_pt_arrays_restart(struct draw_context *draw,
                        const struct pipe_draw_info *info,
-                       const struct pipe_draw_start_count *draw_info)
+                       const struct pipe_draw_start_count *draw_info,
+                       unsigned num_draws)
 {
    const unsigned prim = info->mode;
 
@@ -419,13 +420,15 @@ draw_pt_arrays_restart(struct draw_context *draw,
 
    if (draw->pt.user.eltSize) {
       /* indexed prims (draw_elements) */
-      prim_restart_loop(draw, info, draw_info->start, draw_info->count, 
draw->pt.user.elts);
+      for (unsigned i = 0; i < num_draws; i++)
+         prim_restart_loop(draw, info, draw_info[i].start, draw_info[i].count, 
draw->pt.user.elts);
    }
    else {
       /* Non-indexed prims (draw_arrays).
        * Primitive restart should have been handled in gallium frontends.
        */
-      draw_pt_arrays(draw, prim, draw_info->start, draw_info->count);
+      for (unsigned i = 0; i < num_draws; i++)
+         draw_pt_arrays(draw, prim, draw_info[i].start, draw_info[i].count);
    }
 }
 
@@ -484,8 +487,7 @@ draw_instances(struct draw_context *draw,
       draw_new_instance(draw);
 
       if (info->primitive_restart) {
-         for (unsigned i = 0; i < num_draws; i++)
-            draw_pt_arrays_restart(draw, info, &draws[i]);
+         draw_pt_arrays_restart(draw, info, draws, num_draws);
       }
       else {
          for (unsigned i = 0; i < num_draws; i++)

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to