summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-02-24 17:36:52 +0100
committerMarek Olšák <[email protected]>2016-03-09 15:02:26 +0100
commitafdaffcbdb35e326e06d458c01a31a4e262ace24 (patch)
treea9e56d33243491ad50f3141b51a407e279f0bac0
parentbe73d358298b04624cdeca7113eedd10e3e37e6c (diff)
gallium/radeon: buffer valid range tracking only works with unshared buffers
Reviewed-by: Michel Dänzer <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r--src/gallium/drivers/radeon/r600_buffer_common.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c
index 439a3cb30c0..fb3a80e7d03 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -294,6 +294,7 @@ static void *r600_buffer_transfer_map(struct pipe_context *ctx,
* in which case it can be mapped unsynchronized. */
if (!(usage & PIPE_TRANSFER_UNSYNCHRONIZED) &&
usage & PIPE_TRANSFER_WRITE &&
+ !rbuffer->is_shared &&
!util_ranges_intersect(&rbuffer->valid_buffer_range, box->x, box->x + box->width)) {
usage |= PIPE_TRANSFER_UNSYNCHRONIZED;
}