Mesa (main): util/prim_restart: store index bounds while rewriting draws

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 9 15:07:37 UTC 2021


Module: Mesa
Branch: main
Commit: aee78a350453c392bcff95d2f62b8d549f7d6868
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=aee78a350453c392bcff95d2f62b8d549f7d6868

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Fri May 21 06:02:18 2021 -0400

util/prim_restart: store index bounds while rewriting draws

may as well

Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966>

---

 src/gallium/auxiliary/util/u_prim_restart.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/util/u_prim_restart.c b/src/gallium/auxiliary/util/u_prim_restart.c
index 3e59ce50bb1..59be6cf5b02 100644
--- a/src/gallium/auxiliary/util/u_prim_restart.c
+++ b/src/gallium/auxiliary/util/u_prim_restart.c
@@ -177,6 +177,7 @@ struct range {
 struct range_info {
    struct range *ranges;
    unsigned count, max;
+   unsigned min_index, max_index;
 };
 
 
@@ -209,6 +210,8 @@ add_range(enum pipe_prim_type mode, struct range_info *info, unsigned start, uns
 
       info->max *= 2;
    }
+   info->min_index = MIN2(info->min_index, start);
+   info->max_index = MAX2(info->max_index, start + count - 1);
 
    /* save the range */
    info->ranges[info->count].start = start;
@@ -233,7 +236,7 @@ util_draw_vbo_without_prim_restart(struct pipe_context *context,
                                    const struct pipe_draw_start_count_bias *draw)
 {
    const void *src_map;
-   struct range_info ranges = {0};
+   struct range_info ranges = { .min_index = UINT32_MAX, 0 };
    struct pipe_draw_info new_info;
    struct pipe_draw_start_count_bias new_draw;
    struct pipe_transfer *src_transfer = NULL;



More information about the mesa-commit mailing list