summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2014-02-06 18:10:36 +0000
committerChristian Gmeiner <christian.gmeiner@gmail.com>2014-02-08 09:30:30 +0000
commitabfcb445b9246e658b64ba43abc6eb618971a546 (patch)
tree1e8943d30b628d32ca2fe0ed2c46c95bf8974ce3
parent568d290514b6e61428bb73281ac596b0404c8f70 (diff)
downloadetna_viv-abfcb445b9246e658b64ba43abc6eb618971a546.tar.gz
etna_viv-abfcb445b9246e658b64ba43abc6eb618971a546.tar.xz
rs: change struct rs_state to contain all pipe addresses
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
-rw-r--r--src/driver/etna_screen.c4
-rw-r--r--src/driver/etna_surface.c2
-rw-r--r--src/etnaviv/etna_rs.c12
-rw-r--r--src/etnaviv/etna_rs.h4
-rw-r--r--src/lib/fbdemos.c2
5 files changed, 12 insertions, 12 deletions
diff --git a/src/driver/etna_screen.c b/src/driver/etna_screen.c
index f381c7d..98e8f5a 100644
--- a/src/driver/etna_screen.c
+++ b/src/driver/etna_screen.c
@@ -474,11 +474,11 @@ static void etna_screen_flush_frontbuffer( struct pipe_screen *screen,
etna_compile_rs_state(ctx, &copy_to_screen, &(struct rs_state){
.source_format = translate_rt_format(rt_resource->base.format, false),
.source_tiling = rt_resource->layout,
- .source_addr = etna_bo_gpu_address(rt_resource->bo) + rt_resource->levels[level].offset,
+ .source_addr[0] = etna_bo_gpu_address(rt_resource->bo) + rt_resource->levels[level].offset,
.source_stride = rt_resource->levels[level].stride,
.dest_format = drawable->rs_format,
.dest_tiling = ETNA_LAYOUT_LINEAR,
- .dest_addr = etna_bo_gpu_address(drawable->bo),
+ .dest_addr[0] = etna_bo_gpu_address(drawable->bo),
.dest_stride = drawable->stride,
.downsample_x = msaa_xscale > 1,
.downsample_y = msaa_yscale > 1,
diff --git a/src/driver/etna_surface.c b/src/driver/etna_surface.c
index 2442758..81ff249 100644
--- a/src/driver/etna_surface.c
+++ b/src/driver/etna_surface.c
@@ -92,7 +92,7 @@ static struct pipe_surface *etna_pipe_create_surface(struct pipe_context *pipe,
etna_compile_rs_state(priv->ctx, &surf->clear_command, &(struct rs_state){
.source_format = RS_FORMAT_A8R8G8B8,
.dest_format = RS_FORMAT_A8R8G8B8,
- .dest_addr = etna_bo_gpu_address(ts_bo) + surf->surf.ts_offset,
+ .dest_addr[0] = etna_bo_gpu_address(ts_bo) + surf->surf.ts_offset,
.dest_stride = 0x40,
.dest_tiling = ETNA_LAYOUT_TILED,
.dither = {0xffffffff, 0xffffffff},
diff --git a/src/etnaviv/etna_rs.c b/src/etnaviv/etna_rs.c
index 2be0853..45321a5 100644
--- a/src/etnaviv/etna_rs.c
+++ b/src/etnaviv/etna_rs.c
@@ -76,13 +76,13 @@ void etna_compile_rs_state(struct etna_ctx *restrict ctx, struct compiled_rs_sta
((rs->dest_tiling&1)?VIVS_RS_CONFIG_DEST_TILED:0) |
((rs->swap_rb)?VIVS_RS_CONFIG_SWAP_RB:0) |
((rs->flip)?VIVS_RS_CONFIG_FLIP:0));
- SET_STATE(RS_SOURCE_ADDR, rs->source_addr);
- SET_STATE(RS_PIPE_SOURCE_ADDR[0], rs->source_addr);
+ SET_STATE(RS_SOURCE_ADDR, rs->source_addr[0]);
+ SET_STATE(RS_PIPE_SOURCE_ADDR[0], rs->source_addr[0]);
SET_STATE(RS_SOURCE_STRIDE, (rs->source_stride << source_stride_shift) |
((rs->source_tiling&2)?VIVS_RS_SOURCE_STRIDE_TILING:0) |
((source_multi)?VIVS_RS_SOURCE_STRIDE_MULTI:0));
- SET_STATE(RS_DEST_ADDR, rs->dest_addr);
- SET_STATE(RS_PIPE_DEST_ADDR[0], rs->dest_addr);
+ SET_STATE(RS_DEST_ADDR, rs->dest_addr[0]);
+ SET_STATE(RS_PIPE_DEST_ADDR[0], rs->dest_addr[0]);
SET_STATE(RS_DEST_STRIDE, (rs->dest_stride << dest_stride_shift) |
((rs->dest_tiling&2)?VIVS_RS_DEST_STRIDE_TILING:0) |
((dest_multi)?VIVS_RS_DEST_STRIDE_MULTI:0));
@@ -94,11 +94,11 @@ void etna_compile_rs_state(struct etna_ctx *restrict ctx, struct compiled_rs_sta
{
if (source_multi)
{
- SET_STATE(RS_PIPE_SOURCE_ADDR[1], rs->source_addr); /* TODO */
+ SET_STATE(RS_PIPE_SOURCE_ADDR[1], rs->source_addr[1]);
}
if (dest_multi)
{
- SET_STATE(RS_PIPE_DEST_ADDR[1], rs->dest_addr); /* TODO */
+ SET_STATE(RS_PIPE_DEST_ADDR[1], rs->dest_addr[1]);
}
SET_STATE(RS_WINDOW_SIZE, VIVS_RS_WINDOW_SIZE_WIDTH(rs->width) | VIVS_RS_WINDOW_SIZE_HEIGHT(rs->height / 2));
}
diff --git a/src/etnaviv/etna_rs.h b/src/etnaviv/etna_rs.h
index b660a10..a4b26c0 100644
--- a/src/etnaviv/etna_rs.h
+++ b/src/etnaviv/etna_rs.h
@@ -36,9 +36,9 @@ struct rs_state
uint8_t dest_format; // RS_FORMAT_XXX
uint8_t swap_rb;
uint8_t flip;
- uint32_t source_addr;
+ uint32_t source_addr[2];
uint32_t source_stride;
- uint32_t dest_addr;
+ uint32_t dest_addr[2];
uint32_t dest_stride;
uint16_t width; // source width
uint16_t height; // source height
diff --git a/src/lib/fbdemos.c b/src/lib/fbdemos.c
index 3d3d55b..e619cc9 100644
--- a/src/lib/fbdemos.c
+++ b/src/lib/fbdemos.c
@@ -292,7 +292,7 @@ int etna_fb_bind_resource(struct fbdemos_scaffold *fbs, struct pipe_resource *rt
etna_compile_rs_state(fbs->ctx, &fb->copy_to_screen[bi], &(struct rs_state){
.source_format = translate_rt_format(rt_resource->base.format, false),
.source_tiling = rt_resource->layout,
- .source_addr = etna_bo_gpu_address(rt_resource->bo) + rt_resource->levels[0].offset,
+ .source_addr[0] = etna_bo_gpu_address(rt_resource->bo) + rt_resource->levels[0].offset,
.source_stride = rt_resource->levels[0].stride,
.dest_format = fb->rs_format,
.dest_tiling = ETNA_LAYOUT_LINEAR,