[Mesa-dev] [PATCH] r600g/radeonsi: Map transfer staging texture unsynchronized when possible
Michel Dänzer
michel at daenzer.net
Mon Apr 14 22:46:12 PDT 2014
From: Michel Dänzer <michel.daenzer at amd.com>
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.
Signed-off-by: Michel Dänzer <michel.daenzer 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;
}
--
1.9.0
More information about the mesa-dev
mailing list