aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_resource.h
diff options
context:
space:
mode:
authorVadim Girlin <[email protected]>2012-07-11 02:19:51 +0400
committerVadim Girlin <[email protected]>2012-07-11 02:39:59 +0400
commit37708479608af877986b76302a9c92611d1e23d0 (patch)
treef66db9d3760b8402df29044b59e70f7e59c7b451 /src/gallium/drivers/r600/r600_resource.h
parent860d5bdf984730f69cd19b4f7145f3c84b57d33d (diff)
r600g: improve flushed depth texture handling v2
Use r600_resource_texture::flished_depth_texture for GPU access, and allocate it in the VRAM. For transfers we'll allocate texture in the GTT and store it in the r600_transfer::staging. Improves performance when flushed depth texture is frequently used by the GPU, e.g. in Lightsmark (~30%) Signed-off-by: Vadim Girlin <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_resource.h')
-rw-r--r--src/gallium/drivers/r600/r600_resource.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/r600_resource.h b/src/gallium/drivers/r600/r600_resource.h
index d1f3a4766ca..7327ba6c2d7 100644
--- a/src/gallium/drivers/r600/r600_resource.h
+++ b/src/gallium/drivers/r600/r600_resource.h
@@ -89,9 +89,11 @@ static INLINE struct r600_resource *r600_resource(struct pipe_resource *r)
}
void r600_init_flushed_depth_texture(struct pipe_context *ctx,
- struct pipe_resource *texture);
+ struct pipe_resource *texture,
+ struct r600_resource_texture **staging);
void r600_texture_depth_flush(struct pipe_context *ctx,
- struct pipe_resource *texture);
+ struct pipe_resource *texture,
+ struct r600_resource_texture **staging);
/* r600_texture.c texture transfer functions. */
struct pipe_transfer* r600_texture_get_transfer(struct pipe_context *ctx,