summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2010-10-21 13:36:01 +1000
committerDave Airlie <[email protected]>2010-10-21 13:36:01 +1000
commit92ed84d11560e226c87bf2758b1503e3075b3f82 (patch)
treeffb06b34ab7d25255b9c497fb609ae2486012b3a
parent91e513044de21f20c2c085a99e9d784c7a61173c (diff)
r600g: introduce a per-driver resource flag for transfers.
this is to be used to decide not to tile a surface being used for transfers.
-rw-r--r--src/gallium/drivers/r600/r600_resource.h3
-rw-r--r--src/gallium/drivers/r600/r600_texture.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/r600_resource.h b/src/gallium/drivers/r600/r600_resource.h
index 5d9fe8cf944..d152285815c 100644
--- a/src/gallium/drivers/r600/r600_resource.h
+++ b/src/gallium/drivers/r600/r600_resource.h
@@ -25,6 +25,9 @@
#include "util/u_transfer.h"
+/* flag to indicate a resource is to be used as a transfer so should not be tiled */
+#define R600_RESOURCE_FLAG_TRANSFER PIPE_RESOURCE_FLAG_DRV_PRIV
+
/* Texture transfer. */
struct r600_transfer {
/* Base class. */
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index c765c0c87a1..b0e5cda6010 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -361,7 +361,7 @@ int r600_texture_depth_flush(struct pipe_context *ctx,
resource.nr_samples = 0;
resource.usage = PIPE_USAGE_DYNAMIC;
resource.bind = 0;
- resource.flags = 0;
+ resource.flags = R600_RESOURCE_FLAG_TRANSFER;
resource.bind |= PIPE_BIND_DEPTH_STENCIL;
@@ -412,7 +412,7 @@ struct pipe_transfer* r600_texture_get_transfer(struct pipe_context *ctx,
resource.nr_samples = 0;
resource.usage = PIPE_USAGE_DYNAMIC;
resource.bind = 0;
- resource.flags = 0;
+ resource.flags = R600_RESOURCE_FLAG_TRANSFER;
/* For texture reading, the temporary (detiled) texture is used as
* a render target when blitting from a tiled texture. */
if (usage & PIPE_TRANSFER_READ) {