Skip to content

Releases: VirtualGL/virtualgl

3.1.1

28 Feb 18:18
Compare
Choose a tag to compare

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:

  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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

15 Mar 23:17
Compare
Choose a tag to compare
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:

  1. 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.

  2. Added an environment variable (VGL_EXITFUNCTION) that, when set to _exit or abort, causes the VirtualGL Faker to call the specified function rather than exit() when a non-recoverable error occurs.

  3. Fixed an issue whereby the interposed eglCreatePlatformWindowSurface() and eglCreatePlatformWindowSurfaceEXT() 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.

  4. vglserver_config now works properly with SUSE Linux Enterprise/openSUSE Leap 15.

  5. If the GLX back end is in use, then the interposed eglGetDisplay() and eglGetPlatformDisplay() functions now return EGL_NO_DISPLAY rather 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.

  6. Fixed an issue whereby the VirtualGL Configuration dialog did not pop up if the X keyboard extension was enabled on the 2D X server.

  7. 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.

  8. When using the EGL back end, interposed XQueryExtension(..., "GLX", ...) and glXQueryExtension() function calls now return False, 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.

  9. The VirtualGL Client now runs on Macs with Apple silicon CPUs (without requiring Rosetta 2.)

3.0.90 (3.1 beta1)

22 Nov 20:01
Compare
Choose a tag to compare
3.0.90 (3.1 beta1) Pre-release
Pre-release

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:

  1. The vglconnect -x and vglconnect -k options 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 -x did not work with most modern operating systems, since most modern operating systems disable X11 TCP connections by default.

  2. 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.)

  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.

  4. On Un*x and Mac clients, vglconnect now uses the OpenSSH ControlMaster option to avoid the need to authenticate with the server multiple times when tunneling the VGL Transport through SSH.

  5. vglconnect now 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 invoke vglrun.

3.0.2

20 Oct 22:52
Compare
Choose a tag to compare

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:

  1. Fixed an issue whereby vglserver_config failed to unload the nvidia module 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.

  2. Fixed compilation errors when building with libX11 1.8.x.

  3. 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.

  4. 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

16 May 21:48
Compare
Choose a tag to compare

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:

  1. GLXSpheres now includes an option (-si) that can be used to specify the swap interval via the GLX_EXT_swap_control and GLX_SGI_swap_control extensions.

  2. Fixed an issue in the EGL back end whereby glXCreateContextAttribsARB() always returned NULL if GLX_RENDER_TYPE was specified in the attribute list. This issue was known to affect JOGL applications but may have affected other applications as well.

  3. The EGL back end now supports the GLX_EXT_framebuffer_sRGB extension, 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.

  4. 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.

  5. vglserver_config should now work properly with SDDM if its scripts are installed in /etc/sddm, which is the case when SDDM is installed through EPEL.

  6. Fixed several issues in the EGL back end that caused OpenGL errors to be generated by the interposed glXMake*Current() and glXSwapBuffers() 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

03 May 05:54
Compare
Choose a tag to compare

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

19 Nov 23:50
Compare
Choose a tag to compare
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:

Altair Engineering, Inc.

Google, Inc.

Nimbix, Inc.

Documentation

User’s Guide for VirtualGL 3.0

Release Notes

Significant changes relative to 3.0 beta1:

  1. 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 -s would hang while making a preliminary SSH connection to find a free port on a server running one of those operating systems.

  2. Fixed an issue in the EGL back end whereby glReadPixels() did not work with multisampled drawables.

  3. Fixed an issue in the EGL back end whereby the glGet*() functions sometimes returned an incorrect value for GL_DRAW_BUFFER0 through GL_DRAW_BUFFER15 if the correct value was GL_NONE.

  4. The VirtualGL Faker now interposes the glXGetCurrentDisplayEXT() function, which is part of the GLX_EXT_import_context extension. (The GLX_EXT_import_context extension 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 using VGL_ALLOWINDIRECT.)

  5. Fixed an issue in the EGL back end whereby the glXChooseFBConfig() function returned no FB configs if the GLX_DRAWABLE_TYPE attribute was set to GLX_DONT_CARE.

  6. Fixed an issue in the EGL back end whereby the glXSwapBuffers() function erroneously swapped the buffers of double-buffered Pixmaps.

  7. 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.

  8. 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_context and EGL_KHR_surfaceless_context extensions.

  9. Fixed an issue in the EGL back end whereby the OpenGL 4.5 and GL_EXT_direct_state_access named framebuffer functions did not work properly with the default framebuffer unless it was currently bound.

  10. Fixed issues in the EGL back end whereby glGetFramebufferAttachmentParameteriv(), glGetFramebufferParameteriv(..., GL_DOUBLEBUFFER, ...), glGetFramebufferParameteriv(..., GL_STEREO, ...), and glGetNamedFramebufferParameteriv() did not return correct values for the default framebuffer and whereby glGet*(GL_DOUBLEBUFFER, ...) and glGet*(GL_STEREO, ...) did not return correct values for framebuffer objects.

  11. 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.

  12. VirtualGL's built-in SSL encryption feature now works with OpenSSL v1.1.1 and later.

