X
8015

Taking Advantage of IDL Object Graphics Hardware Rendering Capabilities Over a Remote X Connection

For a remote ssh connection using X11 Forwarding, the machine running the X server is the display machine at which the user is sitting. The IDL process that is running on the remote IDL process host machine is generating X commands that are then rendered as graphics on the X server machine display.

Note that it can sometimes be difficult to take advantage of video hardware acceleration (OpenGL) over a remote X connection. This task can even be difficult even on a single machine.  IDL direct graphics functionality does not take advantage of OpenGL acceleration.  It is only the IDL object graphics and routines that use object graphics (like the new graphic functions and the old iTools) which can take advantage of OpenGL hardware rendering acceleration, if it is available.

% OpenGL Functionality Support

In order to use OpenGL with IDL, the OpenGL functionality needed in calls made by an IDL program must be properly implemented by the graphics device driver, and then also by graphics hardware to which the driver talks.

% Remote X Connection Bridging Components

In addition, when OpenGL commands are communicated from machine to machine through X11 Forwarding, then all of the bridging components, which reside on both machines and permit the remote OpenGL communication between the X server and X client machines, must be fully compatible with each other.  Even the X server implementation itself can affect performance and whether or not hardware acceleration can be used in this scenario.

% Network Bandwidth

In addition to requiring the proper OpenGL functionality support and bridging component compatibility, GUI and graphics intensive applications used over a remote X connection can inherently have high network band width requirements.  If the network communication bandwidth between the client and host machines is limited then performance of the GUI or graphical application can be sluggish.  (In the case of slower network communication, a "remote X desktop" communication package like XVNC might provide a better user experience. There are even remote desktop packages for X based systems that support a form of hardware graphics acceleration.)

% Best Scenario

The ideal scenario for being able to use OpenGL acceleration with IDL between two machines communicating through a remote X (ssh with X11 Forwarding) connection would be to have two systems with the same graphics hardware, device driver version, OpenGL and X server resources installed on each of the two machines. 

% Strategy For a Good Outcome

One strategy to make it more likely that IDL will be able to render object graphics through the remote connection is the following:

* Install the latest graphics device driver made available by the graphics device vendor.  Sometimes older or even open source drivers have OpenGL bugs or don't properly support needed OpenGL components.

* Use a higher end graphics acceleration device with a good OpenGL implementation.

If possible, it would be good if you could first test your remote graphics communication scenario on a system or systems before committing to it.

% Fallback (MESA Software Rendering)

Ultimately, even when considering the above, sometimes it is just not feasible to get all of the many components on two machines to (or even one machine) to be able to take advantage of OpenGL acceleration for object graphics generated by an IDL program.  In this case, IDL can fall back to use Mesa software rendering instead for object graphics, which can sometimes be very performant, but typically not as fast as hardware accelerated rendering.

% Additional Help Article Information

If it can be helpful, below is a URL to an Exelis VIS Help Article that discusses in more detail additional OpenGL hardware acceleration concepts for X ("OpenGL Direct Hardware Rendering on Linux"). (The article referenced below was written a few years ago but the concepts still apply.)

    http://harrisgeospatial.com/Support/SelfHelpTools/HelpArticles/HelpArticles-Detail/TabId/2718/ArtMID/10220/ArticleID/19193/OpenGL-Direct-Hardware-Rendering-on-Linux.aspx