This release introduces the EGL back end, a feature that required many hundreds of hours of labor over the past five years as well as financial sponsorship from four different organizations.

As most of you know, VirtualGL intercepts GLX, OpenGL, X11, and XCB function calls made by 3D applications. VGL primarily does this in order to:

1. redirect OpenGL rendering from X windows into corresponding GPU-resident off-screen buffers, which a. prevents OpenGL commands and data from traversing the network when using a client-side X server b. prevents OpenGL commands and data from being rendered by an unaccelerated OpenGL implementation when using a server-side X proxy
   c. allows a GPU to be simultaneously shared by multiple users

2. determine when a rendered frame should be read back from the GPU and transported to the 2D X server.

Historically, it was necessary for VGL to modify the GLX function calls made by 3D applications on the front end and redirect them, mostly on a 1:1 basis, to a GPU-attached X server (the "3D X server") on the back end. This was necessary because going through such an X server was the only way that VirtualGL could create and redirect OpenGL rendering into GPU-resident off-screen buffers. However, with the advent of the EGL API and the EGL_EXT_platform_device extension, it is now possible to create and redirect OpenGL rendering into GPU-resident off-screen buffers using a DRI device, so a 3D X server is no longer necessary.

Some caveats:

- Because EGL does not support multi-buffered Pbuffer surfaces, it was necessary for the new EGL back end to emulate multi-buffered Pbuffers using OpenGL renderbuffer objects (RBOs), which necessitated emulating other GLX features (FB configs, buffer swapping, etc.) Thus, the EGL back end is much more complex than the GLX back end, which increases the likelihood of application compatibility issues. Although the EGL back end has been tested extensively in the lab, it has not been tested with very many real-world applications. Please test it with your favorite OpenGL application and file a bug report if you encounter any issues:
https://github.com/VirtualGL/virtualgl/issues/new

- The EGL back end does not yet support all of the GLX extensions supported by the GLX back end (https://github.com/VirtualGL/virtualgl/issues/134), nor does it yet support all of the named framebuffer functions in OpenGL 4.5 (https://github.com/VirtualGL/virtualgl/issues/136). Funding is needed in order to complete those features.

- The EGL back end does not support glXCopyContext(), accumulation buffers, aux buffers, and indirect OpenGL contexts. These are all obsolete features, but some applications may still require them.

The GLX back end will continue to be maintained for backward compatibility purposes, but it is my hope that it can eventually be relegated for use only with legacy applications.

How to help:

- Completing this release required borrowing against most of the 2021/2022 VirtualGL General Fund, so I have no further funding to work on new VirtualGL features (including the aforementioned EGL back end improvements) for the next year. If you or your organization would like to donate money toward the current funding deficit, which will greatly improve my ability to continue moving VirtualGL forward over the next year, or if you would like to fund some of the aforementioned enhancements, then please contact me.

- Individual donations can be made through PayPal (https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=information%40virtualgl%2eorg&lc=US&item_name=The%20VirtualGL%20General%20Fund&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHostedGuest) or Venmo (@dcommander) and are always appreciated. Every dollar goes toward developing VirtualGL.

- Anything you can do to help test the GLX/OpenGL conformance of the EGL back end will be greatly appreciated. I have tried to bring up the Khronos OpenGL conformance suite and Piglit, but so far I have been unsuccessful at getting either to run on any of my machines.

Official binaries and source tarball are here:
https://sourceforge.net/projects/virtualgl/files/2.6.90%20%283.0beta1%29/

Change log is here:
https://github.com/VirtualGL/virtualgl/releases/tag/3.0beta1

--
You received this message because you are subscribed to the Google Groups "VirtualGL 
User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/virtualgl-users/c34bcbdb-d2d9-9459-5669-87a3fb7efb6b%40virtualgl.org.

Reply via email to