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.