Mesa (master): r600g/radeonsi: Map transfer staging texture unsynchronized when possible

Michel Dänzer daenzer at kemper.freedesktop.org
Wed Apr 16 04:57:21 UTC 2014


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

Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Tue Apr 15 14:45:13 2014 +0900

r600g/radeonsi: Map transfer staging texture unsynchronized when possible

The transfer staging texture is always freshly allocated, so for write-only
transfers we don't need to explicitly wait for the BO to become idle.

Squeezes a few hundered MB/s more out of x11perf -shmput500 with glamor.

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeon/r600_texture.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c
index 293eeaa..c410543 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -1039,6 +1039,8 @@ static void *r600_texture_transfer_map(struct pipe_context *ctx,
 
 	if (trans->staging) {
 		buf = trans->staging;
+		if (!rtex->is_depth && !(usage & PIPE_TRANSFER_READ))
+			usage |= PIPE_TRANSFER_UNSYNCHRONIZED;
 	} else {
 		buf = &rtex->resource;
 	}




More information about the mesa-commit mailing list