5 Known Problems and Workarounds
- 1 -
1. Introduction
These release notes describe the Graphics Library
Development Environment for IRIX 5.2. OpenGL information
can be found in Chapter 6.
Note: Packaged with your software is a separate sheet that
contains the Software License Agreement. This
software is provided to you solely under the terms
and conditions of the Software License Agreement.
Please take a few moments to review the Agreement.
This document contains the following chapters:
1. Introduction
2. Installation Information
3. Changes and Additions
4. Bug Fixes
5. Known Problems and Workarounds
6. OpenGL
1.1 Release_Identification_Information
Following is the release identification information for GL
Development Software:
Software Option Product GL Development
Software
Version 5.2
Product Code SC4-IDO-5.2
System Software Requirements IRIX 5.2 or later
1.2 Online_Release_Notes
After you install the online documentation for a product
(the relnotes subsystem), you can view the release notes on
your screen.
If you have a graphics system, select ``Release Notes'' from
the Tools submenu of the Toolchest. This displays the
grelnotes(1) graphical browser for the online release notes.
- 2 -
Refer to the grelnotes(1) man page for information on
options to this command.
If you do not have a graphics system, you can use the
relnotes command. Refer to the relnotes(1) man page for
accessing the online release notes.
1.3 Product_Support
Silicon Graphics, Inc., provides a comprehensive product
support maintenance program for its products.
If you are in the U.S. or Canada and would like support for
your Silicon Graphics-supported products, contact the
Technical Assistance Center at 1-800-800-4SGI. If you are
outside these areas, contact the Silicon Graphics subsidiary
or authorized distributor in your country.
- 1 -
2. Installation_Information
This chapter lists supplemental information to the IRIS
Software Installation Guide. The information listed here is
product-specific; use it with the Installation Guide to
install this product.
2.1 Graphics_Library_Development_Environment_Subsystems
The GL Development Environment includes these subsystems:
gl_dev.man.gldev These are the man pages for
the GL calls in all languages.
gl_dev.man.relnotes These release notes.
gl_dev.sw.gldebug This subsystem contains the
gldebug product. It allows
you to debug GL programs
inline with traces and
breakpoints at GL calls.
2.2 GL Development Environment Subsystem Disk Space
Requirements
This section lists the subsystems (and their sizes) of the
GL Development Environment option.
If you are installing this option for the first time, the
subsystems marked ``default'' are the ones that are
installed if you use the ``go'' menu item. To install a
different set of subsystems, use the ``install,''
``remove,'' ``keep,'' and ``step'' commands in inst to
customize the list of subsystems to be installed, then
select the ``go'' menu item.
Note: The listed subsystem sizes are approximate. Refer to
the IRIS Software Installation Guide for information
on finding exact sizes.
Subsystem Name Subsystem Size
(512-byte blocks)
gl_dev.books.OpenGL_PG (default) 13862
gl_dev.books.OpenGL_Porting (default) 2909
gl_dev.books.OpenGL_RM (default) 5324
gl_dev.man.gldebug 6
- 2 -
gl_dev.man.gldev (default) 3866
gl_dev.man.glprof 31
gl_dev.man.relnotes (default) 52
gl_dev.sw.gldebug 2816
gl_dev.sw.gldev (default) 2070
gl_dev.sw.glprof 10959
gl_dev.sw.oglsamples 18353
2.3 Installation_Method
All of the subsystems for GL Development Environment can be
installed using IRIX. You do not need to use the miniroot.
Refer to the IRIS Software Installation Guide for complete
installation instructions.
2.4 Prerequisites
To use gl_dev, you must install x_dev.sw to get the libX11
libraries.
- 1 -
3. Changes_and_Additions
The IRIS GL now supports new image processing features on
RealityEngine:
o Calls to allocate framebuffer space (the ILbuffer) to
be used as image storage/cache and use it as the source
or destination of drawing and pixel transfers. Note
that this is not exactly the same as the AUXbuffers in
OpenGL. See ilbuffer.
o Modifications to texture loading. Texture memory
represents a warpable, wrappable image store with very
fast fill and resampling (image rotate, zoom, and copy)
rates. The modifications are to allow:
- raster-order load of image data to texture memory
with most pixmode and pixel transfer operations.
- loading subimages into texture memory. This is
the basic tool that, along with texture coordinate
wrapping, allows fast panning over a large image.
See subtexload and fbsubtexload.
The source for the image data can be either host memory
or the frame buffer.
o Operators on pixel transfers (lrectwrite, rectcopy,
lrectread). The operations are:
- Convolve 3x3, 5x5, 7x7, separable and general. See
convolve.
- Lookup tables. See tlutbind.
- image statistics: hgram and minmax
o The IRIS GL can now transfer a single component of a
framebuffer (ABGR) image so that image storage is
extended by a factor of 4.
o Several OpenGL-like commands were added to pixmode,
primarily CPM_INPUT_TYPE, PM_INPUT_FORMAT,
PM_OUTPUT_TYPE, PM_OUTPUT_FORMAT.
Several IRIS GL man pages are new or were changed in 5.1 or
5.0.1:
convolve ildraw readcomponent
fbsubtexload istexloaded readsource
gethgram minmax subtexload
- 2 -
getminmax pixelmap texbind
hgram pixeltransfer texdef
ilbuffer pixmode texdef2d
o Using libsphere, RealityEngine systems can now draw
high-speed ``bitmap'' spheres. They are Phong-shaded
and are limited only by the back-end fill rate. There
are some limitations, but they now work in perspective
as well.
o On RealityEngine systems, pixmode(PM_SIZE,64) is now
fully supported and documented.
o On RealityEngine systems, non-multisample primitive
performance has been improved.
o On RealityEngine systems, the Multi-Channel Option now
supports cursors on multiple screens.
o Field-sequential RGB format requires the IMP7 ASIC on
the RM4 board. Use /usr/gfx/gfxinfo -v as root and
verify that the last digit of the RM version number is
``2'' or more.
o On RealityEngine systems, performance was enhanced for
pixel transfer operations using some pixmode features
(PM_ADD24, PM_SHIFT, etc).
o On RealityEngine systems, performance was enhanced for
mode changing operations such as texbind and lmbind.
- 1 -
4. Bug_Fixes
4.1 Bug_Fixes_Between_IRIX_5.1_and_5.2
o On RealityEngine, video framelock is not yet
implemented. (135462)
o On VGX, setmonitor(3g) can sometimes wedge the system.
(165317)
o On Onyx, exiting an IrisGL program that used sproc
might hang the graphics pipe. (174634)
o On RealityEngine, using swinopen and overlays might
produce the wrong effect. (174935)
o On RealityEngine, a rare case involving 5-sided
polygons with two-sided lighting would hang the pipe
(174951).
o On RealityEngine, an OpenGL texture defined inside a
display list could not be shared by multiple rendering
contexts. (175222)
o On RealityEngine, running certain programs (involving
colormap manipulation) and then logging out would cause
the X server to fail to reset. (175792)
o On RealityEngine, the OpenGL gluNurbsSurface call would
not render correctly in all cases. The symptoms
included filled surfaces not being rendered at all, and
outlined surfaces not being tessellated correctly.
(176770)
o On systems other than RealityEngine the getmultisample
call was returning unreasonable values. (177371)
o On RealityEngine and VGX(T) systems, using the "-
overlay" option on Xsgi prevented the visual login
window from appearing. (177469)
o On RealityEngine, removal of underlay windows was not
being handled correctly, causing the underlay planes to
"show through" in some cases. (177563)
o On GTX, VGX(T), and RealityEngine, some mixed-model
applications using dgl accessed uninitialized data
structures and dumped core on startup. (177793)
o On all systems, scrnselect could dump core if called
before winopen. (180410)
- 2 -
o On Onyx, programs using v2s and compiled under IRIX
4.0.X generated incorrect vertex coordinates under IRIX
5.1. (180500)
o On RealityEngine, opaque windows created in the overlay
planes left "holes" when they were removed. (181217)
o On RealityEngine, some trimmed NURBS surfaces were not
rendered correctly. (181304)
o On RealityEngine, the OpenGL raster position was not
updated correctly when the associated window was moved.
(182101)
o On RealityEngine, creating multiple OpenGL contexts
could fail under some circumstances. (182704)
o On RealityEngine, sharing a display list between
multiple OpenGL contexts was not implemented. (182708)
o On RealityEngine, OpenGL attribute push/pop failed for
certain attributes (notably PIXEL_MODE). (182764)
o On RealityEngine, under certain conditions texturing
during multisampling caused a pipeline timeout.
(183853)
o On RealityEngine, underlay windows created in field-
sequential mode caused a significant performance
degradation. (184288)
o On RealityEngine under IRIX 5.1.1, there was a problem
that often prevented xdm from reopening the display
after logout. (184440)
o On RealityEngine, OpenGL glTexGen failed in
GL_OBJECT_LINEAR and GL_EYE_LINEAR modes. (184932)
o On RealityEngine, pixel zooming in OpenGL did not
always work correctly. (184968)
o On all systems, dgl would attempt to initialize a
remote display even when no GL drawing was requested.
(185446)
o On RealityEngine, there was a performance problem with
TX_TEXTURE_IDLE. (185629)
o On all systems, dgl I/O operations could not recover
from an interrupted system call. This caused problems
for applications using timer signals. (186562)
- 3 -
o On RealityEngine, xlock would generate an incorrect
display when used in hop mode. (186686)
o On RealityEngine, subtexload could cause a kernel hang
under certain conditions. (186813)
o On RealityEngine, pixmode(PM_ZDATA) failed in color
index mode. (188308)
o On RealityEngine, OpenGL viewport clipping was
incorrect under certain conditions (including disabled
scissoring). (188828)
o On RealityEngine, rectcopy from the right buffer to the
left buffer failed. (188985)
o On RealityEngine, attribute push/pop failed under
certain circumstances. (189828)
o On RealityEngine, buffer swap could fail in the
presence of unmapped overlay windows. (190560)
o On VGX, readdisplay not reading underlay planes.
(190941)
o On RealityEngine, byte and short versions of glNormal
don't work. (193388)
o On servers, dgl call to gversion doesn't work.
(194247)
o On VGX(T), linewidthf(1.0f) for AA lines gives width of
2. (196763)
o On XS, XZ, Elan, and Extreme, Concave Polygon
decomposition in some cases was broken. This has been
rewritten to work correctly for all cases. (145984)
o On XS, XZ, Elan, and Extreme, user Clip Planes were
sometimes transformed incorrectly. This has now been
fixed. (171206)
o On XS, XZ, Elan, and Extreme, in lmcolor mode, Nurbs
were being rendered incorrectly. This is fixed.
(172421)
o On XS, XZ, Elan, and Extreme, material changes per
vertex were sometimes being processed incorrectly for
primitives such as Tmeshes, Qstrips, etc.. This
resulted in bad visual artifacts. This is fixed.
(177466)
- 4 -
o On XS, XZ, Elan, and Extreme, many lmcolor bugs have
been fixed to ensure correctness and good performance.
(egs. 145400)
o On XS, XZ, Elan, and Extreme, many two-sided lighting
bugs have been fixed to ensure correct behavior. (egs.
176075)
o On XS, XZ, Elan, and Extreme, numerous miscellaneous
lighting bugs are now fixed. (egs. 154589, 154589,
189048)
o On XS, XZ, Elan, and Extreme, some small DMA's are
faster now. (181478)
o On XS, XZ, Elan, and Extreme, GL Screen Savers such as
bongo and ep were broken and would display only a
single column of pixels. Any program that opened a
large viewport could have been affected by this same
problem. This is now fixed. (170756)
o On XS, XZ, Elan, and Extreme, lines would jitter when
lots of graphics programs were running. This is now
taken care of. (144438)
o On XS, XZ, Elan, and Extreme, large (actually huge)
Characters used to do bad stuff to the graphics system.
This is now taken care of. (154686)
o On Indy and Indigo2 XL systems, creating a GL window
with an origin offscreen more than 2048 pixels would
cause a segmentation fault when using z buffer. (also
from 177186)
o Indy and Indigo2 XL graphics libraries were made to
avoid problems with clipping when the viewport
transformation generated vertices with negative w
values. This had caused a bus error when called from
certain applications. (181333)
o In Indy and Indigo2 XL OpenGL graphics libraries,
changes were made to prevent floating point exception
in __glNptSmoothRGBLine_asm. (184033)
o On Indy and Indigo2 XL systems GL library, a problem
was fixed with blendfunction(BF_SA, BF_MSA). Alpha
values set through lmcolor() were ignored. (185166)
o On Indy and Indigo2 XL systems GL library, changes were
made to avoid floating point exceptions generated in
_pmovedraw. (171725)
- 5 -
o On Indy and Indigo2 XL systems OpenGL library, changes
were made to avoid floating point exceptions in
__glNptComputeSlopes. (171759)
o GLXgetconfig will not fail on 24 bit Indy and Indigo2
XL GL graphics when no visual matches the template. In
particular, if a user requests a 2 bit overlay visual,
a pointer will be returned to an 8 bit overlay visual.
(180458)
o On systems with Starter, Express, and Newport graphics,
there is a floating point exception in
SetInitialParameters. (181108)
o Drawing inconsistency-rounding incorrectly in Y for
sbox-between Indy and Indigo2. (172602)
o In Indy and Indigo2 XL OpenGL graphics libraries,
changes were made to avoid segmentation faults in
clipped, z-buffered lines. (194200)
o In Indy and Indigo2 XL GL libraries, a clipping related
bug was fixed to avoid segmentation faults in zbuffered
lines (192755).
o In Indy and Indigo2 XL GL libraries, a fix was made in
the texture LOD selection code for certain orientations
of polygons, and in the alpha blended textures.
(188161 and 188213)
o In Indy and Indigo2 XL GL libraries, a spotlight bug
was fixed when a spotlights cutoff was much greater
than the angle at which the specular effect was nil.
(191626)
o In Indy and Indigo2 XL GL libraries, a bug in
lrectwrite into overlay planes was fixed. (186996)
o In Indy and Indigo2 XL OpenGL libraries, several
unreported bugs were fixed with z-buffered lines, pixel
operations, context switching, bitmap writes, and
picking.
o In Indy and Indigo2 XL GL libraries, several unreported
bugs were fixed with concave polygon decomposition,
fogged line clipping and excessive floating point
exceptions.
- 6 -
4.2 Bug_Fixes_Between_IRIX_5.0.1_and_5.1
o Crimson Elan could get an MP bus timeout error message.
This has been fixed.
o The tolerance for NURBS knot values was changed to
10.0e-6.
o gl_x_dev was renamed gl_dev since it no longer contains
any X development products.
o On RealityEngine systems, a rectcopy call could corrupt
the z-buffer. This has been fixed.
o Several problems with multi-headed RealityEngine and
SkyWriter systems on MP-bus systems were fixed.
o On Onyx RealityEngine systems, certain conditions
caused the message Bad CP command encountered to be
printed on the console. This has been made much less
likely to occur due to errors in hardware. Errors in
user programs may still cause this message to be
printed.
o Frequent calls to dither caused the video output of
RealityEngine systems to shift. This has been fixed.
o Picking of polygons was broken on 5.0.1 RealityEngine
systems. This has been fixed.
o The Distributed Graphics Library (DGL) was broken in
5.0.1. This has been fixed, but you should look at the
discussion in Chapter 5 of these release notes.
o A problem where texgen and ``old-style'' polygons could
crash graphics on RealityEngine systems was fixed.
o Returned z-buffer values obtained from lrectread had
bytes swapped on RealityEngine systems. This has been
fixed.
o PAL mode on the composite video output of RealityEngine
systems was not working. It now works.
o Calls to lrectread and lrectwrite of exactly 2048
pixels wide could hang VGX graphics. This has been
fixed.
- 7 -
4.3 Bug_Fixes_Between_IRIX_5.0_and_5.0.1
o Double buffering in an overlay window of a GLXDraw
widget now works. The only constraints are that the
overlay GL window must have a main framebuffer GL
window associated with it, for example:
GLXconfig rgb_ov[] = {
{ GLX_NORMAL, GLX_RGB, TRUE} ,
{ GLX_OVERLAY, GLX_BUFSIZE, 4} ,
{ GLX_OVERLAY, GLX_DOUBLE, TRUE} ,
{ 0, 0, 0}
};
and the overlay GL window will be clipped to the main
framebuffer GL window's extents.
o New RealityEngine features are now supported by
gldebug: constants for texdef2d and glcompat, and
support for texdef3d.
o gldebug no longer requires the DISPLAY environment
variable to be set.
o Graphics programs using the Distributed Graphics
Library (DGL) no longer have errors when mixing
connection types (DGLLOCAL vs. DGLTSOCKET).
o Calls to lrectwrite with the pixmode PM_STRIDE
parameter set with more than 511 lines caused a kernel
panic. This has been fixed.
o The ARCS PROM now handles different screen resolutions.
o Overlay planes now work in mixed model, double-buffered
applications.
o The GL routine afunction now works on RealityEngine
systems.
o On RealityEngine, The behavior of swapbuffers could be
unpredictable with many calls to winset and
drawmode(OVERDRAW). This is now fixed.
o Several problems related to lighting when using
shademodel(FLAT) or two-sided lighting have been fixed
on RealityEngine.
- 8 -
4.4 Bug_Fixes_Between_4.0.5_and_5.0
o On RealityEngine systems, pixmode use combined with
rectcopy to/from the z-buffer no longer hangs the pipe.
o On RealityEngine systems, multiple GL programs doing
lrectwrites no longer hang the pipe.
o On RealityEngine systems, PM_ADD24, PM_RTOL, PM_ZDATA,
and PM_BTOT now work correctly.
o On RealityEngine systems, readdisplay is no longer off
by one pixel.
o On RealityEngine systems, moving multi-sampling GL
windows now copies all bits.
o On RealityEngine systems, GL underlays are more robust.
o On RealityEngine systems, pupdraw menus draw faster.
o On RealityEngine systems, the overlay visual now works,
including double-buffered overlays.
o On RealityEngine systems, picking and feedback are much
more robust.
o On RealityEngine systems, IL ilchain no longer displays
wrong data.
o On RealityEngine systems, combining GL windows using
texturing with GL windows using fog no longer hangs the
pipe.
o On RealityEngine systems, tengen no longer forgets its
parameters when texturing is turned off.
o On RealityEngine systems, DGL now supports new texdef
and tevdef options.
o On RealityEngine systems, 1600x1200_60 video format
should now always produce stable video.
o On RealityEngine systems, /usr/gfx/setmon -s now sets
sync correctly.
o On RealityEngine systems, 960x680_60 cursor position is
now correct.
o On dual-head RealityEngine systems, changing video
formats on the fly now works correctly.
- 9 -
o On dual-head RealityEngine systems, the cursor tracks
correctly on the second head even if it is running a
different format from the first head.
o On RealityEngine systems, mixed-model GL programs can
now use GLX_RGBSIZE correctly.
o On RealityEngine systems, multisampling combined with
blendcolor sometimes blended incorrectly.
o On RealityEngine systems, PYM_HOLLOW and PYM_SHRINK now
work correctly.
o On RealityEngine systems, color index values are now
clamped correctly.
o On RealityEngine systems, depthcueing now works
correctly in all cases.
o On RealityEngine systems, setlinestyle now does not
hang the pipe.
o On dual-head systems, getgdesc now gives correct
answers before winopen. Using DGL, double-precision GL
calls no longer fail.
o On VGX and RealityEngine systems, nurbs are more
reliable.
o Using lrectwrite over DGL, pixmode variants are more
reliable.
o gversion before a call to fork works correctly.
- 1 -
5. Known_Problems_and_Workarounds
o On all RealityEngine systems, when RGBsize(8) is set,
z-buffer readbacks might return incorrect data.
o On RealityEngine systems, pixel transfers larger than
2048 x 2048 do not work.
o On RealityEngine systems, texture coordinates from the
t3f command are not correctly transformed by the 3x3
texture matrix.
o On XS, XZ, Elan, and Extreme systems, when rendering
with concave(TRUE), very small concave and convex
polygons (less than 1 pixel in size in screen space)
fail to draw sometimes. Users should avoid setting
concave(TRUE) when drawing data sets that do not
contain concave polygons. The only solution for such
very small concave polygons is for you the user to
tesselate the concave polygon into triangles.
o On VGX systems, two-sided lighting might render
incorrectly on old-style rectangles.
o On VGX systems, lsetdepth malfunctions when using GL/X
mixed-model.
o The 4Dgifts program zrgb.c demonstrates that the IP4GT
drops polygons sometimes when the polygons are near
clipped.
o If you install the optional GL Profiler software
subsystem (gl_dev.sw.glprof) on a system that does not
support OpenGL, the X server will erroneously report
that it supports the GLX (OpenGL) extension to the X
protocol, even though it does not in fact support this
extension. This is due to the presence of the file
/usr/lib/X11/dyDDX/glx.so, which is necessary for the
proper functioning of glprof_sim. If your system does
not support OpenGL, this file will be present only if
you have installed gl_dev.sw.glprof, and its presence
will not cause your system to support OpenGL. If your
system does not support OpenGL, and you install
gl_dev.sw.glprof while the system is running using the
IRIX (not miniroot) software installation technique,
you must restart the X server so that it will recognize
the presence of /usr/lib/X11/dyDDX/glx.so.
- 2 -
5.1 RealityEngine_with_Multi-Channel_Option
o When installing Multi-Channel Option hardware on a
system equipped with RealityEngine graphics where IRIX
5.1 is already installed, you must manually specify the
VME address of the Multi-Channel Option if it is not
the default. See the MCO Installation Guide for
details on the vs2addrset program.
Note that if the Multi-Channel Option hardware is
already installed, installing IRIX 5.1 automatically
specifies the default address.
o Now that cursor tracking works on most formats, it
should be noted that it still does not work in dual
field-sequential RGB mode.
o The 3@1025x768 format requires that the RealityEngine
graphics organization be manually configured to support
10-bit RGB without alpha. To do so, edit the file
/usr/bin/X11/X. The file appears as:
#! /bin/sh
#
# /usr/bin/X11/X
# initialize graphics device and start X Window System
# $Revision: 1.1 $
#
glGammaFile=/etc/config/system.glGammaVal
glGammaDefault="1.7"
if /etc/chkconfig windowsystem; then
if [ -x /usr/gfx/gfxinit ]; then
/usr/gfx/gfxinit
if [ -r $glGammaFile -a -s $glGammaFile ] ; then
Modify the file to include the following statements
between line 11 and line 12:
PIXDENS=PIX32_RGB10
export PIXDENS
The file should appear as:
#
# /usr/bin/X11/X
# initialize graphics device and start X Window System
# $Revision: 1.1 $
#
glGammaFile=/etc/config/system.glGammaVal
- 3 -
glGammaDefault="1.7"
if /etc/chkconfig windowsystem; then
if [ -x /usr/gfx/gfxinit ]; then
PIXDENS=PIX32_RGB10
export PIXDENS
/usr/gfx/gfxinit
if [ $? -eq 0 -a -x /usr/bin/X11/Xsgi ]; then
- 1 -
6. OpenGL
OpenGL is supported on Indy, Indigo, Indigo2, RealityEngine
and some PI systems. Here is the complete list:
Indy - XL 8/24 bits
Indigo - Starter, XS, XS24, XZ, Elan
IndigoII - XL, XZ, Extreme
Crimson - Starter, XS, XS24, Elan, Extreme,
RealityEngine
Onyx - VTX, RealityEngine, RealityEngine2
4D30/35 - Elan
All these implementations pass Level 0 of the conformance
tests (i.e., the "mustpass" test suite) and most of the
balance of the test suite.
OpenGL is not currently supported on PI's without Elan
graphics, VGX(T) or GTX.
6.1 Documentation
The following documentation is available for OpenGL:
o The OpenGL Programming Guide (Addison-Wesley, 1993) is
a comprehensive guide to programming with OpenGL.
o The OpenGL Reference Manual (Addison-Wesley, 1992)
contains an overview of OpenGL and man pages for all
OpenGL, GLX and GLU functions.
o The OpenGL Porting Guide describes how to port programs
that were written for IRIS GL.
o The IRIS Programming Notes include documentation for
X11, GL/GLX, Font Manager and mixed model programming
in IRIS GL.
The IRIS Development Option documentation includes an online
copy of The OpenGL Porting Guide, an online copy of the IRIS
Programming Notes, and man pages for all OpenGL, GLX and GLU
functions. It also comes with a hardcopy of the OpenGL
Programming Guide. You may also order a hardcopy of the
porting guide (part number M4-OGLPort-5.1) and the OpenGL
Reference Manual (part number M4-OGLMAN-1.0).
If you're porting from IRIS GL to OpenGL, the best approach
is to convert your program to a mixed-model program first
(see the IRIS Programming Notes) and then consult The OpenGL
Porting Guide for more information.
- 2 -
Unlike IrisGL, OpenGL processes are not allowed to share
file descriptors. This means that OpenGL processes should
not specify PR_SFDS or PR_SALL when calling sproc. OpenGL
processes may share access to the graphics hardware if they
access the graphics device through unique file descriptors.
6.2 Known_problems_in_5.2
The following problems exist in 5.0.1, 5.1x and 5.2:
o Textures loaded using glPixelMap might be corrupted
when enough textures are loaded to cause kernel
management of texture memory. Corruption should occur
only if the glPixelMap has changed or been disabled
since the original load.
o Line stippling for antialiased lines is not quite
correct on Onyx systems.
o On Indy and Indigo2 XL systems under 5.2, enabling
polygon stipple may not take effect immediately. An
application fix for the problem is to respecify the
current shade model after enabling stipple.
o Different OpenGL processes which render to the same
window using direct rendering will not share the
software ancillary buffers on that window.
o X and OpenGL do not coordinate swapping on double-
buffered windows properly.
o During direct rendering, software buffers that are
associated with the window are not freed when the
window is destroyed, but rather when the display
connection is closed. (The machine type determines
which buffers are implemented in software; on Indigo
Starter and Indy, for example, depth buffer, stencil
buffer, and accum buffer are all software buffers.)
A workaround has been included to force the buffers to
be cleaned up, at the cost of an extra X connection.
To enable this feature, do
setenv GL_CHECK_WINDOW_DESTROY y
before the first glXCreateContext. It will check for
window destroy events and clean up memory the next time
any rendering context is bound to a new window.
o If an OpenGL program does a server grab using its X
connection, then for the duration of the grab it should
- 3 -
not render OpenGL into any window that the client doing
the grab did not create. Otherwise a deadlock occurs.
The client is still able to do X rendering. This holds
for both local and remote rendering.
o No locking of display list structures is done on behalf
of indirect OpenGL contexts that share display list
spaces. Applications that use such contexts should use
their own mechanisms to ensure mutual exclusion when
defining or destroying display lists.
o When running OpenGL applications that use indirect
rendering, it is normal for more than one instance of
Xsgi, the SGI X server, to show up under ps. They
represent multiple threads of the X server, used to
implement indirect rendering.
o No extensions to OpenGL have been implemented.
o You may notice some discrepancies between the OpenGL
Reference Manual which is available through InSight and
the man pages you see when you type "man glXxx" in a
shell window. If so, you should believe what you see in
the shell window.
o On Indy and Indigo2 XL systems under 5.2, the best
performance for pixel operations is achieved when using
one of the following pixel type/formats:
GL_UNSIGNED_BYTE/GL_RGBA, GL_UNSIGNED_BYTE or
GL_UNSIGNED_SHORT/GL_COLOR_INDEX.
6.3 Known_problems_in_5.0.1_and_5.1x
o For RealityEngine systems, visuals that include a 12-
bit accumulation buffer do not pass the conformance
tests. The 12-bit accumulation buffer is implemented
using unsigned arithmetic, but the OpenGL specification
requires signed arithmetic. The 24-bit accumulation
buffer implementation is conforming.
o The command glCopyContext is not functional on Onyx
systems.
o Using the 4Dwm menubar ``Quit'' or ``Close'' items to
kill an OpenGL application that uses an indirect
context will occasionally cause X server threads to not
get freed when the application terminates.
o Once an OpenGL indirect context has been made current
to a window, avoid making it current to a pixmap.
Likewise, once an indirect context has been made
- 4 -
current to a pixmap, avoid making it current to a
window.
o Multiple OpenGL renderers rendering to the same window
does not always work.
o For RealityEngine systems, the border texels for the
glTexImage1D and glTexImage2D calls are ignored.
o These releases are not `tuned' nor are they thoroughly
tested.
- 1 -
1. gl_dev_Man_Pages
This appendix contains the man page(s) for gl_dev. These
man pages appear on-line when you type:
man commandname
Printed copies of these man pages are included; they are not
included in the on-line release notes.