[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: svg crystal?
From:       Josef Weidendorfer <Josef.Weidendorfer () gmx ! de>
Date:       2002-11-13 15:29:02
[Download RAW message or body]

On Wednesday 13 November 2002 10:54, Vadim Plessky wrote:
> On Wednesday 13 November 2002 3:59 am, Maks Orlovich wrote:
> |  Vadim Plessky wrote:
> |  > On Tuesday 12 November 2002 10:46 pm, Nikolas Zimmermann wrote:
> |  > |  On Tuesday 12 November 2002 18:25, Nicolas Goutte wrote:
> |  > |  > As far as I know, the base for Crystal are SVG pictures. But KDE
> |  > |  > still can nly use PNG icons.
> |  > |  >
> |  > |  > Have a nice day/evening/night!
> |  > |
> |  > |  No, we can also render SVGs since quite some months :)
> |  > |  We prerender the icons and commit the generated ones, for
> |  > |  speed reasons. (PNG loading is faster than SVG rendering...).
> |  >
> |  > I believe it's possible to reduce this gap.
> |  > I don't know what is typical time to load PNG, but good SVG icon can
> |  > be rendered in less than 0.5 sec.
> |
> |  Which means it's unusable, as you need to load about 5-10 icons per a
> | menu, not to mention the toolbars. I *hope* you're wrong.
>
> Sorry, I has been mistaken by factor of 10x.
>
> [vad@VPlessky Blue-Sphere]$ test-performance arrow-right.svg
> File 'arrow-right.svg'
> Scaling took 0.061831(s)
> [vad@VPlessky Blue-Sphere]$ test-performance arrow-right.svg
> File 'arrow-right.svg'
> Scaling took 0.0620885(s)

Hi,

I don't think online rendering to be much of a issue. There always should be 
something like a persistant icon cache (even with lazy icon loading...).
This should be a (few) big shared pixmap(s) on the X11 server where 
applications could blit the needed icons from. And for applications to 
quickly recognize this on startup, there should be something like a ksycoca 
mappable database. I would say another job for a KDED daemon.

Even for .png you have to apply icon effects. A nice thing of SVG is that 
these icon effects could be simple added to the DOM before rendering.

And I don't think that hardware accelaration in SVG drawing will bring the 
speedup for 16x16 icons ;-)

Aside from that, if I start konqueror as file manager showing my home, it WILL 
need >40 icons from the beginning.

You know, I'm very interested in benchmarks when QT will use Xc for QPainter 
on X11, together with hardware acceleration (Yeah, anti-alised 
blended/transparent widgets even for X11 servers not supporting XRender!).

Josef

> So, you will get rendered 15 icons (required by KMail, or 14 icons for
> Konq) in about 0.9 sec.  (and this implementation is in *software*,
> hardware-assited rendering canbe faster by a factor of 100x)
> Which is *ok*, as Konq's startup time is about 3 sec., and Kmail starts
> even slower.

What about the icons of the icon view in file manager mode?

> If KSVG renders slower than this - KSVG should be fixed. No point to blaim
> SVG standard here.
> Besides:  I believe non-XML SVG drawings (SVG-like data structure) can be
> rendered even faster, as such format doesn't require parsing XML and
> building DOM tree.
>
> |  For perspective In startup times, we're talking about times in
> | milliseconds being something to be eliminated. And before demand-load,
> | the time to load PNG icons was unaccpetable - roughly a quarter of
> | startup time for app like Konqueror. And a non-trivial portion of that
> | concerns image->pixmap conversions, too. (Althugh granted, a lot is in
> | libpng, and disk I/O).
>
> You mean, decompressing zip'ed PNG image into pixmap?
> Does libpng/qt use MMX (or 3DNow, or SSE) instructions to speed up this
> process?

Speculating about the times special code parts take is almost useless.
You have to do benchmarks and profiles. I would suggest using oprofile to get 
the big picture for a konqueror startup. Inclusive kernel time, IPC to 
dcopserver and kio slaves, X11 time needed and so on...

If you want a nice GUI for oprofile, you will need to wait for the newest 
version of KCachegrind supporting views to your whole system ;-)
[I was joking]

Josef



>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic