[cello-devel] Cello Speed Week Results
Kenny Tilton
ktilton at nyc.rr.com
Mon Apr 26 19:32:08 UTC 2004
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
More information about the cello-devel
mailing list