Releases: VirtualGL/virtualgl
3.1.4
Assets
- VirtualGL-3.1.4.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 3.1.2.
Support
Code Quality: Stable
Current Support Category: Active
Documentation
User’s Guide for VirtualGL 3.1.4
Release Notes
Significant changes relative to 3.1.3:
-
The VirtualGL Faker now includes an optional workaround for an interaction issue with the X visual selection mechanism in Chrome/Chromium v129 and later and MATLAB R2025a and later. Refer to the "Other Application Recipes" chapter in the VirtualGL User's Guide for more information.
-
Fixed a regression introduced by 3.1 beta1[3] that prevented the faker from enabling quad-buffered stereo, even if the requirements for quad-buffered stereo had been met.
-
On Wayland-enabled Linux systems running GDM,
vglserver_configno longer disables the ability to log in locally with a Wayland session. Instead,vglrunautomatically setsVGL_DISPLAYto:1024ifVGL_DISPLAYis unset, X Display :1024 exists, and X Display :0 does not exist. This allows VirtualGL to use the GDM greeter's Xwayland instance as a 3D X server.
3.1.3
Assets
- VirtualGL-3.1.3.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 3.1.0.
Packaging Changes
- The macOS package is now notarized, which eliminates a Gatekeeper warning with recent macOS releases. (Previously, installing VirtualGL on recent macOS releases required overriding the warning in the Privacy & Security pane under System Settings.)
Support
Code Quality: Stable
Current Support Category: Active
Documentation
User’s Guide for VirtualGL 3.1.3
Release Notes
Significant changes relative to 3.1.2:
-
Fixed an issue whereby, with certain GPU drivers (including nVidia's proprietary drivers), the EGL back end did not release the GPU resources associated with an OpenGL context when that context was unbound from a rendering thread.
-
Fixed an error ("undefined symbol: eglGetProcAddress") that occurred when attempting to run a GLX application using the EGL back end and
vglrun -nodl. -
Fixed an issue whereby the VirtualGL Configuration dialog did not pop up if the Num Lock key was on.
-
vglserver_confignow creates a configuration file under /etc/lightdm/lightdm.conf.d rather than modifying /etc/lightdm/lightdm.conf.
3.1.2
Assets
- VirtualGL-3.1.2.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 3.1.0.
Support
Code Quality: Stable
Current Support Category: Active
Documentation
User’s Guide for VirtualGL 3.1.2
Release Notes
Significant changes relative to 3.1.1:
-
Fixed a few minor conformance issues in the EGL/X11 interposer.
-
Fixed an issue in the EGL back end whereby
GLX_EXT_framebuffer_sRGBwas not added to the list of extensions returned byglXGetClientString(..., GLX_EXTENSIONS),glXQueryExtensionsString(), orglXQueryServerString(..., GLX_EXTENSIONS)unless the underlying EGL implementation supported v1.5 or later of the EGL API. -
If
VGL_SYNCis enabled, the X11 Transport now reuses the 3D application's X display connection(s), which may prevent a 3D application running with VirtualGL from exceeding the X server's connection limit if the application opens an excessive number of OpenGL windows.
3.1.1
Assets
- VirtualGL-3.1.1.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 3.0.2.
Support
Code Quality: Stable
Current Support Category: Active
Documentation
User’s Guide for VirtualGL 3.1.1
Release Notes
Significant changes relative to 3.1:
-
The EGL back end now supports OpenGL applications, including ANSYS Fluent, that use multiple X11 Display handles to render to the same GLX drawable.
-
The VirtualGL Faker now works around an issue whereby applications using the GtkGLArea widget with GTK v3.15.2 through v4.3.1 failed with "No available configurations for the given [RGBA] pixel format" if GTK v3.15.2 through v4.3.1 had previously been initialized on the 2D X server without VirtualGL.
-
As required by the EGL spec, the interposed
eglSwapBuffers()function now flushes the current OpenGL context if the surface being swapped is bound to that context. This fixes a flickering issue that occurred with recent versions of Firefox. -
It is no longer necessary to enable the EGL back end in order to use VirtualGL with 3D applications that use the EGL/X11 API. If the GLX back end is enabled, then the EGL/X11 interposer will now use the 3D X server.
-
Fixed an issue in the VirtualGL Faker that caused random characters and other elements of the Firefox browser window to disappear when the window was resized.
-
Fixed an issue in VirtualGL's
dlopen()interposer (libdlfaker.so) that interfered with the correct operation of ANGLE (Almost Native Graphics Layer Engine.)
3.1
Assets
- VirtualGL-3.1.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 2.1.5.1.
Packaging Changes
- The macOS package is now a universal binary that supports both Intel and Apple silicon CPUs.
Support
Code Quality: Stable
Current Support Category: Active
Documentation
User’s Guide for VirtualGL 3.1
Release Notes
Significant changes relative to 3.1 beta1:
-
Fixed an issue in the EGL back end whereby textures and other OpenGL objects were not automatically destroyed along with the context and drawable in which the objects were created.
-
Added an environment variable (
VGL_EXITFUNCTION) that, when set to_exitorabort, causes the VirtualGL Faker to call the specified function rather thanexit()when a non-recoverable error occurs. -
Fixed an issue whereby the interposed
eglCreatePlatformWindowSurface()andeglCreatePlatformWindowSurfaceEXT()functions incorrectly treated the native window argument as an X window handle rather than a pointer to an X window handle. This caused a segfault in VLC when using the OpenGL video output module. -
vglserver_confignow works properly with SUSE Linux Enterprise/openSUSE Leap 15. -
If the GLX back end is in use, then the interposed
eglGetDisplay()andeglGetPlatformDisplay()functions now returnEGL_NO_DISPLAYrather than throwing a fatal error. This allows applications such as Firefox to fail gracefully or to fall back and use the GLX API if EGL/X11 is unavailable. -
Fixed an issue whereby the VirtualGL Configuration dialog did not pop up if the X keyboard extension was enabled on the 2D X server.
-
The VirtualGL Faker no longer probes the 2D X server for stereo visuals unless the VGL Transport or a transport plugin will be used. Even if the 2D X server has stereo visuals, they will never be used with the X11 and XV Transports. Probing the 2D X server for stereo visuals causes problems with certain OpenGL implementations and with applications, such as Tecplot 360, that include static builds of Mesa. An undocumented environment variable (
VGL_PROBEGLX) can be used to override the default behavior. -
When using the EGL back end, interposed
XQueryExtension(..., "GLX", ...)andglXQueryExtension()function calls now returnFalse, rather than throwing a fatal error, if the 2D X server does not have a GLX extension. (The EGL back end uses the 2D X server's GLX extension for GLX error handling.) This allows applications, such as Chrome/Chromium, to fail gracefully or use a different API (such as EGL/X11) if the VirtualGL Faker is unable to emulate GLX. -
The VirtualGL Client now runs on Macs with Apple silicon CPUs (without requiring Rosetta 2.)
3.0.90 (3.1 beta1)
Assets
- VirtualGL-3.0.90.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 2.1.4.
Support
Code Quality: Beta
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 3.1 (Beta)
Release Notes
Significant changes relative to 3.0.2:
-
The
vglconnect -xandvglconnect -koptions have been retired in this version of VirtualGL and will continue to be maintained in the 3.0.x branch on a break/fix basis only. Those options, which had been undocumented since VirtualGL 2.6.1, were a throwback to the early days of VirtualGL when SSH was not universally available and SSH X11 forwarding sometimes introduced a performance penalty.vglconnect -xdid not work with most modern operating systems, since most modern operating systems disable X11 TCP connections by default. -
SSL encryption of the VGL Transport has been retired in this version of VirtualGL and will continue to be maintained in the 3.0.x branch on a break/fix basis only. That feature, which had not been included in official VirtualGL packages since VirtualGL 2.1.x, was not widely used. Furthermore, SSL encryption of the VGL Transport had no performance advantages over SSH tunneling on modern systems, and it had some security disadvantages due to its reliance on the RSA key exchange algorithm (which made it incompatible with TLS v1.3.)
-
When using the EGL back end, VirtualGL now supports 3D applications (including recent versions of Google Chrome/Chromium and Mozilla Firefox) that use the EGL/X11 API instead of the GLX API. As of this writing, VirtualGL does not support EGL pixmap surfaces or front buffer/single buffer rendering with EGL window surfaces.
-
On Un*x and Mac clients,
vglconnectnow uses the OpenSSHControlMasteroption to avoid the need to authenticate with the server multiple times when tunneling the VGL Transport through SSH. -
vglconnectnow accepts a new command-line argument (-v) that, when combined with-s, causes VirtualGL to be preloaded into all processes launched in the remote shell, thus eliminating the need to invokevglrun.
3.0.2
Assets
- VirtualGL-3.0.2.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 2.1.4.
Packaging Changes
- The RPM packages now contain SHA-256 header and payload digests. This fixes an issue whereby the RPM signatures could not be verified on Red Hat Enterprise Linux with FIPS mode enabled. The RPM packages now require GLIBC 2.17 or later.
Support
Code Quality: Stable
Current Support Category: Maintenance
Documentation
User’s Guide for VirtualGL 3.0.2
Release Notes
Significant changes relative to 3.0.1:
-
Fixed an issue whereby
vglserver_configfailed to unload thenvidiamodule when using recent versions of nVidia's proprietary drivers. In some cases, this led to incorrect device permissions for /dev/nvidia* after the display manager was restarted. -
Fixed compilation errors when building with libX11 1.8.x.
-
When using the EGL back end, a GPU can now be specified by an EGL device ID of the form
egl{n}, where{n}is a zero-based index, or by a DRI device path. A list of valid EGL device IDs and their associated DRI device paths can be obtained by running/opt/VirtualGL/bin/eglinfo -e. -
Fixed an issue in the EGL back end whereby
glBindFramebuffer(), when used to bind the default framebuffer, did not restore the previous draw/read buffer state for the default framebuffer. This issue was known to cause flickering in Webots when rendering a camera view, and it may have affected other applications as well.
3.0.1
Assets
- VirtualGL-3.0.1.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 2.1.3.
Support
Code Quality: Stable
Current Support Category: Maintenance
Documentation
User’s Guide for VirtualGL 3.0.1
Release Notes
Significant changes relative to 3.0:
-
GLXSpheres now includes an option (
-si) that can be used to specify the swap interval via theGLX_EXT_swap_controlandGLX_SGI_swap_controlextensions. -
Fixed an issue in the EGL back end whereby
glXCreateContextAttribsARB()always returned NULL ifGLX_RENDER_TYPEwas specified in the attribute list. This issue was known to affect JOGL applications but may have affected other applications as well. -
The EGL back end now supports the
GLX_EXT_framebuffer_sRGBextension, which is necessary for OpenGL 3.0 conformance. This fixes an issue whereby frames rendered by 3D applications using the sRGB color space appeared too dark. -
The VirtualGL Faker now interposes XCB window creation and destruction functions. This fixes an issue whereby, if an X window was created using the XCB API and subsequently attached to an OpenGL context using
glXMake[Context]Current(), the off-screen buffer and other faker resources associated with that window were not freed until the 3D application exited or closed the X display connection associated with the window. This issue was known to affect Qt5 applications. -
vglserver_configshould now work properly with SDDM if its scripts are installed in /etc/sddm, which is the case when SDDM is installed through EPEL. -
Fixed several issues in the EGL back end that caused OpenGL errors to be generated by the interposed
glXMake*Current()andglXSwapBuffers()functions. These OpenGL errors sometimes caused fatal errors when closing Qt applications, and they may have affected other types of applications and use cases as well.
2.6.6 ESR
Extended Support release for project sponsors
Official binaries, source tarball, and change log are available at:
https://github.com/VirtualGL/virtualgl.esr/releases/tag/2.6.6-esr
3.0
Assets
- VirtualGL-3.0.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://VirtualGL.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 2.1.2.
Packaging Changes
- Linux/AArch64 RPM and DEB packages are now provided.
- The RPM packages now contain SHA-256 signatures. This fixes an issue whereby the RPM signatures could not be verified on Red Hat Enterprise Linux 9 when using its default crypto policy, which restricts the use of the SHA-1 algorithm.
Support
Code Quality: Stable
Current Support Category: Maintenance
Release Sponsors
This release was made possible via generous financial contributions from:
Documentation
User’s Guide for VirtualGL 3.0
Release Notes
Significant changes relative to 3.0 beta1:
-
Worked around an issue with Red Hat Enterprise Linux 8 and work-alike operating systems whereby, if X11 forwarding was enabled by default in the SSH client,
vglconnect -swould hang while making a preliminary SSH connection to find a free port on a server running one of those operating systems. -
Fixed an issue in the EGL back end whereby
glReadPixels()did not work with multisampled drawables. -
Fixed an issue in the EGL back end whereby the
glGet*()functions sometimes returned an incorrect value forGL_DRAW_BUFFER0throughGL_DRAW_BUFFER15if the correct value wasGL_NONE. -
The VirtualGL Faker now interposes the
glXGetCurrentDisplayEXT()function, which is part of theGLX_EXT_import_contextextension. (TheGLX_EXT_import_contextextension can be used with the GLX back end if the underlying OpenGL library and 3D X server support the extension and if indirect OpenGL contexts are enabled usingVGL_ALLOWINDIRECT.) -
Fixed an issue in the EGL back end whereby the
glXChooseFBConfig()function returned no FB configs if theGLX_DRAWABLE_TYPEattribute was set toGLX_DONT_CARE. -
Fixed an issue in the EGL back end whereby the
glXSwapBuffers()function erroneously swapped the buffers of double-buffered Pixmaps. -
Fixed an issue in the EGL back end that caused the bounding box in 3D Slicer to be displayed on top of the rendered volume when "Display ROI" and depth peeling were both enabled.
-
The EGL back end now supports OpenGL applications that simultaneously make the same GLX drawable current in more than one thread. As a consequence, the EGL back end now requires the
EGL_KHR_no_config_contextandEGL_KHR_surfaceless_contextextensions. -
Fixed an issue in the EGL back end whereby the OpenGL 4.5 and
GL_EXT_direct_state_accessnamed framebuffer functions did not work properly with the default framebuffer unless it was currently bound. -
Fixed issues in the EGL back end whereby
glGetFramebufferAttachmentParameteriv(),glGetFramebufferParameteriv(..., GL_DOUBLEBUFFER, ...),glGetFramebufferParameteriv(..., GL_STEREO, ...), andglGetNamedFramebufferParameteriv()did not return correct values for the default framebuffer and wherebyglGet*(GL_DOUBLEBUFFER, ...)andglGet*(GL_STEREO, ...)did not return correct values for framebuffer objects. -
By default, VirtualGL now generates a 2048-bit RSA key for use with SSL encryption. This fixes an error ("ee key too small") that occurred when attempting to launch the VirtualGL Client on systems configured with a default SSL/TLS security level of 2. A new CMake variable (
VGL_SSLKEYLENGTH) can be used to restore the behavior of previous releases of VirtualGL (generating a 1024-bit RSA key) or to increase the key length for additional security. -
VirtualGL's built-in SSL encryption feature now works with OpenSSL v1.1.1 and later.