From: Kenny Tilton
Subject: Cello Speed Week Results
Date: 
Message-ID: <408D63B8.2010600@nyc.rr.com>
I got a report of the Cello demos running at 1fps for one intrepid user 
(as in brave enough to try installing the mess) and my own performance 
had dropped to 8-something fps... at the same time I noticed an innocent 
little design decision had led to 1000 GF dispatches to ix-render-layer 
on each frame, most of the dozens of i-r-l methods had eql specializers 
up front... and i kept wondering if a ten-minute patch could have entire 
windows re-rendered with one gl-call-list, so... Cello Speed Week!!!!!!!

The system: Dell Inspiron 5150 laptop, 3.06ghz, 512mb ram
The card: Mobility Radeon 9000, 32mb RAM
The OS: Win XP Home

The Radeon was high-end for laptops in late 2002, tho the 32mb RAM is on 
the low end of configs (64 and 128mb also possible). A little surfing 
indicates the 9600 was "far faster" than the 9000 and the 9700 a little 
faster than that (all mobile versions, btw--same model #s used for 
desktop cards).

Speed Week revisited:

Designing out the 1000 GF dispatches felt good and knocked refreshes 
down from 100ms to 80ms, but that was not enough to budge frame rates, 
which have a step-function quality to them.

Display lists have been more like a three-day fix, but they work as 
advertised and Cello runs the same demo between 28-32 fps. At this point 
the complexity of the spinning shape, which was just noise, now causes 
the 28-32 swing. I could reduce the variation and up the rates further 
by bifurcating the rendering of the shape such that the varying rotation 
could be applied to a fixed display list encompassing the structure and 
texturing of the shape, but that can wait. That would make sense if I 
had dozens of shapes which varied mostly in position/orientation, such 
as in an Asteroids game.

Note that this is a phat 900x900 window, and with a 600x400 pixel 
eye-candy background texture that gets re-rendered each time along with 
the shape because I did not think to isolate the eye-candy. Turning that 
texture off or shrinking the window to 900x750 (cropping the texture 
somewhat) ups the action to 50fps.

There was some confusion last time about the complexity of the 
Wicked-Cool Light Panel Demo. It contains 349 renderable nodes, 213 of 
which are atoms such as text labels and 3d buttons. Maybe 80 widgets 
render anti-aliased text, in which each character is a separate opengl 
texture. The other nodes are containers, which basically just tell their 
kids to render, but many of these render backgrounds or frames or set up 
OpenGL clipping. OpenGL tuning fans may find this interesting: I tried 
turning off the shape DL altogether, since I was using it only once 
(since it was changing on every frame with my dumb set-up). But that 
meant each ascendant up to the window had to render from scratch, 
because otherwise the rendering just calls the DL of the window and that 
leads to the nested original rendering of the Hedron, and it never spins.

But that was slower. It was faster to refresh the shape DL (albeit for 
one-time use) in its new orientation and then just kick off the window 
DL. (OpenGL looks up each nested DL as it gets to it so the new 
definition gets picked up and the shape spins.)

One lucky thing here is that Cello and OpenGL work exactly alike in re 
nesting of structure and coordinate system transformations. It is 
especially sweet that OpenGL has that dynamic quality of picking up the 
new definition of a nested DL. That combined with the fact that in both 
Cello and OpenGL any node can be rendered in isolation and then have 
that rendering played back in a larger context with lighting.

Bottom line: yes, the Radeon 9700 is still a very good card, but the 
frame rates are great for a large, hairy window which has not even been 
optimized as much as it could. Realistic use (simpler window, less 
capable card) should also be great, and cards are getting faster all the 
time.

Next step is a swipe at auto-destudlifcation, then PortaCello4 will be 
released.

zoom zoom zoom...

kenny


-- 
Home? http://tilton-technology.com
Cells? http://www.common-lisp.net/project/cells/
Cello? http://www.common-lisp.net/project/cello/
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
Your Project Here! http://alu.cliki.net/Industry%20Application