allocate larger minimum dstelt buffer
authorRoland Scheidegger <sroland@tungstengraphics.com>
Thu, 25 Jan 2007 15:39:02 +0000 (16:39 +0100)
committerRoland Scheidegger <sroland@tungstengraphics.com>
Thu, 25 Jan 2007 15:39:02 +0000 (16:39 +0100)
increase the minimum dstelt buffer size to avoid triggering an assertion later
because the split is triggered before the buffer is full. This fixes cases
where the vbo_split_copy path is hit because of maximum index limit, where the
dstelt buffer size needed could be very small (doom3 hit that assertion with a
vertex count of just 3)

src/mesa/vbo/vbo_split_copy.c

index df69e4ca28fb1d1db654fb274222c3b8b5007273..d9c58537821cfb24d9cf392a68ebd58a49f7235d 100644 (file)
@@ -466,7 +466,7 @@ static void replay_init( struct copy_context *copy )
    /* Allocate an output element list:
     */
    copy->dstelt_size = MIN2(65536,
-                           copy->ib->count * 2);
+                           copy->ib->count * 2 + 3);
    copy->dstelt_size = MIN2(copy->dstelt_size,
                            copy->limits->max_indices);
    copy->dstelt = _mesa_malloc(sizeof(GLuint) * copy->dstelt_size);