From 44f4b9b9ea81974a8e7de444280e471ca05e9261 Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 10 Jan 2008 21:22:03 -0700 Subject: [PATCH] Cell: avoid copying vertex data --- src/mesa/pipe/cell/spu/main.c | 49 ++++++++----------------------------------- src/mesa/pipe/cell/spu/tri.c | 6 ------ src/mesa/pipe/cell/spu/tri.h | 2 +- 3 files changed, 10 insertions(+), 47 deletions(-) diff --git a/src/mesa/pipe/cell/spu/main.c b/src/mesa/pipe/cell/spu/main.c index 84134b8..27e1169 100644 --- a/src/mesa/pipe/cell/spu/main.c +++ b/src/mesa/pipe/cell/spu/main.c @@ -174,6 +174,9 @@ tile_bounding_box(const struct cell_command_render *render, *tymin = 0; *box_num_tiles = fb.width_tiles * fb.height_tiles; *box_width_tiles = fb.width_tiles; + (void) render; + (void) txmax; + (void) tymax; #else uint txmax, tymax, box_height_tiles; @@ -255,26 +258,9 @@ render(const struct cell_command_render *render) for (j = 0; j < render->num_verts; j += 3) { struct prim_header prim; - /* - printf(" %u: Triangle %g,%g %g,%g %g,%g\n", - init.id, - prim_buffer.vertex[j*3+0][0][0], - prim_buffer.vertex[j*3+0][0][1], - prim_buffer.vertex[j*3+1][0][0], - prim_buffer.vertex[j*3+1][0][1], - prim_buffer.vertex[j*3+2][0][0], - prim_buffer.vertex[j*3+2][0][1]); - */ - - /* pos */ - COPY_4V(prim.v[0].data[0], prim_buffer.vertex[j+0][0]); - COPY_4V(prim.v[1].data[0], prim_buffer.vertex[j+1][0]); - COPY_4V(prim.v[2].data[0], prim_buffer.vertex[j+2][0]); - - /* color */ - COPY_4V(prim.v[0].data[1], prim_buffer.vertex[j+0][1]); - COPY_4V(prim.v[1].data[1], prim_buffer.vertex[j+1][1]); - COPY_4V(prim.v[2].data[1], prim_buffer.vertex[j+2][1]); + prim.v[0] = (struct vertex_header *) prim_buffer.vertex[j+0]; + prim.v[1] = (struct vertex_header *) prim_buffer.vertex[j+1]; + prim.v[2] = (struct vertex_header *) prim_buffer.vertex[j+2]; tri_draw(&prim, tx, ty); } @@ -391,26 +377,9 @@ render_vbuf(const struct cell_command_render_vbuf *render) v1 = vbuf + indexes[j+1] * render->num_attribs * 4; v2 = vbuf + indexes[j+2] * render->num_attribs * 4; - /* - printf(" %u: Triangle %g,%g %g,%g %g,%g\n", - init.id, - prim_buffer.vertex[j*3+0][0][0], - prim_buffer.vertex[j*3+0][0][1], - prim_buffer.vertex[j*3+1][0][0], - prim_buffer.vertex[j*3+1][0][1], - prim_buffer.vertex[j*3+2][0][0], - prim_buffer.vertex[j*3+2][0][1]); - */ - - /* pos */ - COPY_4V(prim.v[0].data[0], v0); - COPY_4V(prim.v[1].data[0], v1); - COPY_4V(prim.v[2].data[0], v2); - - /* color */ - COPY_4V(prim.v[0].data[1], v0 + 4); - COPY_4V(prim.v[1].data[1], v1 + 4); - COPY_4V(prim.v[2].data[1], v2 + 4); + prim.v[0] = (struct vertex_header *) v0; + prim.v[1] = (struct vertex_header *) v1; + prim.v[2] = (struct vertex_header *) v2; tri_draw(&prim, tx, ty); } diff --git a/src/mesa/pipe/cell/spu/tri.c b/src/mesa/pipe/cell/spu/tri.c index f902bf2..77f7052 100644 --- a/src/mesa/pipe/cell/spu/tri.c +++ b/src/mesa/pipe/cell/spu/tri.c @@ -455,15 +455,9 @@ static void print_vertex(const struct setup_stage *setup, static boolean setup_sort_vertices( struct setup_stage *setup, const struct prim_header *prim ) { -#if 0 const struct vertex_header *v0 = prim->v[0]; const struct vertex_header *v1 = prim->v[1]; const struct vertex_header *v2 = prim->v[2]; -#else - const struct vertex_header *v0 = &prim->v[0]; - const struct vertex_header *v1 = &prim->v[1]; - const struct vertex_header *v2 = &prim->v[2]; -#endif #if DEBUG_VERTS fprintf(stderr, "Triangle:\n"); diff --git a/src/mesa/pipe/cell/spu/tri.h b/src/mesa/pipe/cell/spu/tri.h index 01612a2..bcb4285 100644 --- a/src/mesa/pipe/cell/spu/tri.h +++ b/src/mesa/pipe/cell/spu/tri.h @@ -40,7 +40,7 @@ struct vertex_header { struct prim_header { - struct vertex_header v[3]; + struct vertex_header *v[3]; uint color; }; -- 2.7.4