diff options
author | Michel Dänzer <[email protected]> | 2014-04-15 14:45:13 +0900 |
---|---|---|
committer | Michel Dänzer <[email protected]> | 2014-04-16 12:11:27 +0900 |
commit | 6ac5a5e383830d711793e425ddd285e17ffcd235 (patch) | |
tree | 77a0861a6e406546b3b8f9b7e5017f82bf109596 /src/gallium | |
parent | 9fed62723444fa76bd411ef4c2e4eeb98968a791 (diff) |
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 <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/radeon/r600_texture.c | 2 |
1 files changed, 2 insertions, 0 deletions
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; } |