Mesa (master): gallium/radeon: handle VRAM_GTT placements as having slow CPU reads

Marek Olšák mareko at kemper.freedesktop.org
Thu May 19 10:41:01 UTC 2016


Module: Mesa
Branch: master
Commit: f330b7a14fd913c50a5df227ee3d5699113357d1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f330b7a14fd913c50a5df227ee3d5699113357d1

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu May 12 13:05:19 2016 +0200

gallium/radeon: handle VRAM_GTT placements as having slow CPU reads

not sure if we should include GTT WC too

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/gallium/drivers/radeon/r600_buffer_common.c | 2 +-
 src/gallium/drivers/radeon/r600_texture.c       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c
index 9e8384d..145cc9f 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -359,7 +359,7 @@ static void *r600_buffer_transfer_map(struct pipe_context *ctx,
 	else if ((usage & PIPE_TRANSFER_READ) &&
 		 !(usage & (PIPE_TRANSFER_WRITE |
 			    PIPE_TRANSFER_PERSISTENT)) &&
-		 rbuffer->domains == RADEON_DOMAIN_VRAM &&
+		 rbuffer->domains & RADEON_DOMAIN_VRAM &&
 		 r600_can_dma_copy_buffer(rctx, 0, box->x, box->width)) {
 		struct r600_resource *staging;
 
diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c
index b22fca8..a00dedc 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -1247,7 +1247,7 @@ static void *r600_texture_transfer_map(struct pipe_context *ctx,
 	if (rtex->surface.level[0].mode >= RADEON_SURF_MODE_1D) {
 		use_staging_texture = TRUE;
 	} else if ((usage & PIPE_TRANSFER_READ) &&
-	    (rtex->resource.domains == RADEON_DOMAIN_VRAM)) {
+		   rtex->resource.domains & RADEON_DOMAIN_VRAM) {
 		/* Untiled buffers in VRAM, which is slow for CPU reads */
 		use_staging_texture = TRUE;
 	} else if (!(usage & PIPE_TRANSFER_READ) &&




More information about the mesa-commit mailing list