radeon: fix glBufferSubData
authorMaciej Cencora <m.cencora@gmail.com>
Wed, 11 Nov 2009 12:00:10 +0000 (13:00 +0100)
committerMaciej Cencora <m.cencora@gmail.com>
Sat, 14 Nov 2009 13:42:34 +0000 (14:42 +0100)
src/mesa/drivers/dri/radeon/radeon_buffer_objects.c

index 8fac5c6c512984ddd69fc842f63eb8d771bb0789..99d3ec7005e25c55d0f58e078f4d48527b3c3386 100644 (file)
@@ -136,8 +136,13 @@ radeonBufferSubData(GLcontext * ctx,
                     const GLvoid * data,
                     struct gl_buffer_object *obj)
 {
+    radeonContextPtr radeon = RADEON_CONTEXT(ctx);
     struct radeon_buffer_object *radeon_obj = get_radeon_buffer_object(obj);
 
+    if (radeon_bo_is_referenced_by_cs(radeon_obj->bo, radeon->cmdbuf.cs)) {
+        radeon_firevertices(radeon);
+    }
+
     radeon_bo_map(radeon_obj->bo, GL_TRUE);
 
     _mesa_memcpy(radeon_obj->bo->ptr + offset, data, size);