2.6.95 (3.0 rc1)

22 Oct 20:02
Compare
Choose a tag to compare
2.6.95 (3.0 rc1) Pre-release
Pre-release

Assets

  • VirtualGL-2.6.95.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.1.

Support

Code Quality: Release Candidate
Current Support Category: EOL

Release Sponsors

This release was made possible via generous financial contributions from:

Altair Engineering, Inc.

Google, Inc.

Nimbix, Inc.

Documentation

User’s Guide for VirtualGL 3.0 (Release Candidate)

Release Notes

Significant changes relative to 3.0 beta1:

  1. 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 -s would hang while making a preliminary SSH connection to find a free port on a server running one of those operating systems.

  2. Fixed an issue in the EGL back end whereby glReadPixels() did not work with multisampled drawables.

  3. Fixed an issue in the EGL back end whereby the glGet*() functions sometimes returned an incorrect value for GL_DRAW_BUFFER0 through GL_DRAW_BUFFER15 if the correct value was GL_NONE.

  4. The VirtualGL Faker now interposes the glXGetCurrentDisplayEXT() function, which is part of the GLX_EXT_import_context extension. (The GLX_EXT_import_context extension 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 using VGL_ALLOWINDIRECT.)

  5. Fixed an issue in the EGL back end whereby the glXChooseFBConfig() function returned no FB configs if the GLX_DRAWABLE_TYPE attribute was set to GLX_DONT_CARE.

  6. Fixed an issue in the EGL back end whereby the glXSwapBuffers() function erroneously swapped the buffers of double-buffered Pixmaps.

  7. 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.

  8. 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_context and EGL_KHR_surfaceless_context extensions.

2.6.90 (3.0 beta1)

16 Jun 22:55
Compare
Choose a tag to compare
2.6.90 (3.0 beta1) Pre-release
Pre-release

Assets

  • VirtualGL-2.6.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.0.

Support

Code Quality: Beta
Current Support Category: EOL

Release Sponsors

This release was made possible via generous financial contributions from:

Altair Engineering, Inc.

Google, Inc.

Nimbix, Inc.

Documentation

User’s Guide for VirtualGL 3.0 (Beta)

Release Notes

