Soeren Sandmann wrote:
Hi,
Here is an overview of what the current QXL driver does and does not
do. The parts of X rendering that are currently being used by cairo
and Qt are:
- Most of XRender
- Image compositing
- Glyphs
Does anything use Xrender for drawing glyphs these days?
Certainly, with a compositing window manager, nothing is getting
rendered by X...
The X driver for the QXL device is not yet very sophisticated. What it
does is basically this:
- It keeps a separate memory framebuffer uptodate using
software
- Solid fills and CopyArea requests are turned into SPICE
commands.
- The cursor is drawn using cursor commands
- For other things, bitmaps are sent across the wire
- It uses the hashing feature of SPICE to only send
hashcodes for those bitmaps if it can get away with
it.
Even this simple support provides a better user experience than VNC
because scrolling is accelerated and doesn't result in a huge bitmap
getting sent across the wire.
Scrolling is accelerated in VNC. In the Cirrus adapter, both X and
Windows use a video-to-video bitblt, we use this to create a VNC
CopyRect which makes scrolling and Window movement smooth.
However, as things stand right now, there is not much point in adding
this support, because X applications essentially always work like
this:
- render to offscreen pixmap
- copy pixmap to screen
There is not yet support for offscreen pixmaps in SPICE, so at the
moment, solid fill and CopyArea are the two main things that actually
make a difference.
Okay, that's in line with what my expectations were. So what's the
future of Spice for X? Anything clever or is Windows the only target
right now?
Regards,
Anthony Liguori