Remote display with 3D acceleration using Wayland/Weston
Pekka Paalanen
ppaalanen at gmail.com
Tue Dec 20 09:28:58 UTC 2016
On Mon, 19 Dec 2016 13:23:26 -0600
DRC <dcommander at users.sourceforge.net> wrote:
> On 12/19/16 2:48 AM, Pekka Paalanen wrote:
> > Hmm, indeed, maybe it would be possible if you are imposing your own
> > EGL middle-man library between the application and the real EGL library.
> >
> > That's definitely a idea to look into. I cannot say off-hand why it
> > would not work, so maybe it can work. :-)
> >
> > To summarize, with that approach, you would have the client send only
> > wl_shm buffers to the compositor, and the compositor never needs to
> > touch EGL at all. It also has the benefit that the read-back cost
> > (glReadPixels) is completely in the client process, so the compositor
> > will not stall on it, and you don't need the stuff I explained about in
> > the compositor. And you get support for the proprietary drivers!
> >
> > Sorry for not realizing the "wrap libEGL.so" approach earlier.
>
> Yes, exactly. That is essentially how VirtualGL already works with
> GLX/OpenGL, so it is a solution space I know well. As I see it, the
> advantages of implementing this at the compositor level are:
>
> -- Automatic hardware acceleration for window managers that might need
> to use OpenGL (which includes most of them these days)
> -- No need to launch OpenGL applications using a wrapper script
> -- Potentially the compositor could tap into GPU-based encoding methods
> (NVENC, for instance) quite easily to compress the pixel updates sent to
> the client. This becomes more difficult when the pixel readback is
> occurring in the OpenGL application process but the compression is
> occurring in another process.
>
> The potential advantages of an interposer are:
>
> -- Much easier for me to develop, since this would represent basically a
> subset of VirtualGL's existing functionality (the GLX interposer could
> also benefit from a back end that accesses the GPU directly through EGL
> rather than forwarding the GLX requests through a local X server.)
> -- The readback occurs in-process, so only applications that actually
> need it (OpenGL applications) are subject to that overhead, and the
> design of VirtualGL makes it such that the readback of the current frame
> occurs in parallel with the display of the last frame.
> -- Theoretically should work with any Wayland implementation or back
> end. It goes without saying that I'm not the only one in this game. In
> the current market, there are lots of different vendors producing their
> X11 proxy of choice, but all of them can use VirtualGL to add GPU
> acceleration. I don't know how the market will look with Wayland, but I
> would anticipate that those same vendors will produce their own Wayland
> proxies of choice as well, so there might be an advantage to retaining
> VirtualGL as an independent bolt-on product.
> -- That is a good point about the compositor not stalling on
> glReadPixels()-- although I think I could probably mitigate that by
> using PBOs rather than synchronous glReadPixels().
>
> I know for sure that I can make the interposer approach work, and
> perhaps that would be a good short-term approach to get something up and
> running while the other approach is explored in more depth.
Hi,
I fully agree on everything you said here. :-)
Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20161220/9205c491/attachment.sig>
More information about the wayland-devel
mailing list