This chapter provides step-by-step instructions for running OpenGL Vizserver. The following topics are covered:
At the startup of an OpenGL Vizserver session, you are allowed to specify various session attributes, some more prominent than others. Two prominent attributes that are used to classify the session are based on the following:
Single-user sessions involve one client user (usually remote) using graphics pipes available on the OpenGL Vizserver server. Collaborative sessions allow multiple distant users, one of them being a master of the session and the rest of them being nonmasters, to display and interact with the same applications in real time.
![]() | Note: There is currently no multiplexing on the use of graphics pipes. Therefore, for a single-user session, only one user can use exclusively the graphics pipes configured for the session. Additionally, OpenGL Vizserver does not support multiple, active, single-user sessions for the same user. |
In general, the following factors determine what graphics will be served:
A video group is a collection of hardware graphics resources on the server. It consists of a set of one or more Scalable Graphics Capture cards ( hardware readback devices) installed on the server along with all the hardware compositors, graphics pipes, or external DVI sources that feed them. The system administrator for the server determines the list of video groups available for clients to use.
Only the windows for applications you run from the OpenGL Vizserver console (or invoke using the vsx command) and that are viewable in the active screens you specify will be served to the clients.
The OpenGL Vizserver server can be any of the systems listed in “About This Guide” with one or more graphics subsystems. OpenGL applications installed on the server perform all image rendering. The server compresses a rendered image and transmits it to your workstation for viewing.
To connect to the OpenGL Vizserver server, follow these four steps:
![]() | Note: The connection procedures are the same for both a single-user and a collaborative session. |
Click the OpenGL Vizserver icon on your desktop, as shown in Figure 1-1.
![]() | Note: You can also enter the command vizserver in a command-line window to display the OpenGL Vizserver main window. |
The OpenGL Vizserver main window appears, as shown in the example in Figure 1-2. The Host name field is blank. The Status field indicates that you are currently disconnected from the OpenGL Vizserver server.
Type the host name of the OpenGL Vizserver server that you want to connect to in the Host name field.
Click the Log in button.
If authentication is required, the OpenGL Vizserver Login window appears, as shown in the example in Figure 1-3. In some cases, OpenGL Vizserver automatically logs you in, and you do not have to enter a user ID and password. In other cases, OpenGL Vizserver generates several login windows to present the set of authentication fields required for logging in to the server.
Log in to the OpenGL Vizserver server by entering your username, password, and any other required information, then click the OK button.
In the OpenGL Vizserver main window, the Status field now indicates that you are connecting to the OpenGL Vizserver server. Once the Status field confirms that you are connected, the Start Session, Join Session, and Log out buttons are activated and the Log in button is deactivated, as shown in Figure 1-4.
Alternatively, you can log in to OpenGL Vizserver using a command-line interface. For the details, see section “Using Command-Line Options”.
A single-user session is a session in which a remote client can view and interact with an application that runs and renders on the OpenGL Vizserver server. Only one client can view and interact with the applications in a single-user session. A graphics pipe on the server is allocated for the session's exclusive use.
The following sections describe how to run a single-user session:
To start a single-user session, perform the following steps.
Connect to an OpenGL Vizserver server.
For instructions on how to connect, see “Connecting to a Server”.
Click the Start Session button in the OpenGL Vizserver main window.
The Status field indicates that the session is starting, as shown in Figure 1-5, and the OpenGL Vizserver Session Start window is opened, as shown in Figure 1-6.
In the OpenGL Vizserver Session Start window, set the option menu Session Type to Single-User. It is set to Collaboration by default. The Session Name field is deactivated because the session name is not needed.
In the OpenGL Vizserver Session Start window, you can also choose desktop sharing mode, ZLIB compression, the session configuration, the screens to serve, network interface, initial compression rate, and a frame spoiling option. For more detailed descriptions about these options, see “Configuring a Session”.
In the OpenGL Vizserver Session Start window, click the OK button.
The OpenGL Vizserver Session Start window closes. If the session starts successfully, the OpenGL Vizserver Session Control window and the OpenGL Vizserver Console window appear, as shown in Figure 1-7 and Figure 1-8, respectively. The Status field in the OpenGL Vizserver main window displays Active, confirming that the session is active, as shown in Figure 1-9.
The OpenGL Vizserver Console window also identifies the current OpenGL Vizserver server that you are using by displaying the server's host name in the window's title.
Now the session is ready to accept your command to launch an application under OpenGL Vizserver.
After you press the Start Session button in the OpenGL Vizserver main window, the OpenGL Vizserver Session Start window appears, as shown in Figure 1-10.
The Operation label on the top of the OpenGL Vizserver Session Start window indicates the type of session that is to be started. This section will describe the configuration options you can select for the session. After you make your configuration selections, click the OK button in the OpenGL Vizserver Session Start window to start the session. This brings you to the state described in the last step of the previous section and you are all set to launch an application under OpenGL Vizserver.
Select this option to enable desktop sharing mode, described in section “Desktop Sharing”.
Together with the Desktop Sharing option, the Configuration option menu largely determines what graphics will be served. See section “Specific Applications Versus Desktop Sharing” for the various possibilities.
The Active Screens option specifies which of the screens in the session's X server will be actually served to the client. The number of available screens is determined by the Configuration option.
Selecting a subset of the screens for serving is useful when running software composition applications where some of the graphics pipes are used only for rendering and you want to serve only the composition target pipes. Another case is when you start a local collaborative session where the number of session pipes is determined by the already running X server and you want to serve only a subset of these pipes.
![]() | Note: If you specify a video group for the Configuration option, the Active Screens option is disabled. |
The Network Interface option specifies which network interface the client uses to receive window updates. For example, users on multi-homed systems can specify the fast network interface.
The Compression combo boxes allow you to select a compression type and a corresponding compression ratio. Table 1-1 describes the options.
Table 1-1. Compression Schemes
When you set the compression rate, you reduce the amount of data that is required to transmit your image, trading off some image quality for greater interaction capability. Choose a compression rate that is consistent with the frame rate you want to achieve. OpenGL Vizserver compression runs globally; therefore, all applications running under OpenGL use the same selected compression scheme. If you run two applications simultaneously and you change the compression setting, both applications switch to the selected compression scheme.
The ZLIB Enabled checkbox controls the activation of ZLIB compression in the session. Enabling ZLIB will have two results:
The OpenGL regions of the image are compressed using the ZLIB algorithm on top of the compression algorithm selected in the Compression combo boxes, unless the selected compressor is JPEG.
Regions other than the OpenGL regions (that is, pure X regions) are compressed using the ZLIB algorithm rather than the default RLE algorithm.
Enabling ZLIB has the advantage of reducing the network bandwidth required by the OpenGL Vizserver session at no cost to the image quality. The disadvantage is that the ZLIB compression/decompression introduces higher computational loads on the server and client processors and, thus, might result in an overall reduced performance. Enable ZLIB when the network performance is the bottleneck of the OpenGL Vizserver pipeline, typically, when using a network of less than 10 Mbit/sec.
The following frame spoiling options are available:
![]() | Note: In desktop sharing mode, only the Time-Based option is applicable. |
You can select the Session Type to be either Single-User or Collaborative. See section “Single-User Versus Collaborative Sessions” for the differences.
Start the desired application by typing commands in the OpenGL Vizserver Console window, as shown in the example in Figure 1-11.
Alternatively, you can start the desired application as follows:
The application renders the image. Then the OpenGL Vizserver server transmits it to your local workstation and displays it on your screen in the application window, as shown in the example in Figure 1-12.
After starting an application, your image appears in an application window. Then use the OpenGL Vizserver Session Control window, shown in Figure 1-7, to reset compression rate, change the spoiling option, redraw your image, or stop the active session.
Clicking the Redraw Windows button in the OpenGL Vizserver Session Control window redraws the image at the selected compression rate. You can reset the compression and redraw the image at any time.
To stop an active session, click the Stop session button in the OpenGL Vizserver Session Control window, shown in Figure 1-7.
You can stop a session at any time. If you stop a session while your application is being run, the application is stopped and the session is stopped. If you close the OpenGL Vizserver Session Control window, it is the same as clicking the Stop session button.
After stopping the session, the Start Session and Join Session buttons in the OpenGL Vizserver main window become activated to allow you to start a session again or join in a collaborative session that is running on the same server that you are logging in to.
A collaborative session is a session in which multiple clients can view and interact with the same application to work together in real time.
There are two types of collaborative sessions: local and remote. A local collaborative session is a session that involves a local client on the server starting a session on its local display, and multiple remote clients joining in the session later. A remote collaborative session is a session that involves a remote client starting a session on a newly created X server, and multiple clients joining in the session later.
Whoever starts a session becomes the master of the session. But only a local client can start a local collaborative session.
The following sections describe how to run a collaborative session:
To start a local collaborative session, perform the following three steps.
Connect to an OpenGL Vizserver server before starting the session or joining the session.
For instructions about how to connect, see “Connecting to a Server”.
Click the Start Session button in the OpenGL Vizserver main window.
The Status field in the OpenGL Vizserver main window indicates that the session is starting, as shown in Figure 1-13, and the OpenGL Vizserver Session Start window is opened, as shown in Figure 1-14.
The OpenGL Vizserver server understands internally whether the client is connected to the local server or a remote server.
![]() | Note: When starting a local collaborative session, all fields except Active Screens, Session Type, and Session Name are disabled in the OpenGL Vizserver Session Start window because the display will be local and no network or bandwidth settings are needed. |
Enter a session name in the Session Name text field for the collaborative session.
A default session name is given as username@serverhost, but the master of the session can specify any string.
![]() | Note: A session name is required for a collaborative session. Later, other users must use the session name to join the session. |
In the example in Figure 1-14, you can see that it is starting a local collaborative session because serverhost from the default session name and the machine name from the Network Interface option menu are the same.
Click the OK button in the OpenGL Vizserver Session Start window.
The OpenGL Vizserver Session Start window closes. If starting the session is successful, the Status field in the OpenGL Vizserver main window indicates that the session is Active. The OpenGL Vizserver Session Control window and the OpenGL Vizserver Console window will also appear, as shown in Figure 1-15 and Figure 1-16, respectively.
![]() | Note: The OpenGL Vizserver Session Control window for a collaborative session is different from one for a single-user session; it shows the list of clients participating in the session and has a selection box for the input moderation between multiple clients. |
Now the session is ready to accept your command to launch an application under OpenGL Vizserver.
To start a remote collaborative session, perform the following four steps.
Click the Start Session button in the OpenGL Vizserver main window.
The Status field in the OpenGL Vizserver main window indicates that the session is starting, as shown in Figure 1-5. Then the OpenGL Vizserver Session Start window is opened, as shown in Figure 1-17.
![]() | Note: When starting a remote collaborative session, as contrasted to starting a local collaborative session, all the options in the OpenGL Vizserver Session Start window are enabled. |
Enter a session name for the collaborative session in the Session Name text field.
A default session name is given as username@serverhost, but the master of the session can select any string.
![]() | Note: A session name is required for a collaborative session. Later, other users must use the session name to join the session. |
In the example in Figure 1-17, you can see that it is starting a remote collaborative session because serverhost from the default session name and the machine name from the Network Interface option menu are different.
Select other configuration options like compression type, network interface, and so on, if necessary.
For a detailed description of each option, see “Configuring a Session”.
Click the OK button in the OpenGL Vizserver Session Start window.
The OpenGL Vizserver Session Start window closes and, if starting the session is successful, the Status field in the OpenGL Vizserver main window indicates that the session is Active. The OpenGL Vizserver Console window and the OpenGL Vizserver Session Control window will also appear, as shown in Figure 1-8 and Figure 1-18, respectively.
Now the session is ready to accept your command to launch an application under OpenGL Vizserver.
Joining in a collaborative session requires that the session is already started and active by performing the steps in previous sections. Also, a joining client needs to get the approval of the master of the session.
To join in a collaborative session requires actions from both the joining client and the master client.
You must perform the following actions if you are the joining client:
Click the Join Session button in the OpenGL Vizserver main window.
The Status field in the main window indicates that the session is joining, as shown in Figure 1-19, and the OpenGL Vizserver Session Join window opens, as shown in Figure 1-20.
Enter the name of the collaborative session to join in the Session Name text field of the OpenGL Vizserver Session Join Window.
This session name must match exactly the session name chosen by the master who started the session.
Select a different network interface, if necessary.
![]() | Note: When joining in a collaborative session, most of the configuration options are disabled in the OpenGL Vizserver Session Join window because those options are determined by the master when the session is started. |
Click the OK button in the OpenGL Vizserver Session Join window and wait for the master's approval.
While waiting for the master's acceptance, the OpenGL Vizserver main window shows the status of waiting, as shown in Figure 1-21.
If the master accepts the request, the newly joined client and other nonmaster clients, if any, have the updated client list in their OpenGL Vizserver Session Control window, as shown in Figure 1-22.
If the master refuses the request, the client will get a refusal message, as shown in Figure 1-23.
The OpenGL Vizserver server sends a question message to the master of the session that a client wants to join in. You must perform the following actions if you are the master client:
Click the OK button for approval or the Cancel button for denial in the question dialog box, as shown in Figure 1-24.
If the master accepts a new joining request in the session, all of the nonmaster clients, including the newly joined client, get the OpenGL Vizserver Session Control window, as shown in Figure 1-22. The master gets the OpenGL Vizserver Session Control window, as shown in Figure 1-25.
If an application has already been running, the newly joined client will see the application as soon as the joining process is done.
A method is provided to control inputs between multiple clients in a collaborative session. The master of the session has the privilege to turn the input control on or off.
In a collaborative session, clients have two additional elements in the OpenGL Vizserver Session Control window: a Moderated Input check box and a list of clients in the session.
The client list consists of three columns: USER, HOST, and INPUT. The USER is the user's login name of the client. The HOST is the host name of the client machine. The INPUT is a radio button indicating which client owns the input in the session at the moment.
![]() | Note: Only the client that has its INPUT radio button turned on has the input control in the session and can change Compression and Frame Spoiling options. |
The Moderated Input check box displays whether nonmasters can take their own input control. This check box is deactivated in nonmasters' OpenGL Vizserver Session Control windows.
![]() | Note: Only master clients can turn the Moderated Input check box on or off. |
If the Moderated Input check box is on, only the master can give input control to the clients in the session.
If the Moderated Input check box is off, nonmaster clients can get their input control by turning on the radio button. They cannot give input control to others. Only master clients can give others input control.
Nonmaster clients have the Leave session button in the OpenGL Vizserver Session Control window. To leave a session, press the Leave session button, as shown in Figure 1-22.
When a nonmaster client leaves the session, the session continues and other clients in the session will get the updated list of clients in the session from the OpenGL Vizserver server.
Only a master client has the Stop session button in the OpenGL Vizserver Session Control window. To stop a session, press the Stop session button, as shown in Figure 1-25.
Only the master of a session can stop the session. In other words, the client that starts a session is the only one that can stop the session.
![]() | Note: Nonmaster clients cannot stop the session. |
When a master client stops the session, the session ends and all the clients, including the master in the session, will have their OpenGL Vizserver Session Control and OpenGL Vizserver Console windows closed. In addition, nonmaster clients in the session get the message that the session is terminated by the master.
If an application is being run when the session is stopped, the application will be stopped too. The master of the session should be aware of this and how it may affect the clients participating in the session.
The preceding sections describe how you can run OpenGL Vizserver using its graphical interfaces. You can also use the command-line options of the vizserver command to perform all of the tasks, from connecting to the server to starting a session or joining a session.
Table 1-2 briefly describes the vizserver command-line options.
Table 1-2. Command-Line Options of the Command vizserver
The options -D, –p, –c,-z, and –s are meaningless when used with the –J option, because they cannot be set when joining a session or changed when you do not have input control after joining a collaborative session.
For more details, see the vizserver(1) man page.
If you want to log out, click the Log out button in the OpenGL Vizserver main window.
If a client logs out while the single-user session is active, the session is stopped and the client is logged out from the server.
If the master logs out while the collaborative session is active, the session stops and the master is logged out from the server. However, other clients (nonmasters) in the collaborative session are not logged out. They will get the message that the session is terminated by the master. At this stage, they can start a new session or join in another session that is already active in the server, if any, without logging out.
If a client (nonmaster) logs out while the collaborative session is active, the client is logged out from the server but the collaborative session continues without any hinderance and the rest of the clients in the collaborative session will receive the updated version of the users list in their OpenGL Vizserver Session Control window.
![]() | Note: This does not apply to starting a local collaborative session. |
Depending on the server's configuration, you might need to reserve one or more graphics pipes on the server before you start a session. Otherwise, the start session operation will fail, with the following error message:
Pipe not reserved. |
A pipe reservation is defined by a time slot (start time and end time), a user name, and the number of pipes to be reserved. In order to add a reservation, you need to use a reservation client. A sample reservation web interface can be started from the following URL:
http://serverhost/vizserver/reservation
The path element serverhost is the full name of the host machine where the OpenGL Vizserver server is running. For more information about this web interface, see Appendix A, “Reservation Web Interface”.
Once you have started a session for which you have reserved enough pipes, this session will be available for use until the end of the time slot. A warning message will be sent to you before the end of the reservation time slot.
Because OpenGL Vizserver provides an application-transparent service, your applications perform as if they are using the indirect rendering features of X11 and GLX. Interacting with one of your applications is the same as interacting with any other X-based application. The application is not aware that the OpenGL Vizserver system is rendering the image.
In a collaborative session, multiple clients participating in the session can interact with the application. However, only the client that has the input control radio box turned on can interact with the application. For a description of how to get the input control in a collaborative session, see “Input Control”.
![]() | Note: The local client's pointer is displayed on the remote client in a collaborative session only. |
In order to overcome incompatibilities between different window managers, a special meaning was assigned to the key combination CTRL-F3. Pressing this combination on application windows on the client's side will minimize all OpenGL Vizserver application windows under any local windows.
Stereoscopic, or stereo, viewing is accomplished by presenting different views of the same scene to each eye. In a traditional OpenGL quad-buffered stereo application, the following steps occur:
Set the draw buffer to the back left buffer.
Draw the OpenGL scene.
Set the draw buffer to the back right buffer.
Set up the right eye projection (glTranslate()).
Draw the OpenGL scene.
Swap buffers.
Stereo support in OpenGL Vizserver means simply delivering multiple images (left and right eye) to the client.
In order to support stereo, the hardware must support the two following conditions:
Condition 1 | A visual mode that has both left and right eye color buffers | |
Condition 2 | A video mode that refreshes multiple fields (left and right eye fields) |
If both conditions are not satisfied, OpenGL Vizserver does not allow stereo image delivery to function.
On the server, OpenGL Vizserver stereo support is limited to only SGI IRIX machines. On the client, even though there are various assortment of OpenGL Vizserver clients, stereo support is currently limited only on SGI IRIX machines.
You can verify that Condition 1 is met on both client and server sides by checking to see if a visual on the platform supports stereo. This visual checking can be done by either the glxinfo or findvis command.
For example, a glxinfo command entered on an IRIX platform will show you something similar to below. Here, the stro field shows that one (0x2d) supports stereo:
visual x bf lv rg d st r g b a ax dp st accum buffs ms id dep cl sp sz l ci b ro sz sz sz sz bf th cl r g b a ns b ----------------------------------------------------------------- 0x2c 12 tc . 16 . r y . 4 4 4 4 . . . 16 16 16 16 . . 0x2d 12 tc . 16 . r y y 4 4 4 4 . 24 8 16 16 16 16 . . |
You can verify that Condition 2 is met by checking the video format files on that IRIX system. These files are located in the /usr/gfx/ucode/PLATFORM/dg4/vof directory, where PLATFORM specifies the graphics board family for that machine. If there is a mode that has s in the name, this usually refers to a stereo capable format. See the setmon(1G) and ircombine(1G) man pages for more information regarding these formats.
The current application and the video mode between both client and server must simultaneously support stereo. Not having the server in a stereo video mode will thus cause stereo image delivery not to work. If the client is not in a stereo video format, stereo image delivery may work, but stereo effects will not be seen.
Since not every application running under OpenGL Vizserver will be stereo based, there is no need to capture and deliver stereo images all the time. OpenGL Vizserver can be configured to understand the changes transparently when an application uses a stereo visual or the video mode on the server changes. For details on how to do this, see the vizserver(1) man page.
In a collaborative session, various clients with different platform capabilities can mean a heterogenous mix of both nonstereo- and stereo- enabled clients. The basic rule for this scenario is as follows. If one remote client that supports stereo is currently joined in a collaborative session, then a stereo support on the OpenGL Vizserver server is enabled. This allows stereo image delivery and operation to work on those clients only. Clients that do not meet the stereo requirements will not see video mode changes nor will they receive extra bandwidth related to the right eye image. If the stereo enabled client leaves the session, then stereo delivery will be disabled. To be even more simple, stereo will work just as it would in collaborative sessions as it would in single-user sessions.
For stereo image delivery between two machines, you can expect about half the performance for the application through OpenGL Vizserver as compared to nonstereo performance. This is simply due to OpenGL Vizserver doing twice the work for both left and right eye images in one application frame update. You can also expect about double the network traffic.