diff options
author | Marek Olšák <[email protected]> | 2015-09-10 17:53:28 +0200 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2015-10-07 14:08:44 +0100 |
commit | 766a0b4661a75988cf1b1235e960226d72af71d9 (patch) | |
tree | ba4dc5e840903a75c16dcb93e68ac1369937681e /src/gallium/drivers | |
parent | f2e8b94f847193fc703a6f536c97c6f6503b3651 (diff) |
gallium/radeon: handle buffer_map staging buffer failures better
Cc: 11.0 <[email protected]>
Acked-by: Christian König <[email protected]>
Reviewed-by: Michel Dänzer <[email protected]>
(cherry picked from commit 282b3780123bace557fc90127bd35b075ea0873e)
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/radeon/r600_buffer_common.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c index cb9809f2449..2d105847914 100644 --- a/src/gallium/drivers/radeon/r600_buffer_common.c +++ b/src/gallium/drivers/radeon/r600_buffer_common.c @@ -305,12 +305,11 @@ static void *r600_buffer_transfer_map(struct pipe_context *ctx, data += box->x % R600_MAP_BUFFER_ALIGNMENT; return r600_buffer_get_transfer(ctx, resource, level, usage, box, ptransfer, data, staging, offset); - } else { - return NULL; /* error, shouldn't occur though */ } + } else { + /* At this point, the buffer is always idle (we checked it above). */ + usage |= PIPE_TRANSFER_UNSYNCHRONIZED; } - /* At this point, the buffer is always idle (we checked it above). */ - usage |= PIPE_TRANSFER_UNSYNCHRONIZED; } /* Using a staging buffer in GTT for larger reads is much faster. */ else if ((usage & PIPE_TRANSFER_READ) && |