On the Cello side, the 1000-GF dispatch bottleneck is gone, and that does seem to have improved things by 20% or so. But I still get 10fps. This I presume is the step-function effect: I will not see a change in fps until I get fast enough to reach the next step in improvement, like 20fps.
My next effort will be to implement display lists just at the widget level, so the containers (stacks and rows) will still go through their logic on each frame, but when it is time to draw a slider track or slider thumb (possibly even the combo) those will be done by display-lists. Stay tuned.
kt
Sounds cool. Where can I download it?
-- Michael
On Sat, 2004-04-24 at 14:32, Kenny Tilton wrote:
On the Cello side, the 1000-GF dispatch bottleneck is gone, and that does seem to have improved things by 20% or so. But I still get 10fps. This I presume is the step-function effect: I will not see a change in fps until I get fast enough to reach the next step in improvement, like 20fps.
My next effort will be to implement display lists just at the widget level, so the containers (stacks and rows) will still go through their logic on each frame, but when it is time to draw a slider track or slider thumb (possibly even the combo) those will be done by display-lists. Stay tuned.
kt
-- 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
cells-devel site list cells-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cells-devel
Michael Naunton wrote:
Sounds cool. Where can I download it?
I you mean Cello (I ask because this is the Cells list, which is dedicated to Cells only (but may eventually go away if it makes sense to support Cells on the Cello lists)), the pre-Speed Week version is here:
ftp://common-lisp.net/pub/project/cello
Start with the install notes. DLLs are there for Win32, Xen are on their own (this is actually a release for people interested in /porting/ what there is to diff environments, /not/ for development.)
If you mean The Thousand GF Dispatch Elimination, that was nice but no home run, so I won't release that separately. I want to get the Light Panel up to at least 30fps before doing another release.
kenny
Thanks, this looks really promising as a video game development environment: o Cells gives us MVC for free. o Cello looks pretty good as a platform-independent GUI o Lisp gives us the abstractions we need to hide OpenGL's complexity. o Lisp makes so many tasks (asset management, etc) easy. o Sound is lurking in the wings.
The big win is, of course, Cells. Cello demonstrates it's power. With the abstraction (A depends on B,) many software reuse issues just vanish.
With a few good examples on line, many newbie programmers are going to want to try this environment out.
-- Michael (resisting the urge to port to CMUCL this second.)
On Sat, 2004-04-24 at 18:29, Kenny Tilton wrote:
Michael Naunton wrote:
Sounds cool. Where can I download it?
I you mean Cello (I ask because this is the Cells list, which is dedicated to Cells only (but may eventually go away if it makes sense to support Cells on the Cello lists)), the pre-Speed Week version is here:
ftp://common-lisp.net/pub/project/cello
Start with the install notes. DLLs are there for Win32, Xen are on their own (this is actually a release for people interested in /porting/ what there is to diff environments, /not/ for development.)
If you mean The Thousand GF Dispatch Elimination, that was nice but no home run, so I won't release that separately. I want to get the Light Panel up to at least 30fps before doing another release.
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
cells-devel site list cells-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cells-devel
Michael Naunton wrote:
Thanks, this looks really promising as a video game development environment:
Yes. I am fast (specifically, at around 30fps) losing interest in finishing the GUI to do educational software. Lisp always does this to me.
o Cells gives us MVC for free. o Cello looks pretty good as a platform-independent GUI o Lisp gives us the abstractions we need to hide OpenGL's complexity.
And boy does it need hiding. But once hidden, the user can really have some fun. At 25-35fps.
o Lisp makes so many tasks (asset management, etc) easy. o Sound is lurking in the wings.
With 3d effects, no less. This should be one of the easier bolt-ins (famous last words). But I am getting so busy now it is hard to justify. Maybe after a good day (like today?) I'll treat myself to adding OpenAL.
The big win is, of course, Cells. Cello demonstrates it's power.
Yep. I always figured Cells would not catch on without a "demo" GUI, though Cells transcend GUIs. But the GUI would have to be fast.
With the abstraction (A depends on B,) many software reuse issues just vanish.
With a few good examples on line, many newbie programmers are going to want to try this environment out.
...and serious gamers, too, perhaps. We've had a couple of newbies land on our shores in the past because Lisp is always being mentioned favorably on same gamers forum or other. Gotta remember to make an announcement over there when Cello gets a little polish.
Speaking of polish, I am hoping that is all we need. The groovy 340-widget Light Panel now runs at 25-35fps. The variation now comes from the complexity of the shape being displayed! That used to be noise compared to the cost of re-rendering each frame the entire window. Now if I am just watching the thing spin I just need to re-render the spinning shape. Working a slider means that also needs to be re-rendered. Otherwise display lists (after a subtle tweak to the Cello imaging algorithm) do all the work. And they are almost working properly as well as fast. :)
No jumping up and down yet. Interactions with FTGL are spotty, but I think that is simply because FTGL caches its own display lists, and I think I am pulling the rug out from under it on each run by re-initializing OpenGL and not re-initializing FTGL. So it sits there happily using display list numbers OpenGL does not recognize (an NOP). It is really neat because as I click around individual letters disappear one or two at a time. Kinda Vanna White in reverse. Hang on. That can't be initialization then, because they always start out fine. We'll see.
Also, I am not sure the current rates will hold up. It may be that refreshing a display list requires refreshing all display lists above it in the tree. We'll see. That would still be mad fast I think. I am not refreshing up now and it works, but I think it should not, so no champagne yet.
-- Michael (resisting the urge to port to CMUCL this second.)
Just curious: how did you reach all these conclusions? Don't tell me you actually read the code?! :)
kenny