summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2014-02-06 18:23:32 +0000
committerChristian Gmeiner <christian.gmeiner@gmail.com>2014-02-08 09:30:31 +0000
commit34ebe5c57c1677e7394c0f747af43b941e6c6281 (patch)
tree145479f8cb3055d11083c1d7cad77dbb7ac848f7
parentabfcb445b9246e658b64ba43abc6eb618971a546 (diff)
downloadetna_viv-34ebe5c57c1677e7394c0f747af43b941e6c6281.tar.gz
etna_viv-34ebe5c57c1677e7394c0f747af43b941e6c6281.tar.xz
driver: store calculated pipe addresses in struct etna_resource
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
-rw-r--r--src/driver/etna_pipe.h2
-rw-r--r--src/driver/etna_resource.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/src/driver/etna_pipe.h b/src/driver/etna_pipe.h
index 54a113a..c9d59b1 100644
--- a/src/driver/etna_pipe.h
+++ b/src/driver/etna_pipe.h
@@ -87,6 +87,8 @@ struct etna_resource
struct etna_resource_level levels[ETNA_NUM_LOD];
struct etna_pipe_context *last_ctx; /* Last bound context */
+
+ uint32_t pipe_addr[2];
};
struct etna_surface
diff --git a/src/driver/etna_resource.c b/src/driver/etna_resource.c
index 31c15d3..4389a2f 100644
--- a/src/driver/etna_resource.c
+++ b/src/driver/etna_resource.c
@@ -245,6 +245,10 @@ static struct pipe_resource * etna_screen_resource_create(struct pipe_screen *sc
resource->ts_bo = 0; /* TS is only created when first bound to surface */
pipe_reference_init(&resource->base.reference, 1);
+ /* calculate pipe addresses */
+ resource->pipe_addr[0] = etna_bo_gpu_address(resource->bo) + resource->levels[0].offset;
+ resource->pipe_addr[1] = etna_bo_gpu_address(resource->bo) + resource->levels[0].offset + (resource->levels[0].size / 2);
+
if(DBG_ENABLED(ETNA_DBG_ZERO))
{
void *map = etna_bo_map(bo);