This update to DCV implements SVN support for DMX servers. This support allows an OpenGL application to export its entire user interface, including the 2D graphics elements (windows and widgets), to a single composite display (wall display), providing better performance than a DMX-only implementation. An application can also take advantage of existing SVN features to export the graphics display to additional composite displays, without the 2D graphics elements visible, or to a SVN/RVN session at the same time.
This page contains two sections, first, a description of how to use the SVN DMX support, and then instructions for installation of the DMX server
A DMX server must be started before starting
a SVN session using DMX support. The DMX
server can be either a root window display
server or a non-root window display server.
A sample invocation of a DMX server as a
non-root window display server is
Xdmx :1 -nowindowopt +xinerama -fontpath
/usr/X11R6/lib/X11/fonts/misc -configfile
wall.config -config dv -input $DISPLAY -ac &
sleep 3
mwm -display :1 &
where
-nowindowopt disables a lazy window creation option
+xinerama enables spanning the logical display across
multiple physical displays
-fontpath specifies the path to the fonts to be used
by the DMX server
-configfile specifies the path to the DMX configuration
file
-config specifies the name of a configuration defined
in the DMX configuration file
-input specifies the source to use for input
-ac suppresses authorization checks by the DMX
server
The mwm command invokes the Motif window
manager as the window manager for the DMX
display, and you can substitute the window
manager of your choice.
A sample wall configuration file for a 2x1
display is
virtual dv {
wall 2x1 deepview3:0.0 deepview4:0.0 ;
}
Refer to the Xdmx man page or to the DMX web site for more information
DMX support is invoked by use of the -clientdpy
flag, specifying the name of the DMX server
to be used. The server name is specified
in the same format as when the DISPLAY environment
variable is set before invoking an X application.
When the -clientdpy parameter specifies a
DMX server, the -clientrender flag is ignored.
If the -clientdpy flag does not specify a
DMX server, then SVN will treat that display
specification as a normal X server and the
-clientrender flag setting will also be respected
Additional displays are optional and can
be specified by use of the -svndpy and -svnrvn
flags, or by use of the SVN_DISPLAY environment
variable.
A sample SVN invocation for a DMX-only session,
assuming all other required SVN environment
variables are set is
svn_sender -clientdpy deepview5:1 /usr/local/bin/atlantis
where the SVN_DISPLAY environment variable
is not set
A sample SVN invocation where a DMX session
and a SVN wall display are used is
svn_sender -svndpy /home/deepview/wall.cfg
-clientdpy deepview5:1 /usr/local/bin/atlantis
Before you can use DMX support in SVN, you must install the DMX server and build a copy of libdmx.so for use by SVN.
In order to use SVN with DMX support you need to install the DMX server from the DMX download site. This is a 32-bit server which has been tested on both 32 bit and 64 bit systems.
To install the 32 bit DMX server, first download
the DMX server RPM from the DMX web site by clicking the Download DMX link and selecting the RPM for i386 systems.
Once you have downloaded the RPM, install
it, as root, by invoking the rpm -i command, for example, rpm -i dmx-1.2.20040630-1.i386.rpm
SVN requires a shared copy of a DMX interface library in order to implement DMX support. The DMX RPMs do not include this shared library, so it must be built at your site. The 32 bit DMX RPM contains an object file which is used to build the 32 bit shared library. If you are running SVN with 64 bit applications, then a 64 bit version of the library is required.
If you are running 32 bit applications with SVN, then you need to build a 32 bit version of libdmx.so on a 32 bit system as follows
Create a directory to build the shared library,
for instance, /home/deepview/libdmx
cd to that directory
Extract dmx.o from libdmx.a by issuing the
command ar x /usr/X11R6/lib/libdmx.a dmx.o
Build libdmx.so by issuing the command gcc -o libdmx.so -shared -fPIC dmx.o -L/usr/X11R6/lib
-lX11 -lXext
Copy, as root, libdmx.so to /opt/IBM/dcv/svn/lib/libdmx.so
Create the DMX configuration file defining
display node configuration and verify correct
DMX server operation
If you are running 64 bit applications using SVN, then you need to build
a 64 bit version of libdmx.so. If you have a copy of libdmx.a where the
dmx.o object file is a 64 bit object file, then you can use the same procedure
to build libdmx.so as described above for the 32 bit libdmx.so.
You can determine if your copy of dmx.o is a 64 bit object by extracting
the dmx.o object using the command ar x libdmx.a dmx.o then issuing the command file dmx.o. If dmx.o is a 64 bit object, the output from the file command will state
that dmx.o is a 64 bit x86_64 object file.
If your copy of dmx.o is not a 64 bit object file, then you need to perform
the following steps to build libdmx.so.
Create a directory to build the shared library,
for instance, /home/deepview/libdmx
cd to that directory
Enter export CVSROOT=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/dmx
Enter cvs login
Press enter at the password prompt
Enter cvs export -D2006/03/15 dmx/xc/lib/dmx/dmx.c
Enter cvs export -D2006/03/15 dmx/xc/include/extensions/dmxext.h
Enter cvs export -D2006/03/15 dmx/xc/include/extensions/dmxproto.h
Enter cvs export -D2006/03/15 dmx/xc/include/extensions/extutil.h
Note: You can specify a date later than 2006/03/15
for the -D flag in the above commands if
you want to obtain a later version of this
source code.
Enter cd dmx/xc/lib/dmx
Enter gcc -o libdmx.so -shared -fPIC -I../../include/extensions
-I/usr/X11R6/include/X11/extensions dmx.c
-L/usr/X11R6/lib64 -lXext -lX11
Verify that libdmx.so compiled without errors
Copy, as root, libdmx.so to /opt/IBM/dcv/svn/lib64/libdmx.so
Create the DMX configuration file defining
display node configuration and verify correct
DMX server operation