kicad-developers team mailing list archive
Mailing list archive
Re: pcbnew very slow under some X11 machines
Vesa Solonen <vsolonen@...>
Sun, 20 Sep 2009 19:07:05 +0300 (EEST)
Alpine 1.99 (SOC 1136 2008-08-12)
Is anyone else experiencing this? Any ideas how to fix/debug this?
Are you running composited desktop? If you turn composition off you should
be ok... The problem lays in Kicad drawing code. It draws _everything_ in
immediate mode, so no caching and the whole scene is drawn again on every
zoom, etc. Now, under composited system, the draw operations usually
block until screen refresh and that means unbearably slow drawing
because of the incredible amount of drawing calls. One has to remember
that Kicad roots are old and that includes the drawing code.
Rectifying the situation is a very big task and for example I don't have
the necessarily skills for the job. On Linux the graphics stack is right
now in such a flux that it is somewhat difficult to make wise decisions.
Wx drawing tools are non accelerated still on Linux (GTK) and there is no
help. If we start doing say, OpenGl port, that will be wasted work very
soon when accelerated Cairo and Clutter takes off. Qt has probably some
more optimized tools, but porting from Wx to Qt might be a bit too much to
even consider. My current vote goes to implementing native Cairo context
inside WxGC and using extensive caching of graphics primitives. GEDA has
gone the Cairo way for schematics and OpenGl for layout.