Skip to content

Releases: VirtualGL/virtualgl

2.5.2

Choose a tag to compare

@dcommander dcommander released this 03 Mar 00:40

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:

  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.

  2. 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_SAMPLES was greater than 0. Multisampling cannot be used with Pixmap rendering, and because nVidia's drivers export different FB configs for GLX_PBUFFER_BIT and GLX_PBUFFER_BIT|GLX_PIXMAP_BIT, it is necessary to specify GLX_PBUFFER_BIT to obtain an FB config that supports multisampling.

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

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

  5. Fixed various build issues with Clang.

  6. The interposed dlopen() function in the Linux version of libdlfaker.so will now nullify the RTLD_DEEPBIND flag, if an application passes that flag to dlopen(). This prevents an issue whereby an application could call dlopen(..., *|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.

  7. Fixed an issue whereby VirtualGL would crash with a GLXBadContextState error if the 3D application set the render mode to something other than GL_RENDER prior to calling glXSwapBuffers().

2.5.1

Choose a tag to compare

@dcommander dcommander released this 01 Oct 18:23

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:

  1. VirtualGL will no longer report the presence of the GLX_EXT_swap_control, GLX_EXT_texture_from_pixmap, or GLX_SGI_swap_control extensions 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 the glXSwapIntervalSGI() and glXSwapIntervalEXT() functions. Furthermore, VirtualGL will now report the presence of the GLX_EXT_import_context and GLX_NV_swap_group extensions to applications if the underlying OpenGL library exports the necessary functions to support those extensions.

  2. Fixed compilation errors when building with GCC v6.

  3. vglserver_config is now SELinux-aware and will set up the proper file contexts to allow vglgenkey to 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.

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

2.5

Choose a tag to compare

@dcommander dcommander released this 16 Feb 03:41

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:

  1. 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 vglclient and vglconnect that the OS X package previously installed under /usr/bin have thus been removed in this version of VirtualGL. It will therefore be necessary to invoke vglconnect and vglclient using the full pathname (/opt/VirtualGL/bin/vglconnect or /opt/VirtualGL/bin/vglclient) or to add /opt/VirtualGL/bin to the PATH.

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

  3. vglserver_config should now work properly with MDM (MATE Display Manager), if its config files are installed in the standard location (/etc/mdm).

  4. Fixed a regression introduced in 2.4 that caused vglrun to abort with "VGL_ISACTIVE=1: is not an identifier" when running on Solaris 10 (or other systems in which /bin/sh doesn't support export VAR=value syntax.)

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

2.4.90 (2.5 beta1) Pre-release
Pre-release

Choose a tag to compare

@dcommander dcommander released this 27 Oct 20:32

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:

  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.

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

  3. 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 the glXProcAddress[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 the glXBindTexImageEXT() and glXReleaseTexImageEXT() 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 -nodl is passed to vglrun, 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_GLLIB and VGL_X11LIB.
  4. 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.

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

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

  7. The vglconnect script 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 with vglconnect when using the -s or -x options.

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

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

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

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

  11. glxinfo has been extended to report whether a particular GLX FB config supports GLX_BIND_TO_TEXTURE_RGB_EXT and GLX_BIND_TO_TEXTURE_RGBA_EXT, i.e. whether the FB config can be used with GLX_EXT_texture_from_pixmap.

  12. vglserver_config should now work properly with SDDM, if its scripts are installed in the standard location (/usr/share/sddm/scripts).

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

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

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

Choose a tag to compare

@dcommander dcommander released this 28 Jul 20:23

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:

  1. 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 specify VGL_DEFAULTFBCONFIG=GLX_STENCIL_SIZE,8 with certain applications (previously necessary when running Abaqus v6 and MAGMA5.)

  2. VirtualGL will no longer advertise that it supports the GLX_ARB_create_context and GLX_ARB_create_context_profile extensions unless the underlying OpenGL library exports the glXCreateContextAttribsARB() function.

  3. Fixed "Invalid MIT-MAGIC-COOKIE-1" errors that would prevent VirtualGL from working when vglconnect was used to connect to a VirtualGL server from a client running Cygwin/X.

  4. 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 is GL_RENDER. Reading back the front buffer when the render mode is GL_SELECT or GL_FEEDBACK is not only unnecessary, but it was known to cause a GLXBadContextState error with newer nVidia drivers (340.xx and later) in certain cases.

  5. Fixed a deadlock that occurred in the multithreaded rendering test of fakerut when 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.

  6. 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 with GLX_DRAWABLE_TYPE=GLX_PBUFFER_BIT (assuming that VGL_DRAWABLE=pbuffer, which is the default.) This is incorrect, however, because regardless of the value of VGL_DRAWABLE, VirtualGL still uses Pixmaps on the 3D X server to represent GLX Pixmaps (necessary in order to make GLX_EXT_texture_from_pixmap work 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 for GLX_PBUFFER_BIT and GLX_PBUFFER_BIT|GLX_PIXMAP_BIT.

2.4

2.4

Choose a tag to compare

@dcommander dcommander released this 28 Jul 20:23

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:

  1. Fixed an issue that prevented recent versions of Google Chrome/Chromium from running properly in VirtualGL.

  2. VGL_SYNC now affects glFlush(). 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 require VGL_SYNC, it is believed that this change is innocuous.

  3. Fixed a regression in vglconnect (introduced in VirtualGL 2.3) that prevented vglconnect -x from working properly if the user did not have access to the current directory (vglconnect was erroneously creating a temporary file in the current directory instead of in /tmp.)

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

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

  6. 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=1 to the CMake command line. The XCB interposer is also disabled by default at run time. It must be enabled by setting the VGL_FAKEXCB environment variable to 1 or passing +xcb to vglrun.

  7. 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 by glXCreatePixmap() and glXDestroyPixmap(). 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 as XCopyArea() and XGetImage(), 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 called XCloseDisplay() 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 to glXCreate[GLX]Pixmap().

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

  9. 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 glGenBuffers at 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 call glGenBuffers(), 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 using glXProcAddress(), rather than relying on the dynamic linker to resolve them. Note that this issue could be worked around in previous versions of VirtualGL by setting VGL_READBACK=sync.

2.3.90 (2.4 beta1)

2.3.90 (2.4 beta1) Pre-release
Pre-release

Choose a tag to compare

@dcommander dcommander released this 28 Jul 20:22

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:

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

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

  3. glXChooseFBConfig() now properly handles the GLX_FBCONFIG_ID attribute. 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.

  4. The performance of PBO readback on ATI FirePro GPUs has been improved dramatically (close to an order of magnitude.)

  5. vglserver_config will now set DRI device permissions properly on systems that lack an xorg.conf file but have an xorg.conf.d directory.

  6. vglserver_config should now work with recent Debian releases.

  7. Fixed an issue whereby VirtualGL would not always resize the Pbuffer corresponding to an Xt or Motif OpenGL widget whenever the widget was resized.

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

  9. The Uninstall VirtualGL app should once again work on OS X 10.5.

  10. Fixed an infinite drawing loop that occurred when running Altair HyperBeam with VirtualGL. Since 2.1.3, VirtualGL has been setting the WM_DELETE_WINDOW property 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 of XCreate[Simple]Window(), but Java did not like us overriding the property for 2D windows (refer to 2.3.1[9].) Thus, the setting of WM_DELETE_WINDOW was moved into the body of glXMake[Context]Current() so that it would affect only OpenGL windows. However, VGL was incorrectly replacing the list of WM protocols rather than simply adding WM_DELETE_WINDOW to the existing list. VGL was also not checking whether WM_DELETE_WINDOW already existed in the list before adding it. For reasons that are not well understood, this caused HyperBeam to get into an infinite loop, because calling XSetWMProtocols() within the body of
    glXMakeCurrent() seemed to cause the application to call glXMakeCurrent() again. This issue may have affected other applications as well.

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

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

  13. Fixed an issue that prevented vglgenkey from working properly on Red Hat Enterprise Linux 7.

  14. Fixed an issue that prevented vglserver_config from working properly on Ubuntu 14.04.

2.3.3

Choose a tag to compare

@dcommander dcommander released this 28 Jul 20:21

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:

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

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

  3. Worked around an issue whereby, when using MAGMA5 with VirtualGL, the second and subsequent perspectives opened within the application would not always display correctly.

  4. Added support for the GLX_EXT_texture_from_pixmap extension.

  5. Added support for the GLX_EXT_swap_control and GLX_SGI_swap_control extensions and a new configuration variable (VGL_REFRESHRATE) that can be used to control them. See the User's Guide for more information.

  6. Added support for depth=32 visuals and FB configs.

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

  8. Fixed a BadDrawable X11 error that occurred when running the Steam client in VirtualGL.

  9. Improved the accuracy of TCBench and CPUstat.

  10. Streamlined VirtualGL's behavior when it is installed from source:

    • vglrun now works regardless of where the faker libraries have been installed. The build system hard-codes the value of the VGL_LIBDIR CMake variable into a script that vglrun invokes so that it can add this directory to LD_LIBRARY_PATH. If the faker libraries are installed into a system library directory, then packagers can choose to omit the new script, and vglrun will 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.
  11. 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_FORCEALPHA is 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 which VGL_FORCEALPHA might be beneficial and suggest enabling or disabling it (if VGL_VERBOSE=1.)

  12. This version of VirtualGL provides a binary package and full support for Cygwin64.

2.3.2

Choose a tag to compare

@dcommander dcommander released this 28 Jul 20:20

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:

  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.

  2. The 32-bit supplementary package for amd64 Debian systems should now work properly on MultiArch-compatible systems (such as Ubuntu 11 and later.)

  3. vglserver_config should now work properly with LightDM.

  4. VirtualGL was not advertising that it supported the GLX_ARB_create_context_profile extension, even though it does. This has been fixed.

  5. 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 as GL_PACK_SWAP_BYTES or GL_PACK_ROW_LENGTH) that VirtualGL wasn't properly handling.

  6. VGL_FORCEALPHA=1 now works properly if the 3D application specifies visual attributes of GLX_RED_SIZE=GLX_GREEN_SIZE=GLX_BLUE_SIZE=1.

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

  8. Fixed an issue whereby, when displaying to a 2D X server that lacked the MIT-SHM extension, 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.

  9. Previously, 3D applications running in VirtualGL could not successfully use XGetImage() to obtain the rendered frame from a GLX pixmap. This has been fixed.

  10. vglrun now automatically sets an environment variable that disables the execution of the VBoxTestOGL program in VirtualBox 4.2 and later. Since LD_PRELOAD is 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/true to /usr/lib/virtualbox/VBoxTestOGL.

2.3.1

Choose a tag to compare

@dcommander dcommander released this 28 Jul 20:19

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:

  1. Worked around a segfault that occurred when running CoreBreach.

  2. VirtualGL now properly handles implicit deletion of windows/subwindows via XCloseDisplay(), implicit deletion of subwindows via XDestroyWindow(), and explicit deletion of subwindows via XDestroySubwindows(). This specifically addresses BadDrawable errors that occurred when running certain applications in WINE 1.3.34 and later.

  3. Fixed a crash in glXCreateGLXPbufferSGIX() that occurred when a NULL attribute list pointer was passed to it.

  4. VirtualGL should now build and run properly on FreeBSD.

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

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

  7. vglserver_config now works properly with KDM on RHEL/CentOS 5 systems.

  8. Added a new option (VGL_GLFLUSHTRIGGER) that, when set to 0, will cause VirtualGL to ignore glFlush() commands from the 3D application. This is intended for rare applications that do front buffer rendering and use glFlush() as an "intermediate" synchronization command but then subsequently call glFinish() to indicate the end of the frame.

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