Re: [Mesa-dev] [PATCH] r600g/radeonsi: Map transfer staging texture unsynchronized when possible

2014-04-15 Thread Michel Dänzer
On 15.04.2014 19:40, Marek Olšák wrote:
> The staging texture should always be idle, so I guess this just skips
> the needless GEM_WAIT_IDLE call?

Yes, exactly. Apparently that can incur a significant cost in some cases.


> Reviewed-by: Marek Olšák 

Thank you, pushed.


-- 
Earthling Michel Dänzer|  http://www.amd.com
Libre software enthusiast  |Mesa and X developer
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] r600g/radeonsi: Map transfer staging texture unsynchronized when possible

2014-04-15 Thread Marek Olšák
The staging texture should always be idle, so I guess this just skips
the needless GEM_WAIT_IDLE call?

Reviewed-by: Marek Olšák 

Marek

On Tue, Apr 15, 2014 at 7:46 AM, Michel Dänzer  wrote:
> From: Michel Dänzer 
>
> 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 
> ---
>  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
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] r600g/radeonsi: Map transfer staging texture unsynchronized when possible

2014-04-14 Thread Michel Dänzer
From: Michel Dänzer 

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 
---
 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

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev