A P P E N D I X  B

Application Recipes

This appendix provides recipes for using Sun Shared Visualization 1.1 software with selected applications. Topics include:


Recipes for Selected Applications



Note - Environment variables for Sun Grid Engine jobs either must be saved with the job using the -v variable option of qsub or be set by the job (script) after its invocation by Sun Grid Engine.


TABLE B-1 lists some application recipes.


TABLE B-1 Example Application Recipes

Application

Platform

Recipe

Notes

ANSA v12.1.0

Linux/x86

At the top of the ansa.sh script, add the following:

LD_PRELOAD_SAVE=$LD_PRELOAD

export LD_PRELOAD=

Then add:

LD_PRELOAD=$LD_PRELOAD_SAVE

just prior to this line:

$(ANSA_EXEC_DIR)bin/ansa_linux$(ext2)

The ANSA startup script directly invokes /lib/libc.so.6 to query the glibc version. Since the VirtualGL faker depends on libc, preloading VirtualGL when directly invoking libc.so.6 creates an infinite loop. So it is necessary to disable the preloading of VirtualGL in the application script, and then reenable preloading prior to launching the actual application.

AutoForm v4.0x

All

vglrun +sync xaf_version

AutoForm relies on mixed X11/OpenGL rendering, and thus certain features (particularly the Dynamic Section dialog and Export Image feature) do not work properly unless VGL_SYNC is enabled. Since VGL_SYNC automatically enables the X11 Image Transport and disables frame spoiling, ensure that you use TurboVNC when VGL_SYNC is enabled.

I-deas Master Series 9, 10, & 11

Solaris SPARC

When running I-deas with VirtualGL on a Solaris SPARC server, remotely displaying to a non SPARC client machine or to an X proxy such as VNC, set the SDRC_SUN_IGNORE_GAMMA environment variable to 1.

I-deas aborts if the software detects that the assigned X visual is not gamma-corrected. Gamma-corrected X visuals only exist on Solaris SPARC X servers, so if you are displaying the application using another type of X server or X proxy that doesn’t provide gamma-corrected X visuals, then you must override the gamma detection mechanism in I-deas.

Java 5 2D applications that use OpenGL

Solaris SPARC

When VirtualGL is used in conjunction with Java 5 (Java 1.5.0) software to remotely display Java 2Dtrademark applications using the OpenGL pipeline, certain Java 2D applications cause the OpenGL subsystem to crash with the following error:

thread tries to access GL context current to another thread

If you encounter this error, set the SUN_OGL_IS_MT environment variable to 1 and rerun the application.

This issue does not exist in Java 6 software.

Java 2D applications that use OpenGL

Linux, Solaris OS

Java 2D uses OpenGL to perform rendering if sun.java2d.opengl is set to True. For example:

java -Dsun.java2d.opengl=True MyAppClass

In order for this to work in VirtualGL, you must start vglrun with the -dl switch. For example:

vglrun -dl java -Dsun.java2d.opengl=True MyAppClass

If you are using Java v6 b92 or later, you can also set the environment variable J2D_ALT_LIBGL_PATH to the path of librrfaker.so. For example:

setenv J2D_ALT_LIBGL_PATH /opt/VirtualGL/lib/librrfaker.so

vglrun java -Dsun.java2d.opengl=True MyAppClass

Pro/ENGINEER Wildfire v3.0

Solaris SPARC

When using VGL Image Transport, set the environment variable VGL_INTERFRAME to 0 on the graphics server prior to launching Pro/ENGINEER v3.0.

Pro/ENGINEER 3.0 frequently sends long sequences of glFlush() calls though nothing new has been rendered. The glFlush() calls cause VirtualGL to send long sequences of duplicate images into the VGL Image Transport image pipeline. If interframe comparison is enabled, the overhead of comparing these duplicate images affects Pro/ENGINEER performance when zooming in or out. Better performance is achieved by disabling interframe comparison and enabling VirtualGL’s frame spoiling functionality.

Pro/ENGINEER Wildfire v2.0

Solaris SPARC

Add the following to ~/config.pro:

graphics opengl

You might also need to set the VGL_XVENDOR environment variable to "Sun Microsystems, Inc." if you are running Pro/ENGINEER 2.0 over a remote X connection to a Linux or Windows VirtualGL client.

Pro/ENGINEER 2.0 for Solaris OS disables OpenGL if the application detects a remote connection to a non Sun X server.

QGL (OpenGL Qt Widget)

Linux

vglrun -dl application

Qt can be built such that Qt either resolves symbols from libGL automatically or uses dlopen() to manually resolve those symbols from libGL. As of Qt v3.3, the latter behavior is the default, so OpenGL programs built with later versions of libQt do not work with VirtualGL unless the -dl switch is used with vglrun.

Wine

Linux

vglrun -dl wine
[
windows-opengl-app.exe]

Intercept dlopen() call for libGL.so.