5 Known Problems and Workarounds
- 1 - 1. Introduction These release notes describe the Graphics Library Development Environment for IRIX 6.0. 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 6.0 Product Code SC4-IDO-6.0 System Software Requirements IRIX 6.0 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. 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.gldev (default) 3866 gl_dev.man.relnotes (default) 52 gl_dev.sw.gldev (default) 2070 gl_dev.sw.oglsamples 18353 - 2 - 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 No new features have been added to IRIS GL for 6.0. OpenGL is fully supported in 32-bit and 64-bit programs. Bindings for FORTRAN OpenGL programs are available in libfogl.so and libfoglu.so. - 1 - 4. Bug_Fixes None. - 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 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 The glprof and gldebug programs are not supported in this release. - 1 - 6. OpenGL The 6.0 release adds support for OpenGL on Power Onyx RealityEngine2 and Power Onyx Extreme systems. Both 32-bit and 64-bit versions of the Dynamic Shared Objects are available. 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. 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_6.0 The following problems exist 6.0: o Textures loaded using glPixelMap might be corrupted when enough textures are loaded to cause kernel management of texture memory. Corruption should occur - 2 - only if the glPixelMap has changed or been disabled since the original load. o Line stippling for antialiased lines is not quite correct on Power Onyx RealityEngine systems. 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 may 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 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. - 3 - 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 - 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.