from 10 fps to 30 fps…

… and still some heavy brain-fuckage on my side. I looked at all sugguestions people made after my blog-entry form yesterday. This is a list of things I’ve done sofar:

  • use GDK_POINTER_MOTION_HINT_MASK
  • use surface-buffering (only one per SVG-icon atm, thus scaled up icons look like crap right now)
  • added a fps- and event-counter
  • improved text-label rendering slightly, no so much shivering anymore
  • started to enhance the icon-positioning
  • tried to make text read better on different backgrounds
  • enter/leave-notify-events for setting/resetting scales

The pointer towards the hint of repaint-throttleing from Federico somehow wasn’t of any use. I tired the provided example sourcecodes, but they made absolutely no difference in runtime-performance on my machine. So I left this issue aside for now.

If you’re keen on the current code. Grab the snapshot here. To make it clear, this isn’t utilizing glitz at all at the moment. I totally messed this up, due to wrong assumptions. What would I do without the helpful souls on #cairo like cworth and vlad :)

This is what is still missing (what I still want to try out):

  • actually use glitz-surfaces and not only think they are used (that’s where my major brain-fuckage is/was)
  • input-shape support
  • further perfecting icon-positioning
  • the typical mipmap-pyramid of scale-levels

Furthermore there seems to be someone interested to pick up my “cairo-dock” experiment and make a full project out of it. More details and facts on this at a later date.

16 Responses to “from 10 fps to 30 fps…”

  1. Aldo "xoen" Giambelluca Says:

    I know you are not interested into a creation of a "MacOS X-like" dock, but there is a project, gimmie (http://beatnik.infogami.com/Gimmie) that needs cairo-love (http://beatnik.infogami.com/Plan_to_0.1), probably you can help Alex in some way ;)

  2. MacSlow Says:

    I’m aware of gimmie. Although I didn’t know that they are actively looking for cairo-love. Actually getting in touch with the people behind gimmie is already "scheduled" if you will. Someone, who plans to pick up "cairo-dock" and make a full-fledged project out of it wants to put some heads together with folks from gimmie.

  3. LucaC Says:

    Yesterday night I implemented in your code Federico’s suggestions too, without any improvements :(

  4. Nicolas Says:

    Your work sounds pretty interesting even if you aren’t planning to make it happen personnally as a full project. The big (and only) issue on my side is the poor framerate ranging from 0 to 2 :( probably one more con on the nvidia+ppc list!

  5. ToF Says:

    Hi,

    Each time I come here, I’m amazed about your work. It helps figuring out what can be done with the great libraries and technology we have (compositing, glx, cairo, gstreamer …), and it’s a big source of motivation.

    I tested the modified osx-bar-like code on my machine (P4 3.0 + GF6600GT on xorg 7.0 + xcompmgr) and I got between 2 and 17 fps. 2 on the left-most icons, and 17 fps (almost fluid) on the right-most. Of course the first version was prettier.

    If your primary objective was to stress test the libraries, do you have any conclusion so far ? (e.g. cairo is still too slow or something like that).

    great work again.

  6. MacSlow Says:

    While I was sleeping, the unstoppable global machinery called "OpenSource community" did its magic again… stuff was benchmarked, patches were supplied, sugguestions made, contacts established… right now I’ve a version on my harddisk that does 45 fps with much lower cpu-usage. There are still "low hanging fruits" I’ve to implement. So watch this space for the next revision, which hopefully blows your mind (again :).

  7. Diogo Says:

    If someone is actually going to pick this up,make sure to check a recent post on the compiz forums http://www.compiz.net/viewtopic.php?id=1257, thanks to Ludo, it’s a great idea and I believe I saw something like bezier curves here when you were experimenting argb visuals, but maybe I’m wrong, anyway the idea is definetly worth a check,

  8. Mark Czubin Says:

    I wonder if cairo is using the GPU to offload some of the calculations

  9. Mario Says:

    I REALLY hope that someone get your "sketch of dock" to create a real application (simple but usable)! Please, please, please, please! :)

  10. MacSlow Says:

    Don’t worry, it will be picked up… just check http://www.gnome-dock.org :)

  11. MacSlow Says:

    @Mark Czubin: No it does not. You can make cairo use OpenGL in general via glitz, if you’re using glitz-surfaces.

    @Diogo: I think you are talking about this: http://macslow.thepimp.net/?p=45 I’m not sure if I like the idea presented in that "LuDock", but I certainly would welcome a dock that could be moved/placed over a corner (L-shape like).

  12. MacSlow Says:

    Hm… that arrangement of icons along a spline-curve isn’t that hard… the "ugly" issue will be to make window as large as the current display to allow free movement across the whole screen. Of course you would need input-shape support to allow "click-through". *thinking* Do I feel tempted… hm… I’m unsure :)

  13. Mario Says:

    MacSlow wrote: Don’t worry, it will be picked up… just check http://www.gnome-dock.org :)

    Now I’m an happy man!! :D

    Mario

  14. ToF Says:

    You may know that there exists a widget for the gdesklets system that acts exatly like that. Last time I checked, It was performing very well with SVG icons both in terms of quality and speed. And it’s a python script.
    So I guess that it’s just a problem of tuning everything together and it could achieve 50 fps on a standard machine.

  15. Mario Says:

    @ToF: I know and use the gdesklets dock bar. I like it, but I doesn’t deal well with compiz. I want real transparency and an application that work well with the new widget-mode of compiz.

  16. Jon Says:

    114 fps! woot! This is awesome!

    Just a thought but maybe a howto for the n00bs?

Leave a Reply