[Spice-devel] [PATCH RFC EXP] remote Virgl support

Dave Airlie airlied at gmail.com
Wed Jun 29 07:16:52 UTC 2016


On 29 June 2016 at 00:46, Frediano Ziglio <fziglio at redhat.com> wrote:
> This patch is really hacky and mainly intended to try to use the
> current spice-protocol to make Virgl remote.
> It does in a fast (as code lines) way:
> - extract the images from scanouts;
> - fed these images to normal flow (using display_channel_process_draw)
>   so making possible to check streaming flow or just image compression
>   using Qemu parameters (or some other hacks is not very recent).
>
> First problem: it works only on Intel i915 family.
> I tried to use DRM directly finding many post where mmap were used.
> This was a big mistake. Current cards use some internal memory
> arrangement for textures or the texture memory could be in an area
> not mmap-able. Using DRM you can allocate a buffer (PBO) mmap-able
> but however there is no portable (among card types) way to copy the
> texture on this buffer. At the end I think would be much better to use
> EGL like Qemu does so will work on any card, probably faster.

Yes you want to use EGL here, I think we could probably put more code in qemu
to help with this case.

At one point I had remote spice working, but it was due to having the
qemu code sync'ing
the GL rendered output to the qemu/spice framebuffer using a callback
into the renderer
which essentially did a readpixels. It was very hacky,

https://cgit.freedesktop.org/~airlied/qemu/log/?h=virtio-gpu-3d-old-hacks

has some remnants of it, look for dpy_needs_gl_surface_sync.

You'd probably want to talk to Gerd to find the nice/proper way to do things,
but it most definitely involves egl, and most likely readpixels into a PBO.

Dave.


More information about the Spice-devel mailing list