Mesa (master): mesa/vbo: always recalculate min_index and max_index when splitting vertices

Maciej Cencora osiris at kemper.freedesktop.org
Wed Jul 8 16:44:16 UTC 2009


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

Author: Maciej Cencora <m.cencora at gmail.com>
Date:   Sun Jul  5 15:00:42 2009 +0200

mesa/vbo: always recalculate min_index and max_index when splitting vertices

---

 src/mesa/vbo/vbo_split_inplace.c |   36 ++++++++++--------------------------
 1 files changed, 10 insertions(+), 26 deletions(-)

diff --git a/src/mesa/vbo/vbo_split_inplace.c b/src/mesa/vbo/vbo_split_inplace.c
index 3ed6b34..266bc56 100644
--- a/src/mesa/vbo/vbo_split_inplace.c
+++ b/src/mesa/vbo/vbo_split_inplace.c
@@ -63,35 +63,19 @@ static void flush_vertex( struct split_context *split )
    if (!split->dstprim_nr) 
       return;
 
-   if (split->ib) {
-      /* This should basically be multipass rendering over the same
-       * unchanging set of VBO's.  Would like the driver not to
-       * re-upload the data, or swtnl not to re-transform the
-       * vertices.
-       */
-      assert(split->max_index - split->min_index < split->limits->max_verts);
-      min_index = split->min_index;
-      max_index = split->max_index;
-   }
-   else {
-      /* Non-indexed rendering.  Cannot assume that the primitives are
-       * ordered by increasing vertex, because of entrypoints like
-       * MultiDrawArrays.
-       */
-      GLuint i;
-      min_index = split->dstprim[0].start;
-      max_index = min_index + split->dstprim[0].count - 1;
+   GLuint i;
+   min_index = split->dstprim[0].start;
+   max_index = min_index + split->dstprim[0].count - 1;
 
-      for (i = 1; i < split->dstprim_nr; i++) {
-	 GLuint tmp_min = split->dstprim[i].start;
-	 GLuint tmp_max = tmp_min + split->dstprim[i].count - 1;
+   for (i = 1; i < split->dstprim_nr; i++) {
+      GLuint tmp_min = split->dstprim[i].start;
+      GLuint tmp_max = tmp_min + split->dstprim[i].count - 1;
 
-	 if (tmp_min < min_index) 
-	    min_index = tmp_min;
+      if (tmp_min < min_index)
+	 min_index = tmp_min;
 
-	 if (tmp_max > max_index) 
-	    max_index = tmp_max;
-      }
+      if (tmp_max > max_index)
+	 max_index = tmp_max;
    }
 
    assert(max_index >= min_index);




More information about the mesa-commit mailing list