Peter, What composited desktop are you running and can you point us to a url?
Steve Meier On Tue, 2007-11-06 at 23:46 +0000, Peter Clifton wrote: > Dear all, > > Working to fix the severe performance problem I encountered running > gschem on a composited desktop, I've got a series of patches which make > all gschem drawing go into the backbuffer _only_. > > We then (where appropriate) "invalidate" regions of the front-buffer, > triggering a blit between the backingstore drawable and the > GtkDrawingArea widget's drawable. This means one screen update hit for > the compositing manager to update, rather than one for every single line > we draw to screen. > > This isn't completely finished yet.. I suspect "stroke" drawing doesn't > work again, but I've not got libstroke installed at the moment to test. > > > As we'd get no speedup (perhaps a slowdown) by invalidating tiny tiny > areas for each line / shape we draw, I've only added invalidates in a > few places. The idea is that where we can know the bounds of a whole > update operation, we'll invalidate that area all at once. (Saves > computation time in merging lots of tiny regions). > > If there are drawing regressions with these patches, it means I need to > add more invalidates somewhere (or fix the drawing code to work via one > of the routines which does invalidation). > > I'd very much appreciate some testing and feedback at this stage.. does > it work for you, does it speed up / slow down various operations, and > can you spot any new drawing areas cf. without these patches). Does > anyone run with a composited desktop (e.g. compiz, compiz-fusion, beryl > etc..) > > > To test, either clone my repo.or.cz repository: > git clone git://repo.or.cz/geda-gaf/pcjc2.git > (The useful code is in the "toplevel_overhaul2" branch.) > > or add it as a remote branch to an existing checkout, e.g.. > > git remote add -f -m toplevel_overhaul2 pcjc2 > git://repo.or.cz/geda-gaf/pcjc2.git > git fetch pcjc2 > > git checkout pcjc2/toplevel_overhaul2 > > will take you to the branch I've been working on. (Ok, bad branch > management there... I ended up working in the stgit series for the other > changes I've been working on / trying to push recently). > > I un-applied the rest of that series before pushing out to the > repo.or.cz repository, so you'll not be cluttered with changes to remove > the ATTRIB struct, cleanup rotating, mirroring APIs, refactor place > buffers, allow rotating whilst placing in any way, ..... (list goes on). > > NB: SHA1 of these patches subject to change, as they are an stgit > series, and can be edited / pushed / popped into different orders. Don't > base lots of changes off these! > > Comments and code-review most welcome, > > Best wishes, > _______________________________________________ geda-dev mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
