Author: Horst Vollhardt
Last modified: 14.09.2000
URL: http://reality.sgi.com/horstv_basel/Stereo/
FAQ: Fullscreen stereo on Octane Duo ?
FAQ: O2: Error: GLwMDrawingArea: requested visual not supported ?
FAQ: How does O find the correct stereo mode ?
Irix 6.5 and higher: Because 6.5 incorporates most of the patches for 6.2, 6.3, and 6.4, stereo should work without any stereo specific patches under 6.5. Currently, there are no 6.5 stereo patches available.
Octane SE, SSE, and MXE: The only significant difference between these graphics and the corresponding "I"-graphics is the performance. Therefore, almost everything on this page referring to SI, SSI, or MXI applies to these graphics as well.
This page is collection of experiences I made and questions I was asked while supporting O from Alwyn Jones, Department of Molecular Biology, Uppsala, Sweden. Therefore, most of the topics are related to stereo viewing and O. Although, you may find answers to more general questions about stereo viewing, for example which stereo configurations are available on which graphics configuration. After introducing some terms used on this page, I will start with a section containing questions and answers about stereo viewing on the current Silicon Graphics hardware. Next, I want to give an overview about the currently supported stereo configurations for the various SGI workstations. ... and there is more to come in the future ... Another extremely useful page (e.g., stereo modes, the hardware, etc.) is Christi Garvins StereoView Minutia. If you have additional questions or feedback, please feel free to contact me.
Note: The patch numbers given on this page may change over time, because older patches get replaced by newer once. If you can not get a particular patch from Supportfolio over the web, go to the patch browse page and lookup the given patch number. This will point you the the current patch.
In this section some terms used on the page will be explained. Some parts of the description were taken from Christi Garvins StereoView Minutia.
Fullscreen Stereo: Same as Splitscreen Stereo. Fullscreen stereo divides the complete screen into top and bottom halves. Therefore, the pixels are not square anymore. The left eye views only the top half of the framebuffer, the right eye views the bottom part. The windowing system takes care for putting up menus, popups, etc. in both the top and bottom halves of the screen in order to make the appearance of windows correct. Fullscreen stereo is supported on most platforms, including the ones listed below.
ircombine
:
(/usr/gfx/ircombine)
On Onyx systems, this tool is used to configure the display.
It has a powerful and flexible GUI to control all the
possible resolutions and video modes provided by the InifiteReality
graphics. It can be used on the command line as well. You can
define and store display configurations on disk to be used later
with setmon.
For more information see man ircombine.
Quadbuffered Stereo: Same as Stereo-In-A-Window. Quadbuffer stereo uses a separate buffer for the left and right eye, resulting in four buffers used by the stereo application. Only the stereo window is in stereo mode. Therefore, this method does not require the windowing system to render its widgets in two places. This method renders and displays square pixels usually at a higher screen resolution resulting in higher image quality, especially for anti-aliased rendering.
setmon
:
(/usr/gfx/setmon)
This tool can be used to switch into a different display
configuration (e.g., into stereo mode). O automatically
calls this command when the user hits F1
.
The general syntax is: setmon FORMAT (FORMAT is either
a video format or a predefined configuration like 72HZ
).
The available configurations vary with the different graphics
systems and are stored in a directory under /usr/gfx/
.
For more information see man setmon.
Splitscreen Stereo: Same as Fullscreen Stereo.
Stereo-In-A-Window: Same as Quadbuffered Stereo.
Video Formats:
To describe a specific video format the following notation is used:
WIDTHxHEIGHT@HZ (WIDTH, HEIGHT define the resolution
of the screen, whereas HZ defines the screen refresh rate). This
translates into the following format for setmon:
WIDTHxHEIGHT_HZs . The optional s
defines a stereo format.
xscreen
:
(/usr/bin/X11/xscreen). Xscreen provides an easy-to-use GUI
to functions like the ones performed by setmon.
It is only available on the O2.
For more information see man xscreen.
Xserver: The xserver is the application which handles the display and other devices like the mouse or the keyboard. It manages the graphics on the screen. Some graphics systems require that the xserver is shutdown and restarted before entering a specific stereo mode. See below which platforms are affected.
... which of these Onyx2 IR quad stereo formats are
supported by the wide screen 24" monitor?
1024x768@96 |
The 1024x768@96, 1024x768@120, and 1120x840@96 work with the 24" monitors. From the specifications I assume that the monitor is not able to display 1280x1024@114. I've heard that some older monitor models turn blank when enabling a standard resolution off 1024x768@96. |
... I was told that it was possible to run O in a stereo window on an O2. Considering that we haven't been able to get stereo at all on our O2's I was surprised, and would like to know what our sysops are missing! |
You need 2 patches for the O2 (Patch 1979 and 2083). With these
patches installed, O can automatically switch into stereo-in-a-window.
BTW.: Patch 1979 increases the graphics performance up to 20% |
...
we installed the two patches you
specified for our O2 (1979 + 2083) and now, running O 6.1.2 I get
this ERROR when I try to switch into stereo (key F1):
Error: GLwMDrawingArea: requested visual not supported and the window closes. The program runs fine in mono. |
... "Stereo-in-a-window" don't work when you start from a single framebuffer configuration, like in your case. You have to set your framebuffer to 1280x1024_75 32+32 (see man xscreen). You should make this the default. It uses a bit more memory for the double buffered windows but you get a better image quality. The 16+16 setting won't work (I don't know why). |
OK, we set the framebuffer to 32 + 32 using xscreen, and got stereo-in-a-window to work on the O2. I notice that the size of the other windows on the screen changes (and the fonts look bigger, not exactly what I had expected). |
This is absolutely correct. What you are seeing, is the effect of reducing the screen resolution (1280x1024 -> 1024x768), which in turn is like increasing the pixel size (to fill the space on the monitor). The only thing that changes is the graphics window of O. It gets smaller (pixel x pixel) in order to fit in the new screen space. |
More generally, I would like to know whether O can be run in stereo on the currently available SGI systems - i.e. on the O2's and on the OCTANEs (with the different graphics options SI, SSI, MXI). I'd like to know specifically, in each case, whether full screen or window stereo is possible, and what steps to take (equipment, patches) to make it run. ... |
First of all, O is running on all of our current (and older,
e.g. Indy) machines in stereo. You may have to install some
patches or use a trick (I will explain later). It can be used
in stereo-in-a-window on all of our current machines
(O2, Indigo2 Impact, Octane, Onyx2).
Indigo2 Impact
Octane |
How does O find the correct stereo mode ? Why does O use a wrong/unavailable stereo mode ? What does O (print) on startup ? |
You will find the detailed description below. |
Fullscreen stereo mode on Duo ? Fullscreen does not work on the second head. |
To use O in fullscreen stereo mode
on the second head of an Octane DUO, you have to execute the following
commands :
Thanks to Francois Michoux, SGI France. |
The bug was fixed in IRIX 6.5.7 but with IRIX 6.5.9 it is
broken again. A bug report has been filed.
Thanks to Doug Bloomberg, SGI Federal. |
Machine | Graphics | Quadbuffered Resolution |
Remarks |
---|---|---|---|
All(1) | All(1) | --- | Fullscreen (Splitscreen): 1280x492@120 is available on all platforms. VTX, RE, RE2, Reality, IR, and RM additionally support a resolution of 1280x512@120. |
Indigo | XS, XZ, Elan | --- | Only Fullscreen/Splitscreen stereo is available. |
Indy | XL, XZ, XGE | --- | |
Indigo2 | XL, XZ, Elan, Extreme | --- | |
SolidImpact HighImpact |
1024x768@96 |
Quadbuffered: Xserver has to be
restarted(2)
after the resolution
has changed (setmon -x: permanent change). This means the user has
to logout. Patches: 1447 1592 (replaces 1447) 1690 (replaces 1592) 1899 (replaces 1690) 2159 (replaces 1899) 1935 (replaces 2159) 2677 (replaces 1935) 3133 (replaces 2677) |
|
MaxImpact | 1024x768@96 1280x1024@68(3) |
Patches: 1447 1592 (replaces 1447) 1690 (replaces 1592) 1899 (replaces 1690) 2159 (replaces 1899) 1935 (replaces 2159) 2677 (replaces 1935) 3133 (replaces 2677) |
|
Crimson | RE |
640x512@120 815x611@120 960x680@108 1025x768@96 |
|
Onyx | VTX, RE2, IR |
640x512@120 815x611@120 960x680@108 1025x768@96 |
Patches: 1808 2327 (replaces 1808) 3003 (for IR, replaces 2327) |
O2 | CRM | 1024x768@96 |
Note: The O2 is the only current platform for which you need
additional hardware (stereo adapter) in order to get stereo viewing.
Fullscreen: The O2 uses the framebuffer line 0-491 and 512-1003, whereas all other systems use 0-491 and 532-1023. Currently, fullscreen stereo does not work correctly when you use glViewport(0,0,...). Use glViewport(1,0,...) instead. Quadbuffered: You have to use the 32+32 frame buffer depth (xscreen). All other configs don't work. Patches (required for quadbuffered): 1979 2387 (replaces 1979) 2862 (replaces 2387) 2943 (replaces 2862) 3141 (replaces 2943) 3298 (replaces 3141) 3443 (replaces 3298, support contract required) and 2083 2447 (replaces 2083) 2942 (replaces 2447) 3239 (replaces 2942) Caution: You shouldn't make a stereo visual permanent (with xscreen or setmon) like on the Impact. If you kill the Xserver your machine may hang and you have to reboot. |
Onyx2 | MXI | 1024x768@96 | |
Reality, IR, RM | 640x512@120 815x611@120 960x680@108 1024x768@96 1024x768@120 1120x840@96 1280x1024@114(4) 1280x1024@120(4) |
Use ircombine to configure the display, because by default
not all stereo-in-a-window .cmb files for
setmon exist on the IR (see man setmon).
In order to work with setmon (and O which uses setmon) configure
the display with ircombine and store the configuration at
/usr/gfx/ucode/KONA/dg4/cmb . Use the
WidthxHeight_Hzs.cmb format for the file name.
|
|
Octane | SI, SE | 1024x768@96 | Quadbuffered: Xserver has to be
restarted(2)
after the resolution
has changed (setmon -x: permanent change). This means the user has
to logout. Patches: 2289 (replaced by 2391) 2391 (replaced by 2599) 2599 (replaced by 2604) 2604 (replaced by 2771) 2771 (replaced by 2843) 2843 (replaced by 2895) 2895 (replaced by 2990) 2990 (replaced by 3132) 3132 (replaced by 3154) 3154 Quadbuffered stereo should work without this patch. There are some reports that this patch breaks stereo on the SI/E. |
SSI, SSE, MXI, MXE | 1024x768@96 | Patches: (required) 2289 (replaced by 2391) 2391 (replaced by 2599) 2599 (replaced by 2604) 2604 (replaced by 2771) 2771 (replaced by 2843) 2843 (replaced by 2895) 2895 (replaced by 2990) 2990 (replaced by 3132) 3132 (replaced by 3154) 3154 First tests of Octane MXI with IRIX 6.5beta: no problems with quadbuffered stereo. |
RE | = | RealityEngine |
IR | = | InfiniteReality |
RM | = | RealityMonster |
cursive | = | only guessed or extrapolated |
For a more detail description of the different stereo modes, etc. see Christi Garvins StereoView Minutia. |
(1) This means everything released after the first Indigo (incl.). To be more precise, every configuration mentioned in this table.
(2) The easiest way to restart the Xserver, is to press the following 4 keys simultaneously:
[left Ctrl] + [left Shift] + [F12] + [/ on keypad]
(3)
Quadbuffered stereo at 1280x1024 for Indigo2.
The corresponding visuals are:
(4) The 24'' monitors are not able to display this setting.
The stereo part of O is written to be independent of the actual graphics system. Unfortunately, every graphics system has its own locations for the video formats, its own naming conventions for the files and its own output format of the various graphics commands. For example:
Graphics Directory Extension Octane SE /usr/gfx/ucode/MGRAS/vof *.sdb Octane MXE /usr/gfx/ucode/MGRAS/vof/2RSS *.sdb O2 /usr/gfx/ucode/CRM/vof *.vfo Indy /usr/gfx/ucode/NG1/vof *.u Indigo2 XS /usr/gfx/ucode/GR2/vof *.vfo Onyx RE /usr/gfx/ucode/RE/dg2/vof *.vfo Onyx IR /usr/gfx/ucode/KONA/dg4/vfo *.cmbEven worse, the InfiniteReality uses additional 'combination' files, because it has to support multiple graphic pipes.
To support all types of graphics systems even future ones, O uses the following algorithm to find the best stereo mode:
initStereo: gStereoBufferAvailable=0, gSGISteroAvailable=1'gStereoBufferAvailable=0' means quadbuffered not available, but 'gSGISteroAvailable=1' says that splitscreen stereo is possible.
graphBoard is "..."
...guessing monitor frequency to 72HZ The monitor was set to '72'Which is not always true, but the best guess so far.
found settings: 1024x768_60 1024x768_72 1024x768_96s 1280x1024_49 1280x1024_50 1280x1024_59 ...From this list the best stereo format is picked. This part is the most critical one. Because sometimes, there are directories or files below '/usr/gfx/ucode' which do not belong to the actual graphics system or are not supported by the actual graphics setting. In this case you get an error message when you hit 'F1'. A 'quick-and-dirty' solution to this problem is to remove or rename these files. You better move them somewhere else to be able to restore them.
If there was no stereo format found but 'gStereoBufferAvailable=1' is true, then '1024x768_96s' is assumed.
All patches can be downloaded over the WWW. A good point to start is the Supportfolio Online page. Before you can start downloading, you have to get a SurfZone ID. It's free, you only have to register yourself. Once you have it, you can start searching for specific patches.