vbo: If MapBufferRange fails, try MapBuffer instead.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Thu, 2 Jul 2009 23:31:24 +0000 (16:31 -0700)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Thu, 2 Jul 2009 23:32:59 +0000 (16:32 -0700)
Fixes segfaults with radeon winsys.
(Probably libdrm_radeon doing something that it shouldn't.)

src/mesa/vbo/vbo_exec_draw.c

index 5442a409ad486132a12ab685f8151f6df81e8b4e..bfe9ef0a483550345247b89ac026219dd5f3ffa8 100644 (file)
@@ -327,9 +327,10 @@ vbo_exec_vtx_map( struct vbo_exec_context *exec )
                                                   0, VBO_VERT_BUFFER_SIZE,
                                                   accessRange,
                                                   exec->vtx.bufferobj);
-      else
+      if (!exec->vtx.buffer_map)
          exec->vtx.buffer_map =
             (GLfloat *)ctx->Driver.MapBuffer(ctx, target, access, exec->vtx.bufferobj);
+      assert(exec->vtx.buffer_map);
       exec->vtx.buffer_ptr = exec->vtx.buffer_map;
    }