Chapter 1. Running OpenGL Vizserver

This chapter provides step-by-step instructions for running OpenGL Vizserver. The following topics are covered:

An Overview of OpenGL Vizserver Sessions

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:

  • Whether the session is a single-user or a collaborative session

  • The scope of the graphics being served
    (specific applications versus the full desktop)

Single-User Versus Collaborative Sessions

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.


Specific Applications Versus Desktop Sharing

In general, the following factors determine what graphics will be served:

  • How or where the application is invoked

  • The active screens (screens on the server to be served) you select

  • The number of server pipes you select

  • Whether you select a video group on the server

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.

Specific Applications

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.

Desktop Sharing

In desktop sharing mode, which you can select at the beginning of the session, you can control what graphics are served in the following ways:

  • Select a number of pipes and a list of active screens.

    The active screens will be served as a whole to the clients, including every application window viewable on these screens.

  • Select a video group.

    All of the Scalable Graphics Capture cards that are part of this video group will be fully served.

Connecting to a Server

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.


  1. Click the OpenGL Vizserver icon on your desktop, as shown in Figure 1-1.

    Figure 1-1. OpenGL Vizserver Icon

    
OpenGL Vizserver Icon


    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.

    Figure 1-2. OpenGL Vizserver Main Window

    
OpenGL Vizserver Main Window

  2. Type the host name of the OpenGL Vizserver server that you want to connect to in the Host name field.

  3. 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.

    Figure 1-3. OpenGL Vizserver Login Window

    
OpenGL Vizserver Login Window

  4. 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.

    Figure 1-4. OpenGL Vizserver Main Window (after Logging In)

    
OpenGL Vizserver Main Window (after Logging In)

Alternatively, you can log in to OpenGL Vizserver using a command-line interface. For the details, see section “Using Command-Line Options”.

Running a Single-User Session

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:

Starting a Session

To start a single-user session, perform the following steps.

  1. Connect to an OpenGL Vizserver server.

    For instructions on how to connect, see “Connecting to a Server”.

  2. 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.

    Figure 1-5. OpenGL Vizserver Main Window (Session Starting)

    
OpenGL Vizserver Main Window (Session Starting)

    Figure 1-6. OpenGL Vizserver Session Start Window (Single-User Session)

    OpenGL Vizserver Session Start Window (Single-User Session)

  3. 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”.

  4. 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.

    Figure 1-7. OpenGL Vizserver Session Control Window (Single-User Session)

    OpenGL Vizserver Session Control Window (Single-User Session)

    Figure 1-8. OpenGL Vizserver Console Window

    OpenGL Vizserver Console Window

    Figure 1-9. OpenGL Vizserver Main Window (Session Active)

    
OpenGL Vizserver Main Window (Session Active)

    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.

Configuring a Session

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.

Figure 1-10. OpenGL Vizserver Session Start Window

OpenGL Vizserver Session Start Window

The Desktop Sharing Option

Select this option to enable desktop sharing mode, described in section “Desktop Sharing”.

The Configuration Option

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

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

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 Options

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

Compression Type

Compression Ratio

Description

No compression

 

Turns off compression. In this mode, the server transmits an uncompressed image. This option is rarely useful, since lossless compression provides the exact same image quality with considerably less network bandwidth.

Delta Color Cell

8:1

4:1 (Interpolated)

16:1 (Scaled Interpolated)

32:1 (Scaled)

Selects a set of compressors that use various color cell algorithms based on differences between contiguous frames. The compressors in this group are the following with the minimum compression ratio shown in parentheses:

- Interpolated Color Cell (4:1)
- Color Cell (8:1)
- Scaled Interpolated Color Cell (16:1)
- Scaled Color Cell (32:1)

JPEG Compressor

20%

50%

70%

90%

Selects Joint Photographic Experts Group (JPEG) compression, also known as the ISO/IEC IS 10918-1 standard. The implementation is based in part on the work of the Independent JPEG Group, as well as on other implementations.

The lowest compression ratio, 90%, provides the best quality.

Lossless

delta

For each frame, the server transmits only the difference from the previous frame. This is a non-lossy compression.

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.

ZLIB Compression Option

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 Frame Spoiling Option

The following frame spoiling options are available:


Note: In desktop sharing mode, only the Time-Based option is applicable.


Spoiling On 

The server generates new frames at the maximum application rate. An application frame is considered ready for readback by OpenGL Vizserver every time the application calls one of the readback trigger functions glFlush(), glFinish(), and glXSwapBuffers().

This option should be used in cases where OpenGL Vizserver is used over a low-bandwidth network link, where dropped frames are acceptable.

Spoiling Off 

The server does not generate a new frame until the current frame is displayed on the client side. As in the Spoiling On mode, an application frame is read back by OpenGL Vizserver after the application calls one of the readback trigger functions.

Time-Based 

The server sends a new frame every time the client is ready to handle it, regardless of the application's behavior. Use this option in special cases where the application being served is incompatible with the OpenGL Vizserver paradigm, which uses readback trigger functions. Typically, such applications do not call a readback trigger function at the end of each frame or draw to the same window with both OpenGL and X drawing functions.

Session Type Option

You can select the Session Type to be either Single-User or Collaborative. See section “Single-User Versus Collaborative Sessions” for the differences.

Session Name Input Field

The Session Name field is pertinent only for collaborative sessions. The master user can use the the system-generated session name or enter an alternate name. Any other user who wants to join the session must use the name selected by the master user.

Starting an Application

