diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2014-02-06 18:23:32 +0000 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2014-02-08 09:30:31 +0000 |
commit | 34ebe5c57c1677e7394c0f747af43b941e6c6281 (patch) | |
tree | 145479f8cb3055d11083c1d7cad77dbb7ac848f7 | |
parent | abfcb445b9246e658b64ba43abc6eb618971a546 (diff) | |
download | etna_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.h | 2 | ||||
-rw-r--r-- | src/driver/etna_resource.c | 4 |
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); |