Hi guys, I'm not sure this is specific to the invalidate / expose model stuff, or the cairo code. I suspect not, however I've been seeing some real performance problems dragging around components with lots of text with the current git HEAD code.
I've tracked this down to the fact that the path in my Xorg server which is being hit for lines produced with gdk_draw_line() is not accelerated for non-horizontal / non-vertical lines (using the default "EXA" acceleration architecture in the X server). (EXA has been default for a while now, although I can't remember what X server / Intel driver combination made that the case). I'm not sure what other drivers will be like, but I think the issues is the core EXA code. It seems that the particular combination of X server + Intel driver which I'm running (quite new, and not stable yet), incurs a severe performance penalty for pixmap migration, so I'm really noticing this non-accelerated path when we draw lots of little lines for text. (I don't notice it when using the development gschem + pango code which uses accelerated paths for drawing glyphs). The solution in my case (without pango yet), was to switch o_line_draw_place() to use cairo, which then uses the XRender extention and hits lots of nice fast-paths in the X server. It has been on my todo list to get all the "place", "rubber" and "stretch" drawing operations to use cairo (for consistency), however I'd be interested to hear if anyone else notices a performance problem with the old code - which is fixed by this new stuff. Please give the "cairo_place_lines" branch a test in my repo.or.cz repository and report how that changes performance placing / moving components. git clone git://repo.or.cz/geda-gaf/pcjc2.git (Or "git fetch" if you have it already) git checkout -b cairo_place_lines origin/cairo_place_lines Best regards, -- Peter Clifton Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA Tel: +44 (0)7729 980173 - (No signal in the lab!) _______________________________________________ geda-dev mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
