Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-02 Thread Christian König

Am 01.04.2014 15:47, schrieb Leo Liu:

From: Leo Liu leo@amd.com

This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.


The patch itself is ok, but we should probably add an explanation why we 
want to revert this.


Christian.



Signed-off-by: Leo Liu leo@amd.com
---
  src/gallium/drivers/radeon/r600_texture.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 45a9508..3dfddca 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct pipe_context 
*ctx,
if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
use_staging_texture = TRUE;
  
-	/* Untiled buffers in VRAM, which is slow for CPU reads and writes */

-   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
+   /* Untiled buffers in VRAM, which is slow for CPU reads */
+   if ((usage  PIPE_TRANSFER_READ)  !(usage  PIPE_TRANSFER_MAP_DIRECTLY) 

(rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
use_staging_texture = TRUE;
}


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


[Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-02 Thread Leo Liu
From: Leo Liu leo@amd.com

This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.
In the case of VCE encoding with raw YUV file, CPU load directly
to VRAM is faster than combination of CPU writing to GTT and
then blit to VRAM with GPU.
---
 src/gallium/drivers/radeon/r600_texture.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 45a9508..3dfddca 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct pipe_context 
*ctx,
if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
use_staging_texture = TRUE;
 
-   /* Untiled buffers in VRAM, which is slow for CPU reads and writes */
-   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
+   /* Untiled buffers in VRAM, which is slow for CPU reads */
+   if ((usage  PIPE_TRANSFER_READ)  !(usage  
PIPE_TRANSFER_MAP_DIRECTLY) 
(rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
use_staging_texture = TRUE;
}
-- 
1.8.1.2


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


Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-02 Thread Marek Olšák
Reviewed-by: Marek Olšák marek.ol...@amd.com

Marek

On Wed, Apr 2, 2014 at 3:09 PM, Leo Liu leo@amd.com wrote:
 From: Leo Liu leo@amd.com

 This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.
 In the case of VCE encoding with raw YUV file, CPU load directly
 to VRAM is faster than combination of CPU writing to GTT and
 then blit to VRAM with GPU.
 ---
  src/gallium/drivers/radeon/r600_texture.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

 diff --git a/src/gallium/drivers/radeon/r600_texture.c 
 b/src/gallium/drivers/radeon/r600_texture.c
 index 45a9508..3dfddca 100644
 --- a/src/gallium/drivers/radeon/r600_texture.c
 +++ b/src/gallium/drivers/radeon/r600_texture.c
 @@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct 
 pipe_context *ctx,
 if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
 use_staging_texture = TRUE;

 -   /* Untiled buffers in VRAM, which is slow for CPU reads and writes */
 -   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
 +   /* Untiled buffers in VRAM, which is slow for CPU reads */
 +   if ((usage  PIPE_TRANSFER_READ)  !(usage  
 PIPE_TRANSFER_MAP_DIRECTLY) 
 (rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
 use_staging_texture = TRUE;
 }
 --
 1.8.1.2


 ___
 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


Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-02 Thread Alex Deucher
On Wed, Apr 2, 2014 at 9:09 AM, Leo Liu leo@amd.com wrote:
 From: Leo Liu leo@amd.com

 This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.
 In the case of VCE encoding with raw YUV file, CPU load directly
 to VRAM is faster than combination of CPU writing to GTT and
 then blit to VRAM with GPU.

Why was the original patch applied?  I just want to make sure it
wasn't a bug fix for avoiding a sigbus or something similar if we ran
out of cpu visible vram.

Alex

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

 diff --git a/src/gallium/drivers/radeon/r600_texture.c 
 b/src/gallium/drivers/radeon/r600_texture.c
 index 45a9508..3dfddca 100644
 --- a/src/gallium/drivers/radeon/r600_texture.c
 +++ b/src/gallium/drivers/radeon/r600_texture.c
 @@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct 
 pipe_context *ctx,
 if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
 use_staging_texture = TRUE;

 -   /* Untiled buffers in VRAM, which is slow for CPU reads and writes */
 -   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
 +   /* Untiled buffers in VRAM, which is slow for CPU reads */
 +   if ((usage  PIPE_TRANSFER_READ)  !(usage  
 PIPE_TRANSFER_MAP_DIRECTLY) 
 (rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
 use_staging_texture = TRUE;
 }
 --
 1.8.1.2


 ___
 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


Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-02 Thread Marek Olšák
Also, the VCE code could use PIPE_TRANSFER_MAP_DIRECTLY to avoid the
blit and this patch wouldn't be needed.

Marek

On Wed, Apr 2, 2014 at 3:30 PM, Alex Deucher alexdeuc...@gmail.com wrote:
 On Wed, Apr 2, 2014 at 9:09 AM, Leo Liu leo@amd.com wrote:
 From: Leo Liu leo@amd.com

 This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.
 In the case of VCE encoding with raw YUV file, CPU load directly
 to VRAM is faster than combination of CPU writing to GTT and
 then blit to VRAM with GPU.

 Why was the original patch applied?  I just want to make sure it
 wasn't a bug fix for avoiding a sigbus or something similar if we ran
 out of cpu visible vram.

 Alex

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

 diff --git a/src/gallium/drivers/radeon/r600_texture.c 
 b/src/gallium/drivers/radeon/r600_texture.c
 index 45a9508..3dfddca 100644
 --- a/src/gallium/drivers/radeon/r600_texture.c
 +++ b/src/gallium/drivers/radeon/r600_texture.c
 @@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct 
 pipe_context *ctx,
 if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
 use_staging_texture = TRUE;

 -   /* Untiled buffers in VRAM, which is slow for CPU reads and writes */
 -   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
 +   /* Untiled buffers in VRAM, which is slow for CPU reads */
 +   if ((usage  PIPE_TRANSFER_READ)  !(usage  
 PIPE_TRANSFER_MAP_DIRECTLY) 
 (rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
 use_staging_texture = TRUE;
 }
 --
 1.8.1.2


 ___
 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 mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-02 Thread Christian König
I've applied the original patch because the same thing for reading 
textures speeded up the decoding case with UVD quite significantly.


For VCE it reduced the CPU load as well, but I didn't checked if the 
encoding time stayed the same (which isn't the case). I think the 
problem is that VCE needs to wait for the DMA or 3D engine to complete 
the upload before it can proceed and because of this becomes idle, gets 
clocked down etc... When the frame has finished uploading we clock VCE 
up and get it running again and this needs time.


Anyway I've added the patch specially for VCE, so just disabling it for 
VCE doesn't make much sense.


Christian.

Am 02.04.2014 15:34, schrieb Marek Olšák:

Also, the VCE code could use PIPE_TRANSFER_MAP_DIRECTLY to avoid the
blit and this patch wouldn't be needed.

Marek

On Wed, Apr 2, 2014 at 3:30 PM, Alex Deucher alexdeuc...@gmail.com wrote:

On Wed, Apr 2, 2014 at 9:09 AM, Leo Liu leo@amd.com wrote:

From: Leo Liu leo@amd.com

This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.
In the case of VCE encoding with raw YUV file, CPU load directly
to VRAM is faster than combination of CPU writing to GTT and
then blit to VRAM with GPU.

Why was the original patch applied?  I just want to make sure it
wasn't a bug fix for avoiding a sigbus or something similar if we ran
out of cpu visible vram.

Alex


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

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 45a9508..3dfddca 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct pipe_context 
*ctx,
 if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
 use_staging_texture = TRUE;

-   /* Untiled buffers in VRAM, which is slow for CPU reads and writes */
-   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
+   /* Untiled buffers in VRAM, which is slow for CPU reads */
+   if ((usage  PIPE_TRANSFER_READ)  !(usage  PIPE_TRANSFER_MAP_DIRECTLY) 

 (rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
 use_staging_texture = TRUE;
 }
--
1.8.1.2


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


Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-02 Thread Liu, Leo
Okay. with PIPE_TRANSFER_MAP_DIRECTLY, the regression can be fixed too.
Going to resend patch for this approach.

Leo


-Original Message-
From: mesa-dev [mailto:mesa-dev-boun...@lists.freedesktop.org] On Behalf Of
Christian König
Sent: Wednesday, April 02, 2014 9:43 AM
To: Marek Olšák; Alex Deucher
Cc: mesa-dev@lists.freedesktop.org
Subject: Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at
all

I've applied the original patch because the same thing for reading textures
speeded up the decoding case with UVD quite significantly.

For VCE it reduced the CPU load as well, but I didn't checked if the encoding 
time
stayed the same (which isn't the case). I think the problem is that VCE needs 
to
wait for the DMA or 3D engine to complete the upload before it can proceed and
because of this becomes idle, gets clocked down etc... When the frame has
finished uploading we clock VCE up and get it running again and this needs 
time.

Anyway I've added the patch specially for VCE, so just disabling it for VCE 
doesn't
make much sense.

Christian.

Am 02.04.2014 15:34, schrieb Marek Olšák:
 Also, the VCE code could use PIPE_TRANSFER_MAP_DIRECTLY to avoid the
 blit and this patch wouldn't be needed.

 Marek

 On Wed, Apr 2, 2014 at 3:30 PM, Alex Deucher alexdeuc...@gmail.com
wrote:
 On Wed, Apr 2, 2014 at 9:09 AM, Leo Liu leo@amd.com wrote:
 From: Leo Liu leo@amd.com

 This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.
 In the case of VCE encoding with raw YUV file, CPU load directly to
 VRAM is faster than combination of CPU writing to GTT and then blit
 to VRAM with GPU.
 Why was the original patch applied?  I just want to make sure it
 wasn't a bug fix for avoiding a sigbus or something similar if we ran
 out of cpu visible vram.

 Alex

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

 diff --git a/src/gallium/drivers/radeon/r600_texture.c
 b/src/gallium/drivers/radeon/r600_texture.c
 index 45a9508..3dfddca 100644
 --- a/src/gallium/drivers/radeon/r600_texture.c
 +++ b/src/gallium/drivers/radeon/r600_texture.c
 @@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct
pipe_context *ctx,
  if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
  use_staging_texture = TRUE;

 -   /* Untiled buffers in VRAM, which is slow for CPU reads and writes 
 */
 -   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
 +   /* Untiled buffers in VRAM, which is slow for CPU reads */
 +   if ((usage  PIPE_TRANSFER_READ)  !(usage 
 + PIPE_TRANSFER_MAP_DIRECTLY) 
  (rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
  use_staging_texture = TRUE;
  }
 --
 1.8.1.2


 ___
 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 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 mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-02 Thread Christian König
No wait a second. As explained I've added the code in question specially 
for VCE so if we disable it for VCE it won't be used.


I still think that reverting the patch is the right approach.

Christian.

Am 02.04.2014 15:54, schrieb Liu, Leo:

Okay. with PIPE_TRANSFER_MAP_DIRECTLY, the regression can be fixed too.
Going to resend patch for this approach.

Leo



-Original Message-
From: mesa-dev [mailto:mesa-dev-boun...@lists.freedesktop.org] On Behalf Of
Christian König
Sent: Wednesday, April 02, 2014 9:43 AM
To: Marek Olšák; Alex Deucher
Cc: mesa-dev@lists.freedesktop.org
Subject: Re: [Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at
all

I've applied the original patch because the same thing for reading textures
speeded up the decoding case with UVD quite significantly.

For VCE it reduced the CPU load as well, but I didn't checked if the encoding 
time
stayed the same (which isn't the case). I think the problem is that VCE needs to
wait for the DMA or 3D engine to complete the upload before it can proceed and
because of this becomes idle, gets clocked down etc... When the frame has
finished uploading we clock VCE up and get it running again and this needs time.

Anyway I've added the patch specially for VCE, so just disabling it for VCE 
doesn't
make much sense.

Christian.

Am 02.04.2014 15:34, schrieb Marek Olšák:

Also, the VCE code could use PIPE_TRANSFER_MAP_DIRECTLY to avoid the
blit and this patch wouldn't be needed.

Marek

On Wed, Apr 2, 2014 at 3:30 PM, Alex Deucher alexdeuc...@gmail.com

wrote:

On Wed, Apr 2, 2014 at 9:09 AM, Leo Liu leo@amd.com wrote:

From: Leo Liu leo@amd.com

This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.
In the case of VCE encoding with raw YUV file, CPU load directly to
VRAM is faster than combination of CPU writing to GTT and then blit
to VRAM with GPU.

Why was the original patch applied?  I just want to make sure it
wasn't a bug fix for avoiding a sigbus or something similar if we ran
out of cpu visible vram.

Alex


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

diff --git a/src/gallium/drivers/radeon/r600_texture.c
b/src/gallium/drivers/radeon/r600_texture.c
index 45a9508..3dfddca 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct

pipe_context *ctx,

  if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
  use_staging_texture = TRUE;

-   /* Untiled buffers in VRAM, which is slow for CPU reads and writes */
-   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
+   /* Untiled buffers in VRAM, which is slow for CPU reads */
+   if ((usage  PIPE_TRANSFER_READ)  !(usage 
+ PIPE_TRANSFER_MAP_DIRECTLY) 
  (rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
  use_staging_texture = TRUE;
  }
--
1.8.1.2


___
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 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 mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] Revert radeon: just don't map VRAM buffers at all

2014-04-01 Thread Leo Liu
From: Leo Liu leo@amd.com

This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7.

Signed-off-by: Leo Liu leo@amd.com
---
 src/gallium/drivers/radeon/r600_texture.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 45a9508..3dfddca 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -928,8 +928,8 @@ static void *r600_texture_transfer_map(struct pipe_context 
*ctx,
if (rtex-surface.level[level].mode = RADEON_SURF_MODE_1D)
use_staging_texture = TRUE;
 
-   /* Untiled buffers in VRAM, which is slow for CPU reads and writes */
-   if (!(usage  PIPE_TRANSFER_MAP_DIRECTLY) 
+   /* Untiled buffers in VRAM, which is slow for CPU reads */
+   if ((usage  PIPE_TRANSFER_READ)  !(usage  
PIPE_TRANSFER_MAP_DIRECTLY) 
(rtex-resource.domains == RADEON_DOMAIN_VRAM)) {
use_staging_texture = TRUE;
}
-- 
1.8.1.2


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