Re: [PATCH RFC EXP] remote Virgl support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 29 June 2016 at 00:46, Frediano Ziglio <fziglio@xxxxxxxxxx> 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.
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]