Releases: VirtualGL/virtualgl
Release list
2.5.2
Assets
- VirtualGL-2.5.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 1.5.1.
Support
Code Quality: Stable
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.5.2
Release Notes
Significant changes relative to 2.5.1:
-
Previously, the VirtualGL Faker opened a connection to the 3D X server whenever an application called
XOpenDisplay(). The faker now waits until the 3D X server is actually needed before opening the connection. This prevents non-OpenGL X11 applications from opening unnecessary connections to the 3D X server, which could exhaust the X server's limit of 256 connections if many users are sharing the system. -
Fixed a regression caused by 2.4.1[6] whereby applications launched with VirtualGL on nVidia GPUs would fail to obtain a visual if
VGL_SAMPLESwas greater than 0. Multisampling cannot be used with Pixmap rendering, and because nVidia's drivers export different FB configs forGLX_PBUFFER_BITandGLX_PBUFFER_BIT|GLX_PIXMAP_BIT, it is necessary to specifyGLX_PBUFFER_BITto obtain an FB config that supports multisampling. -
Fixed a regression caused by 2.4 beta1[2] whereby 32-bit Linux builds of VirtualGL built with recent compilers would sometimes crash when exiting certain 3D applications (reported to be the case with Steam) or behave in other unpredictable ways.
-
Fixed an issue whereby VirtualGL, when used with applications that load OpenGL functions via
dlopen()/dlsym(), would fail to load the "real" GLX/OpenGL functions from libGL if libvglfaker.so was built with GCC 4.6 or later. -
Fixed various build issues with Clang.
-
The interposed
dlopen()function in the Linux version of libdlfaker.so will now nullify theRTLD_DEEPBINDflag, if an application passes that flag todlopen(). This prevents an issue whereby an application could calldlopen(..., *|RTLD_DEEPBIND)to load a shared library that uses OpenGL or X11, thus causing the "real" OpenGL/GLX/X11 functions loaded by that shared library to supercede VirtualGL's interposed functions, effectively disabling VirtualGL. -
Fixed an issue whereby VirtualGL would crash with a GLXBadContextState error if the 3D application set the render mode to something other than
GL_RENDERprior to callingglXSwapBuffers().
2.5.1
Assets
- VirtualGL-2.5.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 1.5.1.
Support
Code Quality: Stable
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.5.1
Release Notes
Significant changes relative to 2.5:
-
VirtualGL will no longer report the presence of the
GLX_EXT_swap_control,GLX_EXT_texture_from_pixmap, orGLX_SGI_swap_controlextensions to applications unless the underlying OpenGL library exports the necessary functions to support those extensions. This fixes a regression introduced in VGL 2.4 that caused WINE to crash when running on a system whose OpenGL implementation lacked theglXSwapIntervalSGI()andglXSwapIntervalEXT()functions. Furthermore, VirtualGL will now report the presence of theGLX_EXT_import_contextandGLX_NV_swap_groupextensions to applications if the underlying OpenGL library exports the necessary functions to support those extensions. -
Fixed compilation errors when building with GCC v6.
-
vglserver_configis now SELinux-aware and will set up the proper file contexts to allowvglgenkeyto run within the GDM startup scripts. This has been verified with Red Hat Enterprise Linux and work-alike systems (CentOS, etc.), but unfortunately the version of GDM that ships in Fedora 22-24 does not execute the GDM startup scripts at all. At the moment, the only workaround for those recent Fedora releases is to use LightDM. -
Fixed a deadlock that occurred when exiting ANSYS HFSS 2014. This fix was an extension of 2.3.3[2], necessitated by the fact that MainWin calls X11 functions from the destructor of one of its shared libraries, which is executed after the VirtualGL Faker has shut down. Because VGL 2.5.x enables the XCB interposer by default, we have to ensure that any X11 and XCB functions hand off immediately to the underlying libraries after the faker has been shut down, because even if an X11 function is not interposed by VGL, some of the XCB functions it calls might be. This issue was also known to affect ANSYS Maxwell and may have affected other applications that use MainWin.
2.5
Assets
- VirtualGL-2.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 1.4.2.
Support
Code Quality: Stable
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.5
Release Notes
Significant changes relative to 2.5 beta1:
-
OS X 10.11 "El Capitan" no longer allows packages to install files under /usr/bin, and this was preventing the VirtualGL binary package for OS X from installing on that platform. The symlinks to
vglclientandvglconnectthat the OS X package previously installed under /usr/bin have thus been removed in this version of VirtualGL. It will therefore be necessary to invokevglconnectandvglclientusing the full pathname (/opt/VirtualGL/bin/vglconnector/opt/VirtualGL/bin/vglclient) or to add /opt/VirtualGL/bin to thePATH. -
Fixed a regression introduced by 2.5 beta1[13] that caused certain system commands (such as uname, hostname, etc.) to crash when running those commands using
vglrunon current Arch Linux spins (glibc 2.22, GCC 5.2.) This possibly affected other non-OpenGL, non-X11 applications on other bleeding-edge Linux distributions as well. -
vglserver_configshould now work properly with MDM (MATE Display Manager), if its config files are installed in the standard location (/etc/mdm). -
Fixed a regression introduced in 2.4 that caused
vglrunto abort with "VGL_ISACTIVE=1: is not an identifier" when running on Solaris 10 (or other systems in which/bin/shdoesn't supportexport VAR=valuesyntax.) -
Fixed a regression introduced by 2.5 beta1[3] whereby the VirtualGL Faker would segfault on Solaris if the 3D application called one of the GLX/OpenGL functions that VirtualGL interposes and the underlying OpenGL library (libGL) did not implement that function.
2.4.90 (2.5 beta1)
Assets
- VirtualGL-2.4.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 1.4.2.
Support
Code Quality: Beta
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.5 (Beta)
Release Notes
Significant changes relative to 2.4.1:
-
librrfaker.so has been renamed to libvglfaker.so. The "rr" designation dates from before VirtualGL was called "VirtualGL" (i.e. before it became an open source project), and it is no longer relevant.
-
The symlinks that VirtualGL previously installed for Chromium (the long-obsolete parallel rendering package, not the web browser) are no longer included in this release.
-
The mechanism by which VirtualGL loads "real" GLX, OpenGL, X11, and XCB functions from the respective system libraries has been refactored. This has the following ramifications:
- The "real" version of an interposed GLX/OpenGL/X11/XCB function will never be loaded until the interposed function is called.
glXProcAddress[ARB]()is now used to load all "real" GLX/OpenGL functions from libGL (except for theglXProcAddress[ARB]()function itself.) This maintains the fixes implemented in 2.4[9] as well as the previous work-arounds for certain buggy libGL implementations that do not export theglXBindTexImageEXT()andglXReleaseTexImageEXT()functions in the libGL symbol table (the latter was specifically known to be an issue with certain versions of the ATI driver under Ubuntu.)- If
-nodlis passed tovglrun, then libGL will not be loaded into the application process until/unless the application actually calls a GLX/OpenGL function. - Because XCB functions are now loaded only when needed, the XCB interposer is no longer distribution-specific. Therefore, it is now included in the official VirtualGL binaries. Furthermore, since the loading and interposing of XCB symbols is now less intrusive, the XCB interposer is enabled by default (it can be disabled with
vglrun -xcb.) - Reverted 2.1.3[8], since that fallback mechanism is no longer necessary with modern versions of the nVidia driver. The issue in question can still be worked around by explicitly setting
VGL_GLLIBandVGL_X11LIB.
-
Support for color index rendering emulation has been retired in this version of VirtualGL. That feature will continue to be maintained in the 2.4.x branch on a break/fix basis only. Even when color index emulation was implemented in VGL 10 years ago, the applications that needed it were already extremely rare. Since then, color index rendering has been officially obsoleted in the OpenGL spec (as of version 3.1 in 2009), and modern Un*x graphics drivers no longer support it, nor do they generally support PseudoColor X visuals (nVidia still supports these, but only with transparent overlays.) Since there is generally no reasonable way to run color index OpenGL applications without using legacy hardware or software, it does not make sense to continue supporting these applications in this version of VirtualGL, particularly given that color index emulation adds a certain amount of overhead to some OpenGL calls.
-
Added support for DirectColor rendering (DirectColor is similar to PseudoColor, except that the colormap indices for red, green, and blue can be specified separately.) GLXSpheres now includes a DirectColor mode, replacing its previous color index mode.
-
VirtualGL can now be disabled on a display-by-display basis by specifying a list of X displays to exclude (see the documentation for the
VGL_EXCLUDEenvironment variable.) This is useful with multi-GPU systems on which a single application may want to access the GPUs directly for parallel rendering purposes but use VirtualGL to display the final result. -
The
vglconnectscript now accepts an argument of-e {command}, which can be used to specify a remote command to run. This is useful for situations in which it is necessary to start a remote process non-interactively withvglconnectwhen using the-sor-xoptions. -
The
glXCreateWindow()function no longer fails when passed the handle of an X window that was created in a different process or using XCB. This specifically fixes issues encountered when attempting to run VLC in VirtualGL, but other applications may have been affected as well. -
Fixed a typo in /etc/udev/rules.d/99-virtualgl-dri.rules, which is created by
vglserver_config. More specifically, the typo caused incorrect group permissions to be assigned to the framebuffer device when not using the vglusers group. -
Certain applications (known to be the case with recent versions of Firefox with off-main-thread compositing enabled) would crash with the following error when running in VirtualGL:
[VGL] ERROR: in readPixels-- [VGL] XXX: VirtualDrawable instance has not been fully initializedThis was due to the application creating a GLX Pixmap and then calling
XCopyArea()with the Pixmap prior to performing any OpenGL rendering with it. In these cases, VirtualGL now treats the Pixmap as a 2D Pixmap until the application has performed OpenGL rendering with it. -
glxinfohas been extended to report whether a particular GLX FB config supportsGLX_BIND_TO_TEXTURE_RGB_EXTandGLX_BIND_TO_TEXTURE_RGBA_EXT, i.e. whether the FB config can be used withGLX_EXT_texture_from_pixmap. -
vglserver_configshould now work properly with SDDM, if its scripts are installed in the standard location (/usr/share/sddm/scripts). -
Fixed a deadlock that occurred with applications that use MainWin, or any other OpenGL applications that load a shared library whose global constructor calls one of the functions VirtualGL interposes. This was known to affect MATLAB and ANSYS DesignModeler v16.1 and later, but it may have affected other applications as well.
-
Fixed another deadlock that occurred when running ANSYS DesignModeler v16.1 and later, or when running VirtualGL in a Parallels Desktop guest, when VirtualGL was built with
VGL_FAKEXCB=1(which is the default.) -
Fixed a thread safety issue with PBO readback. The PBO handle and other variables related to PBO readback were being stored in static variables that were shared among all OpenGL windows, contexts, and threads, and this was suspected-- but not yet confirmed-- to have caused a "Could not set PBO size" error with MetaPost. This issue may have affected other multithreaded applications as well.
2.4.1
Assets
- VirtualGL-2.4.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 1.4.1. This improves performance on 64-bit Mac clients, relative to VirtualGL 2.4.
Support
Code Quality: Stable
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.4.1
Release Notes
Significant changes relative to 2.4:
-
When an application doesn't explicitly specify its visual requirements by calling
glXChooseVisual()/glXChooseFBConfig(), the default GLX framebuffer config that VirtualGL assigns to it now contains a stencil buffer. This eliminates the need to specifyVGL_DEFAULTFBCONFIG=GLX_STENCIL_SIZE,8with certain applications (previously necessary when running Abaqus v6 and MAGMA5.) -
VirtualGL will no longer advertise that it supports the
GLX_ARB_create_contextandGLX_ARB_create_context_profileextensions unless the underlying OpenGL library exports theglXCreateContextAttribsARB()function. -
Fixed "Invalid MIT-MAGIC-COOKIE-1" errors that would prevent VirtualGL from working when
vglconnectwas used to connect to a VirtualGL server from a client running Cygwin/X. -
If a 3D application is rendering to the front buffer and one of the frame trigger functions (
glFlush()/glFinish()/glXWaitGL()) is called, VirtualGL will no longer read back the framebuffer unless the render mode isGL_RENDER. Reading back the front buffer when the render mode isGL_SELECTorGL_FEEDBACKis not only unnecessary, but it was known to cause a GLXBadContextState error with newer nVidia drivers (340.xx and later) in certain cases. -
Fixed a deadlock that occurred in the multithreaded rendering test of
fakerutwhen it was run with the XCB interposer enabled. This was due to VirtualGL attempting to handle XCB events when Xlib owned the event queue. It is possible that this issue affected or would have affected real-world applications as well. -
Fixed an issue that caused certain 3D applications (observed with CAESES/FFW, although others were possibly affected as well) to abort with "ERROR: in TempContext-- Could not bind OpenGL context to window (window may have disappeared)". When the 3D application called
glXChooseVisual(), VirtualGL was choosing a corresponding FB config withGLX_DRAWABLE_TYPE=GLX_PBUFFER_BIT(assuming thatVGL_DRAWABLE=pbuffer, which is the default.) This is incorrect, however, because regardless of the value ofVGL_DRAWABLE, VirtualGL still uses Pixmaps on the 3D X server to represent GLX Pixmaps (necessary in order to makeGLX_EXT_texture_from_pixmapwork properly.) Thus, VGL now chooses an FB config that supports both Pbuffers and Pixmaps. This was generally only a problem with nVidia drivers, because they export different FB configs forGLX_PBUFFER_BITandGLX_PBUFFER_BIT|GLX_PIXMAP_BIT.
2.4
Assets
- VirtualGL-2.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 1.4.0.
Support
Code Quality: Stable
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.4
Release Notes
Significant changes relative to 2.4 beta1:
-
Fixed an issue that prevented recent versions of Google Chrome/Chromium from running properly in VirtualGL.
-
VGL_SYNCnow affectsglFlush(). Although this does not strictly conform to the OpenGL spec (glFlush()is supposed to be an asynchronous command), it was necessary in order to make certain features of Cadence Allegro work properly. Since virtually no applications requireVGL_SYNC, it is believed that this change is innocuous. -
Fixed a regression in
vglconnect(introduced in VirtualGL 2.3) that preventedvglconnect -xfrom working properly if the user did not have access to the current directory (vglconnectwas erroneously creating a temporary file in the current directory instead of in /tmp.) -
GLXSpheres now warns if the specified polygon count would exceed the limit of 57600 polygons per sphere imposed by GLU and prints the actual polygon count with this limit taken into account. Also, a new option (
-n) has been introduced to increase the sphere count. -
VirtualGL will now only enable color index rendering emulation if a color index context is current. This specifically fixes an interaction issue with MSC Mentat, which occasionally calls
glIndexi()when an RGBA context is current, but the fix may affect other applications as well. -
VirtualGL can now interpose enough of the XCB API to make Qt 5 work properly. Qt 5 does not use XCB to perform 3D rendering (there is no suitable XCB replacement for GLX yet), but it does use XCB to detect whether the GLX extension is available and to handle the application's event queue(s). Thus, when attempting to run Qt 5 applications in VirtualGL, previously the OpenGL portion of the window would fail to resize when the window was resized, or the application would complain that OpenGL was not available and fail to start, or the application would fall back to non-OpenGL rendering.
Currently, enabling XCB support in VirtualGL requires building VirtualGL from source and adding
-DVGL_FAKEXCB=1to the CMake command line. The XCB interposer is also disabled by default at run time. It must be enabled by setting theVGL_FAKEXCBenvironment variable to1or passing+xcbtovglrun. -
Fixed a deadlock that occurred when running Compiz 0.9.11 (and possibly other versions as well) with VirtualGL. The issue occurred when Compiz called
XGrabServer(), followed byglXCreatePixmap()andglXDestroyPixmap(). In VirtualGL, a GLX pixmap resides on the 3D X server, but the corresponding X11 pixmap resides on the 2D X server. Thus, VirtualGL has to synchronize pixels between the two pixmaps in response to certain operations, such asXCopyArea()andXGetImage(), or when the GLX pixmap is destroyed. VirtualGL was previously opening a new connection to the 2D X server in order to perform this synchronization, and because the 2D X server was grabbed, Compiz locked up when VirtualGL calledXCloseDisplay()on the new display connection. In fact, however, the new display connection was unnecessary, since the GLX/X11 pixmap synchronization occurs within the 3D rendering thread. Thus, VirtualGL now simply reuses the same display connection that was passed toglXCreate[GLX]Pixmap(). -
NetTest and TCBench for Windows are now supplied in a package called VirtualGL-Utils, which can be built from the VirtualGL source. When the VirtualGL Client for Exceed was discontinued, these utilities ceased to have a home, but they are still useful tools to have, irrespective of the thin client solution that is being used. The Windows build of TCBench was temporarily moved into the Windows TurboVNC Viewer packages, but it proved to be a pain to keep the source code synchronized between the two projects.
The VirtualGL-Utils package additionally contains a WGL version of GLXSpheres, which is a useful tool to have when benchmarking Windows virtual machines that are running in a VirtualGL environment.
-
Worked around an issue in recent versions of SPECviewperf and FEMFAT visualizer that caused them to segfault when used with VirtualGL. Those applications apparently use a dynamic loading mechanism for OpenGL extension functions, and this mechanism defines symbols such as
glGenBuffersat file scope. Any symbol exported by an application will override a symbol of the same name exported by a shared library, so when VirtualGL tried to callglGenBuffers(),glBindBuffer(), etc., it was picking up the symbols from the application, not from libGL (and those symbols from the application were not necessarily defined.) VirtualGL now obtains the function pointers it needs for PBO readback directly from libGL usingglXProcAddress(), rather than relying on the dynamic linker to resolve them. Note that this issue could be worked around in previous versions of VirtualGL by settingVGL_READBACK=sync.
2.3.90 (2.4 beta1)
Assets
- VirtualGL-2.3.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 1.3.1.
Support
Code Quality: Beta
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.4 (Beta)
Release Notes
Significant changes relative to 2.3.3:
-
The VirtualGL Client for Exceed has been retired. It will continue to be maintained in the 2.3.x branch on a break/fix basis only. Cygwin/X has matured to the point that it now provides an adequate solution for using the VirtualGL Client on Windows, with the only major limitation being lack of quad-buffered stereo support. That feature alone is insufficient to justify a code base that is basically twice as complex as it otherwise would be. Furthermore, we are now maintaining our own Cygwin repository for the VirtualGL Client, which makes it relatively easy to install on that platform.
The VirtualGL Client for Exceed reflects VirtualGL's origins as an add-on technology for existing remote X environments. These days, most people use VirtualGL with some sort of X proxy instead. There have been no significant changes to the VirtualGL Client since version 2.2.1, as most of the efforts of The VirtualGL Project in recent years have focused on the server-side components and TurboVNC. In the early days of the project, there were performance advantages to the VGL Transport, but that is no longer the case. In fact, TurboVNC will generally do a better and faster job of compressing the rendered frames from 3D applications, since it uses a hybrid compression scheme rather than pure JPEG.
The native Windows version of TCBench, which previously shipped with the VirtualGL Client for Exceed, has been moved into the Windows TurboVNC Viewer package.
-
The VirtualGL source code has been extensively refactored to use more modern variable, class, and method naming conventions, and automated test scripts for the utility libraries and the VirtualGL Faker have been added.
-
glXChooseFBConfig()now properly handles theGLX_FBCONFIG_IDattribute. The improper handling of this attribute was known to cause an error ("Could not find GLX 1.3 config from peer info") when running the LWJGL (Lightweight Java Game Library) on AMD GPUs, but it may have affected other apps as well. -
The performance of PBO readback on ATI FirePro GPUs has been improved dramatically (close to an order of magnitude.)
-
vglserver_configwill now set DRI device permissions properly on systems that lack an xorg.conf file but have an xorg.conf.d directory. -
vglserver_configshould now work with recent Debian releases. -
Fixed an issue whereby VirtualGL would not always resize the Pbuffer corresponding to an Xt or Motif OpenGL widget whenever the widget was resized.
-
The Mac packaging system now uses pkgbuild and productbuild rather than PackageMaker (which is obsolete and no longer supported.) This means that OS X 10.6 "Snow Leopard" or later must be used when packaging VirtualGL, although the packages produced can be installed on OS X 10.5 "Leopard" or later. OS X 10.4 "Tiger" is no longer supported.
-
The Uninstall VirtualGL app should once again work on OS X 10.5.
-
Fixed an infinite drawing loop that occurred when running Altair HyperBeam with VirtualGL. Since 2.1.3, VirtualGL has been setting the
WM_DELETE_WINDOWproperty on any OpenGL window so that it (VGL) can be notified if the window manager deletes the window (thus preventing VGL from trying to draw to the window after it disappears.) This was originally done within the body ofXCreate[Simple]Window(), but Java did not like us overriding the property for 2D windows (refer to 2.3.1[9].) Thus, the setting ofWM_DELETE_WINDOWwas moved into the body ofglXMake[Context]Current()so that it would affect only OpenGL windows. However, VGL was incorrectly replacing the list of WM protocols rather than simply addingWM_DELETE_WINDOWto the existing list. VGL was also not checking whetherWM_DELETE_WINDOWalready existed in the list before adding it. For reasons that are not well understood, this caused HyperBeam to get into an infinite loop, because callingXSetWMProtocols()within the body of
glXMakeCurrent()seemed to cause the application to callglXMakeCurrent()again. This issue may have affected other applications as well. -
Fixed an issue whereby the RPMs generated by VirtualGL's packaging system (including the official RPMs for VGL 2.3.2 and 2.3.3) could not be installed on later Fedora releases.
-
Fixed an issue whereby
glXSwapBuffers()would not work properly unless the drawable passed to that function was current. This specifically fixes a rendering issue with voreen, but it may have affected other apps as well. -
Fixed an issue that prevented
vglgenkeyfrom working properly on Red Hat Enterprise Linux 7. -
Fixed an issue that prevented
vglserver_configfrom working properly on Ubuntu 14.04.
2.3.3
Assets
- VirtualGL-2.3.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 1.3.0.
Support
Code Quality: Stable
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.3.3
Release Notes
Significant changes relative to 2.3.2:
-
VirtualGL will no longer throw an exception if a 3D application calls certain X11 and GLX functions with a NULL argument. It will instead allow the underlying X11 or GLX library to handle the error. This specifically works around an issue with Fiji.
-
Worked around an issue whereby, when ANSYS Workbench 14.5 was run with VirtualGL, subprocesses (such as the geometry editor) launched from within the Workbench environment would not exit properly (and thus would become zombies.) This issue also affected ANSYS HFSS, which would either lock up when exiting or print an error message: "terminate called after throwing an instance of 'rrerror'".
-
Worked around an issue whereby, when using MAGMA5 with VirtualGL, the second and subsequent perspectives opened within the application would not always display correctly.
-
Added support for the
GLX_EXT_texture_from_pixmapextension. -
Added support for the
GLX_EXT_swap_controlandGLX_SGI_swap_controlextensions and a new configuration variable (VGL_REFRESHRATE) that can be used to control them. See the User's Guide for more information. -
Added support for depth=32 visuals and FB configs.
-
Added a new "window manager" mode that disables certain features in VirtualGL that interfere with 3D window managers such as Compiz. This, combined with [6] and [4] above, should allow Compiz to run properly with this version of VirtualGL, provided that the 2D X Server has support for the X Composite extension. See the User's Guide for more information.
-
Fixed a BadDrawable X11 error that occurred when running the Steam client in VirtualGL.
-
Improved the accuracy of TCBench and CPUstat.
-
Streamlined VirtualGL's behavior when it is installed from source:
vglrunnow works regardless of where the faker libraries have been installed. The build system hard-codes the value of theVGL_LIBDIRCMake variable into a script thatvglruninvokes so that it can add this directory toLD_LIBRARY_PATH. If the faker libraries are installed into a system library directory, then packagers can choose to omit the new script, andvglrunwill continue to work as it always has.- Whenever a 64-bit build is installed, glxspheres is now renamed glxspheres64, per the convention of the official packages. This makes it possible to install a 32-bit and a 64-bit version of VirtualGL into the same directory.
- If the install prefix is set to the default (/opt/VirtualGL), then the build system defaults to installing faker libraries from a 32-bit build into /opt/VirtualGL/lib32 and faker libraries from a 64-bit build into /opt/VirtualGL/lib64.
- Similarly, if the install prefix is set to the default (/opt/VirtualGL), then the build system defaults to installing the 32-bit libGL symlink for Chromium into /opt/VirtualGL/fakelib32 and the 64-bit libGL symlink for Chromium into /opt/VirtualGL/fakelib64.
-
PBO readback mode is now enabled by default. Further research has shown that professional-grade GPUs always benefit from PBOs being enabled (quite dramatically, in the case of AMD FirePro GPUs.) With consumer-grade AMD GPUs, PBOs generally do no harm, and with consumer-grade nVidia (GeForce) GPUs, the results are mixed. The GeForce drivers will fall back to blocking readbacks if the pixel format requested in
glReadPixels()doesn't match the pixel format of the Pbuffer, so PBOs will generally be slower in those cases. Thus, VirtualGL now falls back to synchronous readback mode if it detects that PBOs are not behaving asynchronously.Furthermore,
VGL_FORCEALPHAis no longer enabled by default when PBOs are enabled. This option was introduced because of the GeForce behavior mentioned above, but the option has no effect whatsoever with the professional-grade GPUs that are recommended for use with VirtualGL. Instead, VGL will now detect situations in whichVGL_FORCEALPHAmight be beneficial and suggest enabling or disabling it (ifVGL_VERBOSE=1.) -
This version of VirtualGL provides a binary package and full support for Cygwin64.
2.3.2
Assets
- VirtualGL-2.3.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 1.2.1.
Packaging Changes
- Solaris/x86 packages are no longer provided.
Support
Code Quality: Stable
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.3.2
Release Notes
Significant changes relative to 2.3.1:
-
Added new stereo options, including green/magenta and blue/yellow anaglyphic as well as three half-resolution passive stereo options that can be used to drive 3D TVs.
-
The 32-bit supplementary package for amd64 Debian systems should now work properly on MultiArch-compatible systems (such as Ubuntu 11 and later.)
-
vglserver_configshould now work properly with LightDM. -
VirtualGL was not advertising that it supported the
GLX_ARB_create_context_profileextension, even though it does. This has been fixed. -
VirtualGL now uses a separate OpenGL context to perform pixel readback. This fixes several issues, including an error (
GL_ARB_pixel_buffer_object extension not available) when trying to enable PBO readback with applications that use a 3.x or later OpenGL core profile, and incorrect rendering in JPCSP and other applications that modify certain pixel store parameters (such asGL_PACK_SWAP_BYTESorGL_PACK_ROW_LENGTH) that VirtualGL wasn't properly handling. -
VGL_FORCEALPHA=1now works properly if the 3D application specifies visual attributes ofGLX_RED_SIZE=GLX_GREEN_SIZE=GLX_BLUE_SIZE=1. -
glXUseXFont()has been extended to work with Pbuffers. Due to an oversight, VirtualGL would previously abort with an error message if the 3D application attempted to render text to a Pbuffer that it created. -
Fixed an issue whereby, when displaying to a 2D X server that lacked the
MIT-SHMextension, the X11 Transport would sometimes fail to resize its internal Pixmap (used for double buffering) whenever the X window was resized. This specifically caused OpendTect to display only a portion of its 3D view whenever it resized its 3D window after a "Restore" operation, but the issue may have affected other applications as well. -
Previously, 3D applications running in VirtualGL could not successfully use
XGetImage()to obtain the rendered frame from a GLX pixmap. This has been fixed. -
vglrunnow automatically sets an environment variable that disables the execution of theVBoxTestOGLprogram in VirtualBox 4.2 and later. SinceLD_PRELOADis not propagated down to VBoxTestOGL whenever VirtualBox launches it (because VirtualBox is a setuid-root executable), VBoxTestOGL always fails in a VirtualGL environment, which makes VirtualBox believe that the system has no 3D support. With version 4.1.10, VirtualBox began running VBoxTestOGL every time a VM was launched, which effectively prevented VBox from being used with VirtualGL unless the user hacked their system by symlinking/bin/trueto/usr/lib/virtualbox/VBoxTestOGL.
2.3.1
Assets
- VirtualGL-2.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 1.2.0.
Support
Code Quality: Stable
Current Support Category: EOL
Documentation
User’s Guide for VirtualGL 2.3.1
Release Notes
Significant changes relative to 2.3:
-
Worked around a segfault that occurred when running CoreBreach.
-
VirtualGL now properly handles implicit deletion of windows/subwindows via
XCloseDisplay(), implicit deletion of subwindows viaXDestroyWindow(), and explicit deletion of subwindows viaXDestroySubwindows(). This specifically addresses BadDrawable errors that occurred when running certain applications in WINE 1.3.34 and later. -
Fixed a crash in
glXCreateGLXPbufferSGIX()that occurred when a NULL attribute list pointer was passed to it. -
VirtualGL should now build and run properly on FreeBSD.
-
VirtualGL now works properly with applications that dynamically load libX11. This specifically fixes several issues that occurred when running SDL-based applications against a version of libSDL that was configured with
--enable-x11-shared. -
Changed the Debian package names to lowercase (virtualgl and virtualgl32) to avoid an issue whereby the package was always being installed, even if the installed version was up to date.
-
vglserver_confignow works properly with KDM on RHEL/CentOS 5 systems. -
Added a new option (
VGL_GLFLUSHTRIGGER) that, when set to0, will cause VirtualGL to ignoreglFlush()commands from the 3D application. This is intended for rare applications that do front buffer rendering and useglFlush()as an "intermediate" synchronization command but then subsequently callglFinish()to indicate the end of the frame. -
Fixed an issue whereby drag & drop operations in certain Java applications would cause VNC servers (any VNC server, not just TurboVNC) to hang whenever the Java application was run using VirtualGL.