Significant changes relative to 2.6.5:

  1. Support for transparent overlay visuals has been retired in this version of VirtualGL. That feature will continue to be maintained in the 2.6.x branch on a break/fix basis only. Most applications that once used transparent overlay visuals used them with color index rendering, which was removed in OpenGL 3.1 in 2009. Thus, almost all applications that render overlays now do so using other mechanisms. Furthermore, the need for VirtualGL to hand off the rendering of transparent overlay visuals to the 2D X server has always limited the usefulness of the feature, and the discontinuation of the VirtualGL Client for Exceed relegated the feature to Un*x clients (with workstation-class GPUs) and the VGL Transport only. Given that nVidia's implementation of transparent overlay visuals requires disabling the X Composite extension, which cannot be done in many modern Linux distributions, that further limited the feature to the point of uselessness.

  2. The VirtualGL Faker now assigns various permutations of common OpenGL rendering attributes to the available 2D X server visuals. This maximizes the chances that "visual hunting" 3D applications (applications that use X11 functions to obtain a list of 2D X server visuals, then iterate through the list with glXGetConfig() until they find a visual with a desired set of OpenGL rendering attributes) will find a suitable visual. VGL_DEFAULTFBCONFIG can still be used to assign a specified set of OpenGL rendering attributes to all 2D X server visuals, although the usefulness of that feature is now very limited.

  3. The VirtualGL Faker now includes an EGL back end that optionally emulates the GLX API using a combination of the EGL API (with the EGL_EXT_platform_device extension) and OpenGL renderbuffer objects (RBOs.) On supported platforms, the EGL back end allows the VirtualGL Faker to be used without a 3D X server. The EGL back end can be activated by setting the VGL_DISPLAY environment variable to the path of a DRI device, such as /dev/dri/card0, or by passing that device path to vglrun using the -d argument. Some obsolete OpenGL and GLX features are not supported by the EGL back end:

    • glXCopyContext()
    • Accumulation buffers
    • Aux buffers
    • Indirect OpenGL contexts

    The EGL back end also does not currently support the following GLX extensions:

    • GLX_ARB_create_context_robustness
    • GLX_ARB_fbconfig_float
    • GLX_EXT_create_context_es2_profile
    • GLX_EXT_fbconfig_packed_float
    • GLX_EXT_framebuffer_sRGB
    • GLX_EXT_import_context
    • GLX_EXT_texture_from_pixmap
    • GLX_NV_float_buffer

    Those extensions are supported by the GLX back end if the 3D X server supports them. The EGL back end also requires a 2D X server with a GLX extension.

  4. Fixed an issue whereby, when the 2D X server was using a "traditional" window manager (such as TWM) or no window manager and the X11 Transport was not using the MIT-SHM X extension (because the extension was unavailable or explicitly disabled/bypassed, because the X connection was remote, or because the 3D application and the 2D X server did not share an IPC namespace), unhandled X NoExpose events would continue to queue up in Xlib until the 3D application exited or the available memory on the VirtualGL server was exhausted.

2.6.5

18 Nov 01:13
Compare
Choose a tag to compare

Assets

  • VirtualGL-2.6.5.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.0.6.

Support

Code Quality: Stable
Current Support Category: Extended

Documentation

User’s Guide for VirtualGL 2.6.5

Release Notes

Significant changes relative to 2.6.4:

  1. Fixed a race condition that sometimes caused various fatal errors in the interposed glXMakeContextCurrent() function if both GLX drawable IDs passed to that function were the same window handle and the corresponding X window was simultaneously resized in another thread.

  2. Fixed an oversight whereby the addresses of the interposed glDrawBuffers(), glGetString(), and glGetStringi() functions introduced in 2.6.3[2] and 2.6.4[1] were not returned from the interposed glXGetProcAddress() and glXGetProcAddressARB() functions.

  3. VirtualGL now works properly with 3D applications that use the glNamedFramebufferDrawBuffer() and glNamedFramebufferDrawBuffers() functions (OpenGL 4.5) or the glFramebufferDrawBufferEXT() and glFramebufferDrawBuffersEXT() functions (GL_EXT_direct_state_access) and render to the front buffer.

  4. Fixed a BadRequest X11 error that occurred when attempting to use the X11 Transport with a remote X connection.

  5. Worked around an issue with certain GLX implementations that list 10-bit-per-component FB configs ahead of 8-bit-per-component FB configs and incorrectly set GLX_DRAWABLE_TYPE|=GLX_PIXMAP_BIT for those 10-bpc FB configs, even though they have no X visuals attached. This caused VirtualGL's interposed glXChooseVisual() function to choose one of the 10-bpc FB configs behind the scenes, which made it impossible to use the VGL Transport.

  6. Fixed an issue whereby, when using the X11 Transport, a vertically flipped image of a previously-rendered frame was sometimes displayed if the 3D application called glFlush() while the front buffer was the active drawing buffer and the render mode was GL_FEEDBACK or GL_SELECT.

  7. vglserver_config now works properly if invoked with a relative path (for example, cd /opt/VirtualGL/bin; sudo ./vglserver_config.)

  8. Worked around a limitation in the AMDGPU drivers that prevented recent versions of Google Chrome from enabling GPU acceleration when used with VirtualGL.