From: Michel Dänzer Date: Tue, 15 Apr 2014 05:45:13 +0000 (+0900) Subject: r600g/radeonsi: Map transfer staging texture unsynchronized when possible X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6ac5a5e383830d711793e425ddd285e17ffcd235;p=mesa.git 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 --- diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index 293eeaa0890..c410543b81b 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; }