From: Marek Olšák <marek.ol...@amd.com>

Cc: 11.1 11.2 <mesa-sta...@lists.freedesktop.org>
---
 src/gallium/drivers/radeon/r600_buffer_common.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c 
b/src/gallium/drivers/radeon/r600_buffer_common.c
index b384baa..81409ce 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -314,7 +314,8 @@ static void *r600_buffer_transfer_map(struct pipe_context 
*ctx,
                }
        }
        else if ((usage & PIPE_TRANSFER_DISCARD_RANGE) &&
-                !(usage & PIPE_TRANSFER_UNSYNCHRONIZED) &&
+                !(usage & (PIPE_TRANSFER_UNSYNCHRONIZED |
+                           PIPE_TRANSFER_PERSISTENT)) &&
                 !(rscreen->debug_flags & DBG_NO_DISCARD_RANGE) &&
                 r600_can_dma_copy_buffer(rctx, box->x, 0, box->width)) {
                assert(usage & PIPE_TRANSFER_WRITE);
@@ -341,7 +342,8 @@ static void *r600_buffer_transfer_map(struct pipe_context 
*ctx,
        }
        /* Using a staging buffer in GTT for larger reads is much faster. */
        else if ((usage & PIPE_TRANSFER_READ) &&
-                !(usage & PIPE_TRANSFER_WRITE) &&
+                !(usage & (PIPE_TRANSFER_WRITE |
+                           PIPE_TRANSFER_PERSISTENT)) &&
                 rbuffer->domains == RADEON_DOMAIN_VRAM &&
                 r600_can_dma_copy_buffer(rctx, 0, box->x, box->width)) {
                struct r600_resource *staging;
-- 
2.5.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to