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

Reply via email to