radeon-gallium: Oh, look, we *do* already support DONTBLOCK.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Wed, 19 Aug 2009 01:11:46 +0000 (18:11 -0700)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Wed, 19 Aug 2009 04:25:53 +0000 (21:25 -0700)
Well, okay, the kernel doesn't, but that's no excuse for us! :3

src/gallium/winsys/drm/radeon/core/radeon_buffer.c

index 775bda8308f6595d9af1e210783423939b88347a..07551e7cd16ccea087fa73216c64bcb6e4872b4d 100644 (file)
@@ -134,18 +134,17 @@ static void *radeon_buffer_map(struct pipe_winsys *ws,
         (struct radeon_pipe_buffer*)buffer;
     int write = 0;
 
-    if (flags & PIPE_BUFFER_USAGE_DONTBLOCK) {
-       /* XXX Remove this when radeon_bo_map supports DONTBLOCK */
-       return NULL;
+    if (!(flags & PIPE_BUFFER_USAGE_DONTBLOCK)) {
+        radeon_bo_wait(radeon_buffer->bo);
     }
     if (flags & PIPE_BUFFER_USAGE_CPU_WRITE) {
         write = 1;
     }
 
-    radeon_bo_wait(radeon_buffer->bo);
-
-    if (radeon_bo_map(radeon_buffer->bo, write))
+    if (radeon_bo_map(radeon_buffer->bo, write)) {
         return NULL;
+    }
+
     return radeon_buffer->bo->ptr;
 }