vbo: seed initial max_element value with a more likely candidate
authorKeith Whitwell <keith@tungstengraphics.com>
Mon, 25 Aug 2008 09:59:45 +0000 (10:59 +0100)
committerKeith Whitwell <keith@tungstengraphics.com>
Wed, 24 Sep 2008 01:05:48 +0000 (18:05 -0700)
(cherry picked from commit 026e7731e549e0777c010348460fd48b3d75a843)

src/mesa/vbo/vbo_exec_array.c

index 68c555ae8f1b4e380652aeb7858801c31dc08349..82f4db17d19a4a88df46f548c1ad5bbd063a60c0 100644 (file)
@@ -45,9 +45,9 @@ static void get_minmax_index( GLuint count, GLuint type,
    switch(type) {
    case GL_UNSIGNED_INT: {
       const GLuint *ui_indices = (const GLuint *)indices;
-      GLuint max_ui = ui_indices[0];
+      GLuint max_ui = ui_indices[count-1];
       GLuint min_ui = ui_indices[0];
-      for (i = 1; i < count; i++) {
+      for (i = 0; i < count; i++) {
         if (ui_indices[i] > max_ui) max_ui = ui_indices[i];
         if (ui_indices[i] < min_ui) min_ui = ui_indices[i];
       }
@@ -57,9 +57,9 @@ static void get_minmax_index( GLuint count, GLuint type,
    }
    case GL_UNSIGNED_SHORT: {
       const GLushort *us_indices = (const GLushort *)indices;
-      GLuint max_us = us_indices[0];
+      GLuint max_us = us_indices[count-1];
       GLuint min_us = us_indices[0];
-      for (i = 1; i < count; i++) {
+      for (i = 0; i < count; i++) {
         if (us_indices[i] > max_us) max_us = us_indices[i];
         if (us_indices[i] < min_us) min_us = us_indices[i];
       }
@@ -69,9 +69,9 @@ static void get_minmax_index( GLuint count, GLuint type,
    }
    case GL_UNSIGNED_BYTE: {
       const GLubyte *ub_indices = (const GLubyte *)indices;
-      GLuint max_ub = ub_indices[0];
+      GLuint max_ub = ub_indices[count-1];
       GLuint min_ub = ub_indices[0];
-      for (i = 1; i < count; i++) {
+      for (i = 0; i < count; i++) {
         if (ub_indices[i] > max_ub) max_ub = ub_indices[i];
         if (ub_indices[i] < min_ub) min_ub = ub_indices[i];
       }