Re: [Mesa-dev] [PATCH] gallium: fix u_default_transfer_inline_write for textures

2014-07-04 Thread Roland Scheidegger
Am 03.07.2014 18:29, schrieb Marek Olšák:
 From: Marek Olšák marek.ol...@amd.com
 
 This doesn't fix any known issue. In fact, radeon drivers ignore all
 the discard flags for textures and implicitly do discard range
 for any write transfer.
 
 Cc: mesa-sta...@lists.freedesktop.org
 ---
  src/gallium/auxiliary/util/u_transfer.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/gallium/auxiliary/util/u_transfer.c 
 b/src/gallium/auxiliary/util/u_transfer.c
 index 7804f2a..71da35d 100644
 --- a/src/gallium/auxiliary/util/u_transfer.c
 +++ b/src/gallium/auxiliary/util/u_transfer.c
 @@ -25,8 +25,8 @@ void u_default_transfer_inline_write( struct pipe_context 
 *pipe,
 usage |= PIPE_TRANSFER_WRITE;
  
 /* transfer_inline_write implicitly discards the rewritten buffer range */
 -   /* XXX this looks very broken for non-buffer resources having more than 
 one dim. */
 -   if (box-x == 0  box-width == resource-width0) {
 +   if (resource-target == PIPE_BUFFER 
 +   box-x == 0  box-width == resource-width0) {
usage |= PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE;
 } else {
usage |= PIPE_TRANSFER_DISCARD_RANGE;
 

Reviewed-by: Roland Scheidegger srol...@vmware.com

I guess it would be possible to also do this for non-buffer resources,
by checking all appropriate dimensions. But probably not worth it
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] gallium: fix u_default_transfer_inline_write for textures

2014-07-03 Thread Marek Olšák
From: Marek Olšák marek.ol...@amd.com

This doesn't fix any known issue. In fact, radeon drivers ignore all
the discard flags for textures and implicitly do discard range
for any write transfer.

Cc: mesa-sta...@lists.freedesktop.org
---
 src/gallium/auxiliary/util/u_transfer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_transfer.c 
b/src/gallium/auxiliary/util/u_transfer.c
index 7804f2a..71da35d 100644
--- a/src/gallium/auxiliary/util/u_transfer.c
+++ b/src/gallium/auxiliary/util/u_transfer.c
@@ -25,8 +25,8 @@ void u_default_transfer_inline_write( struct pipe_context 
*pipe,
usage |= PIPE_TRANSFER_WRITE;
 
/* transfer_inline_write implicitly discards the rewritten buffer range */
-   /* XXX this looks very broken for non-buffer resources having more than one 
dim. */
-   if (box-x == 0  box-width == resource-width0) {
+   if (resource-target == PIPE_BUFFER 
+   box-x == 0  box-width == resource-width0) {
   usage |= PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE;
} else {
   usage |= PIPE_TRANSFER_DISCARD_RANGE;
-- 
1.9.1

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