diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/winsys/drm/radeon/core/radeon_buffer.c | 11 | 
1 files changed, 5 insertions, 6 deletions
| diff --git a/src/gallium/winsys/drm/radeon/core/radeon_buffer.c b/src/gallium/winsys/drm/radeon/core/radeon_buffer.c index 775bda8308..07551e7cd1 100644 --- a/src/gallium/winsys/drm/radeon/core/radeon_buffer.c +++ b/src/gallium/winsys/drm/radeon/core/radeon_buffer.c @@ -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;  } | 
