[cairo] is self-copy supposed to work?

Soeren Sandmann sandmann at daimi.au.dk
Wed May 5 07:38:57 PDT 2010


Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:

> > There is the beginning of a branch to move FbBlt(), which is the meat
> > of XCopyArea(), here:
> >
> >     http://cgit.freedesktop.org/~sandmann/pixman/log/?h=blt
> >
> > However, this won't make 0.20.0 unless someone makes it happen.
> 
> The discouraging thing is that only a small subset of this functionality is
> generally needed, and the rest has to be implemented as a payload.

Code for the full functionality is needed *somewhere* though, because
the X server has to provide it. 

Moving stuff out of the X server and into libraries is a good thing in
general because the X server is such a pain to debug. You pretty much
need two computers, and then the X server has to be restarted and
applications to reproduce the bug. In pixman you can just install a
new library and run the reproducer again. Also the CPU specific
infrastructure in pixman can be reused.

> And it is quite X server specific, with the things like 'reverse'
> and 'upsidedown' self-copy related flags required to be calculated
> by the caller.

We need similar functionality in spice for example (a blt with all the
raster operators).

> don't know how convenient it is going to be for use in cairo for
> example.

The branch is far from being mergable at this point. It is just an
experiment to see if it would be easy to do. 

It may be that there should be a simpler wrapper around FbBlt(), or
that we need the full CopyArea() implementation, but in either case,
something like FbBlt() will have to exist within pixman.


Soren


More information about the cairo mailing list