Jonathan Adamczewski wrote: > I've attached a patch of something I've had sitting around for a > while - unrolling the inner loop of spu_render.c:cmd_render(). > > It was taking approximately 50 cycles to extract the vertex indices, > calculate the vertex_header pointers and call tri_draw() for each > three vertices - . > > Unrolled, it takes less than 100 cycles to extract, unpack, > calculate pointers and call tri_draw() eight times. It does have a > nasty jump-tabled switch. I'm sure that there's a better way... > > Code size of spu_render.o gets larger due to the extra constants and > work in the inner loop, there are extra stack saves and loads > because there are more registers in use, and an assert. spu_tri.o > gets a little smaller. > > Comments?
Looks good to me. I'll commit this (and your tri cull patch) shortly. -Brian ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com _______________________________________________ Mesa3d-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
