From abfcb445b9246e658b64ba43abc6eb618971a546 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Thu, 6 Feb 2014 18:10:36 +0000 Subject: rs: change struct rs_state to contain all pipe addresses Signed-off-by: Christian Gmeiner --- src/driver/etna_screen.c | 4 ++-- src/driver/etna_surface.c | 2 +- src/etnaviv/etna_rs.c | 12 ++++++------ src/etnaviv/etna_rs.h | 4 ++-- src/lib/fbdemos.c | 2 +- 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, ©_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, -- cgit