Start the desired application by typing commands in the OpenGL Vizserver Console window, as shown in the example in Figure 1-11.

Figure 1-11. Starting an Application in the OpenGL Vizserver Console Window

Starting an Application in the OpenGL Vizserver Console Window

Alternatively, you can start the desired application as follows:

  1. Use the telnet, rlogin , or ssh command to access the OpenGL Vizserver server machine.

  2. Start the desired application using the vsx(1) command.

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.

Figure 1-12. Displaying a Rendered Image in an Application Window

Displaying a Rendered Image in an Application Window

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.

Stopping an Active Session

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.

Running a Collaborative Session

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:

Starting a Local Collaborative Session

To start a local collaborative session, perform the following three steps.

  1. 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”.

  2. 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.

    Figure 1-13. OpenGL Vizserver Main Window (Session Starting)

    OpenGL Vizserver Main Window (Session Starting)

    Figure 1-14. OpenGL Vizserver Session Start Window (Local Collaborative Session)

    OpenGL Vizserver Session Start Window (Local Collaborative Session)

    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.


  3. 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.

  4. 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.

    Figure 1-15. OpenGL Vizserver Session Control Window (Collaborative Session)

    OpenGL Vizserver Session Control Window (Collaborative Session)

    Figure 1-16. OpenGL Vizserver Console Window

    OpenGL Vizserver Console Window


    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.

Starting a Remote Collaborative Session

To start a remote collaborative session, perform the following four steps.

  1. 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.

    Figure 1-17. OpenGL Vizserver Session Start Window (Remote Collaborative Session)

    OpenGL Vizserver Session Start Window (Remote Collaborative Session)


    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.


  2. 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.

  3. 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”.

  4. 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.

    Figure 1-18. OpenGL Vizserver Session Control Window (Collaborative Session)

    OpenGL Vizserver Session Control Window (Collaborative Session)

    Now the session is ready to accept your command to launch an application under OpenGL Vizserver.

Joining in a Collaborative Session

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.

Joining Client

You must perform the following actions if you are the joining client:

  1. 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.

    Figure 1-19. OpenGL Vizserver Main Window (Session Joining)

    OpenGL Vizserver Main Window (Session Joining)

    Figure 1-20. OpenGL Vizserver Session Join Window

    OpenGL Vizserver Session Join Window

  2. 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.

  3. 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.


  4. 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.

    Figure 1-21. OpenGL Vizserver Main Window (Waiting for Master's Acceptance)

    OpenGL Vizserver Main Window (Waiting for Master's Acceptance)

  5. 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.

    Figure 1-22. OpenGL Vizserver Session Control Window (Nonmaster: After Joining)

    OpenGL Vizserver Session Control Window (Nonmaster: After Joining)

    If the master refuses the request, the client will get a refusal message, as shown in Figure 1-23.

    Figure 1-23. Refusal Message

    Refusal Message

Master Client

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:

  1. Click the OK button for approval or the Cancel button for denial in the question dialog box, as shown in Figure 1-24.

    Figure 1-24. Asking Acceptance

    Asking Acceptance

  2. 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.

    Figure 1-25. OpenGL Vizserver Session Control Window (Master: After Joining)

    OpenGL Vizserver Session Control Window (Master: After Joining)

If an application has already been running, the newly joined client will see the application as soon as the joining process is done.

Input Control

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.

Leaving a Collaborative Session

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.

Stopping a Collaborative Session

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.

Using Command-Line Options

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

Option

Action

–h serverhost

Connects to the OpenGL Vizserver server with the host name serverhost.

–a auth_fields

Uses the values of auth_fields for the login process. The value auth_fields is a comma-separated list of authentication values— for example,

a username, password

–S session_name

Starts a session automatically. If you do not specify session_name, OpenGL Vizserver starts a single-user session. If you specify session_name, OpenGL Vizserver starts a collaborative session with the name session_name.

–J session_name

Joins the collaborative session session_name. The value session_name is required. This option cannot be used with the –S option.

-D

Enables desktop sharing, which is off by default. This option is meaningless when used with the -J option.

–p config

Specifies the configuration when starting a session. The default is one pipe. For config, a number denotes the number of pipes and an alphanumeric string denotes a video group. This option is meaningless when used with the –J option.

–c compressor

Uses the specified value compressor when starting a session. The value compressor is one of the following: vsIFCCC, vsIFICC, vsIFSCCC, vsIFSICC, vsIFLLC, JPEGCompressor90, JPEGCompressor, JPEGCompressor50, or JPEGCompressor20. This option is meaningless when used with the –J option.

-z

Enables ZLIB compression, which is off by default. This option is meaningless when used with the -J option.

–s mode

Sets the spoiling mode when starting a session. The –s and –s 0 options turn spoiling off. The –s 1 option turns spoiling on (this is the default value). The –s 2 option turns on the Time-Based readback mode.

–x

Enables exiting upon a program failure.

A active_screens

Turns on OpenGL Vizserver serving for the screens specified by the values of active_screens. The value active_screens is a comma-delimited list of screen numbers—for example, –A 0,2. If you do not specify the –A option, the default behavior is to serve all screens.

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.

Logging Out

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.

Reserving Graphics Pipes


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.

Interacting with a Rendered Image

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.

Using an Application with Stereo

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:

  1. Set the draw buffer to the back left buffer.

  2. Draw the OpenGL scene.

  3. Set the draw buffer to the back right buffer.

  4. Set up the right eye projection (glTranslate()).

  5. Draw the OpenGL scene.

  6. 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.