[Spice-devel] [PATCH v2 spice-protocol 2/2] Add unix GL scanout messages

Gerd Hoffmann kraxel at redhat.com
Fri Dec 18 05:50:04 PST 2015


On Fr, 2015-12-18 at 03:47 -0500, Marc-André Lureau wrote:
> Hi
> 
> ----- Original Message -----
> > > 
> > > If you create a "primary" surface with surface_create, that's
> > > basically all you need to start displaying. It could quite easily
> > > learn to take a shm fd while keeping the rest of the Spice
> > > qxl/2od/canvas semantic.
> > 
> > But then you still stream all the qxl commands and image data over the
> > socket, so you don't save much compared to non-shm case.
> 
> I mean you could just share a QXL primary surface, display it and not draw into it.

Which VGA?  Workflow is quite different on qxl and anything else.

With qxl we'll go send the guests qxl render commands over to the
client, and the client renders it.  On the qemu/server side there is no
rendered primary surface, unless someone asks for it and we kick the
local renderer on the server side to satisfy the request.  Sharing the
primary surface doesn't buy us much here IMO.

With stdvga/cirrus/virtio-vga(in-2d-mode) the guest renders into a
framebuffer.  qemu creates a primary surface and sends over updates
(simple image blits), using dirty page tracking on the guest frame
buffer, pretty much like vnc.  *Those* updates can easily be dropped by
placing the primary surface into shared memory instead.  And it would be
very simliar to the opengl mode, qemu would copy from guest memory to
shared memory then instead of copying from guest memory to (dma-buf
exported) opengl texture.

cheers,
  Gerd



More information about the Spice-devel mailing list