12.2. Remote Display Mechanisms

EnSight can support utilizing remote display mechanisms from the machine running the EnSight Client back through the physical machine you are sitting in front of. However, not all setups/configurations have the correct default operation, therefore we have put together some best practices and guidelines to help ensure that you can utilize EnSight display with these remote display techniques.

12.2.1. NICE DCV Remote

NICE DCV is a high-performance remote display protocol that provides customers with a secure way to deliver remote desktops and application streaming from any cloud or data center to any device, over varying network conditions. It is an OpenGL accelerated VNC Server. NICE DCV allows users to run graphics-intensive applications remotely using the remote graphics capabilities, and stream the compressed, encrypted pixel stream to your local machine, eliminating the need for expensive dedicated workstations. Customers across a broad range of HPC workloads use NICE DCV for their remote visualization requirements.

Limitations

Graphics Window Trail From Dialog Grab

One issue when using NICE DCV on a remote Linux machine using the KDE environment, with EnSight, is that when you drag a dialog and it passes through the EnSight graphics window, and leaves a trail as shown in the graphic below.

This is caused by a bug in Qt. If the DISPLAY environmental variable is set in such a way that it bypasses shared memory connection to the X11 server, this bug will show up. This issue has been fixed in EnSight 2020R1. There is a single shared library for Linux that can be replaced in other versions of EnSight to fix this problem.

The fix, in your remote Linux machine, is to use Gnome as this problem does not occur.

The workaround in KDE, to get rid of this trail, is to simply update the graphics window. For example, you can pass your mouse over the geometry in the graphics window and the act of highlighting parts will update the screen and remove the trail. Or you can click on the EnSight graphics window and rotate the geometry and this will remove the trail.

If you start up EnSight using the -X (mesa libraries that skip using the graphics card) this issue goes away, however the loss of the hardware graphics card ruins performance so this is not a suggested option.

DCV 3D Refresh

Some have reported in their DCV configurations that the HW 3D rendering does not always refresh properly. In particular, when using DISPLAY set to something other than :0. In EnSight 2022R1, we have a feature where EnSight can be asked to re-render when idle. To do so, set the following environmental variable on your Linux machine: ENSIGHT_FORCE_3D_REFRESH=1 to enable this feature.

SUSE Linux Enterprise Server (SLES) – Slow Session

The following SLES settings on your remote Linux machine, can be used to help improve performance of the display updates:

[xdmcp]
Enable=true
[security]
DisallowTCP=false

Empty ADR Tab

On some DCV enabled systems, the EnSight rendering window comes up just fine, but any ADR report tabs come up as empty widgets. In these cases, one can try to use single-process web browsing. To try out this option on your remote Linux machine, set the environmental variable QTWEBENGINE_CHROMIUM_FLAGS to '—single-process'.

12.2.2. Exceed TurboX Remote Display

This is a product of OpenText: Remote Access & Remote Desktop Software | OpenText ETX

It is a remote display technology that routes sessions to an applet running on Windows, Mac, Linux or iPad with a Web-based front end. When displaying a Linux application to a Windows host, the system uses a Windows native X11 server (HummingBird based) to handle the remote X11 calls. OpenGL is redirected to a rendering service on another system (via indirect rendering) and the imagery passed to the Windows client. This is the configuration that Ansys uses for testing and one can get access to the test system complete with nightly builds.fsdfs.

Limitations

Currently, there are three issues with EnSight and TurboX

  1. Versions of EnSight prior to 2022R1 have a bug in Qt that causes the various list objects not to refresh properly. This issue has been fixed in EnSight 2022R1.

  2. The OpenGL indirect rendering provided in this environment is not sufficient to be able to support EnSight. EnSight will detect this and fallback to slower software (SW) rendering (built-in Mesa). Unfortunately, there is an issue with the EnSight built-in Mesa and indirect X11 connections as well. In this case, the X11 server does not support the MIT-SHM extension. The Mesa in EnSight assumes that this extension is present and tries to use it w/o checking. The result is that the 3D window does not redraw and messages similar to

    Xlib: extension "MIT-SHM" missing on display ":4".

    will be sent to the Linux console. The work-around for this case is to set the environmental variable: XLIB_NO_SHM to 'true' on your remote machine. This will cause Mesa in EnSight not to try to use the MIT-SHM extension and it will run in this configuration with SW rendering.

  3. For fully accelerated 3D OpenGL one can use 'ssrrun' to launch EnSight on your remote machine and do not use -X. The environmental variable is not needed. The OpenGL will be redirected to the local GFX card, bypassing GLX for good performance.

12.2.3. TightVNC and VirtualGL

This configuration leverages the OpenGL interposer in VirtualGL which is based on LD_PRELOAD of several shared libraries and external redirection to TightVNC for pixel transport. There are a couple of problems with this approach. The shared libraries used by VirtualGL do not support the use of EnSight software rendering using the Mesa libraries as an alternative OpenGL implementation.

For example:

vglrun ensight -X

will halt with the error:

[VGL] ERROR: VirtualGL attempted to load the real

[VGL] glXChooseFBConfig function and got the fake one instead.

[VGL] Something is terribly wrong. Aborting before chaos ensues.

In releases prior to 2022R1, attempts to perform operations like saving an ADR report to .pdf from Fluent will fail for these reasons. One work-around in older releases is not to use vlgrun, setting the LD_LIBRARY_PATH environmental variable on your remote machine to point at the CEI Mesa libs.

In EnSight releases 2022 R1 and later, if we detect the use of vglrun (more accurately, we detect that the environmental variable VGL_ISACTIVE is set on your remote machine), we will ignore the -X specification on the command line. If for some reason this causes a problem, one can also set the environmental variable CEI_IGNORE_VGL to '1' to re-enable the older behavior, but you are responsible to handling the previously noted vglrun limitations.