========================================================================== The checksum's (found through sum -r) of the files that you have received (other than this README) are as follows: 38968 13 patchSG0001826 06494 21894 patchSG0001826.eoe1_sw 34646 41 patchSG0001826.gl_dev_man 62576 4261 patchSG0001826.gl_dev_sw 40819 28 patchSG0001826.idb 40125 1157 patchSG0001826.x_eoe_sw ========================================================================== - 1 - 1. Patch_SG0001826_Release_Note This release note describes patch SG0001826 to IRIX 5.3. Patch 1826 replaces patches 210, 285, 360, 450, 725, 926, 997, 1015, and 1402. 1.1 Supported_Hardware_Platforms This patch contains bug fixes for all Indy's, all platforms with XL or Starter graphics, and all platform with XS, XZ, Elan, or Extreme graphics. The software cannot be installed on other configurations. This patch also contains texture performance enhancing OpenGL extensions for Indy, XL, XS, XZ, Elan and Extreme graphics. 1.2 Supported_Software_Platforms This patch contains bug fixes for IRIX 5.3 on the above hardware platforms. The software cannot be installed on other configurations. 1.3 Bugs_Fixed_by_Patch_SG0001826 This patch contains fixes for the following bugs in IRIX 5.3. Bug numbers from Silicon Graphics bug tracking system are included for reference. o (bug #211539) When multiple OpenGL contexts were bound to the same window at the same time (from different processes or threads), if the window was exposed, moved, or resized, then one or more of the processes which had contexts bound to the window could hang. Fixed for all platforms supported by this patch. o (bugs #239362, #272318) The GLX specification allows rendering contexts to be shared between threads in an address space. In IRIX 5.3 and earlier releases, if an application required more than one rendering thread it had to create a separate context for each thread, and only use a given context from the thread in which it was created. Fixed for all platforms supported supported by this patch. o (bug #244474) When an OpenGL application was rendering to a double buffered window, if the window was iconified and the application continued to render and call glXSwapBuffers while the window was iconified, then when the window was de-iconified the application - 2 - could erroneously render into the wrong buffer until the next time that the application called glXSwapBuffers. Fixed for all platforms supported by this patch. o (bug #249044) In ivview, for certain window sizes, a core dump was produced when points were rendered (using popup with drawstyle points) that were below the bottom edge of the window. More specifically, for certain window sizes, OpenGL wide points were clipped incorrectly, which caused a core dump. Present on Indy, XL and Starter graphics. o (bug #250450) OpenGL: Text being drawn on the overlay planes may not be drawn in the correct color (calls to glIndex*() and glColor*() could be ignored). Present on all Indy and XL platforms. o (bug #251456) Default anti-aliased line rendering performance for OpenGL has been significantly improved on XS, XZ, Elan and Extreme. The GL_LINE_SMOOTH_HINT target suggests a performance/quality trade-off for anti-aliased line rendering. The default state for this target is GL_DONT_CARE. The OpenGL implementation on XS, XZ, Elan, and Extreme has been interpreting GL_DONT_CARE to mean GL_NICEST. The fix for this bug changes the OpenGL implementation to interpret GL_DONT_CARE as GL_FASTEST. o (bug #251493) A bug with two parts: (a) Textured lines were mip-mapped incorrectly. (b) Zero-sized anti- aliased triangles were filling the whole screen. Present in all architectures for which patch applies. o (bug #252055) ivperf produced a core dump for certain model. Specifically, in OpenGL, transformation of size 1 points was off by 0.5 pixels, causing a core dump for certain window sizes. Present on Indy, XL and Starter graphics. o (bug #253025) OpenGL: Certain types of depth-buffered lines were not rendered with correct depth values. Especially present when trying to use stencil planes to implement polygon outlining. Present on Indy and XL platforms. o (bug #253846) Bug with OpenGL scissoring. Occurred when the scissor rect was altered to a larger area during a frame which was not the first frame modulo 256 (before a glClear() call was issued) after a window resize or a switch of depth function from GL_GREATER or - 3 - GL_GEQUAL to GL_LESS or GL_LEQUAL. In that case, rendering that occurred for n frames after the frame that contained that scissor change (where n is the number of frames from a window resize or a switch of the depth function as described above, to the frame that the scissor change occurred on, modulo 256) had wrong depth order of primitives. This bug present on all Indy, XL, Starter graphics, XS and XS24 platforms. o (bugs #253979, #277730) OpenGL: When depth buffering and blending were enabled, blending was performed before depth testing. The reverse is the correct behavior. Present on all Indy, XL and Starter graphics platforms. o (bugs #255694, #257306, #268260, #270868) Several memory allocation problems have been fixed, which could cause OpenGL client applications or X server GLX indirect rendering processes to dump core. Fixed for all platforms supported by this patch. o (bug #256624) OpenGL memory leak with Starter graphics while destroying an OpenGL context. o (bugs #257306, #257687, #273749) The GLX 1.1 extension routine glXQueryExtensionsString was querying the GLX server by sending a xGLXQueryExtensionsStringReq protocol request. Since this request is not supported by all GLX 1.1 servers, calling glXQueryExtensionsString could cause a BadRequest error to be returned from the server. Also, the extension strings returned by glGetString, glXGetClientString, glXQueryServerString, and glXQueryExtensionsString could be corrupt due to memory allocation problems. Both problems fixed for all platforms supported by this patch. o (bug #259014) This bug causes some 15" monitors to malfunction, on Indy systems with ng1 revision 6 or greater (ng1 revision can be determined by running /usr/gfx/gfxinfo). The image displayed on an affected monitor will shimmer, jitter or swim in a disagreeable fashion. o (bug #259073) When glDisable(GL_POLYGON_OFFSET_EXT) was called, a spurious invalid enumerant error could be generated on Indy and XL systems. This has been fixed. o (bug #259902) Calls to glPopAttrib when the GL_VIEWPORT_BIT was set in the attribute mask which was being popped, were extremely slow on systems with XS, - 4 - XZ, Elan, or Extreme graphics. This has been fixed. o (bug #264921) OpenGL: Pushing and popping the GL_SCISSOR_BIT is slower in IRIX 5.3 (compared to IRIX 5.2). Present on Indy, XL and Starter graphics. o (bug #265258) OpenGL: Calls to glViewport cause a round trip to the X server which is slow. Now, the X server is inquired only if the window moves, resizes, or the window stacking order changes. Fix only on Indy and XL platforms. o (bug #266430) The blending functions provided by the GL_EXT_blend_color extension (GL_CONSTANT_COLOR_EXT, GL_ONE_MINUS_CONSTANT_COLOR_EXT, GL_CONSTANT_ALPHA_EXT, GL_ONE_MINUS_CONSTANT_ALPHA_EXT) were not working correctly when rendering pixel rectangles with glDrawPixels. This worked correctly on systems with Starter graphics. Fixed for all other platforms supported by this patch. o (bug #270119) When GL_POLYGON_SMOOTH was enabled, rendering very small or narrow polygons could cause OpenGL to get stuck in an infinite loop. Fixed for all platforms supported by this patch. o (bug #272098) On Indy and XL systems, stenciled lines whose length (in pixels) was an integer multiple of 256, were not rendered. Now they are. o (bug #272254) On Indy, XL and Starter systems, scissored depth buffer clears were not working correctly. o (bug #272475) On Indy, XL, and Starter systems, the viewport state was not always restored on a call to glPopAttrib when glViewport was executed between a glPushAttrib with the GL_VIEWPORT bit set and the corresponding glPopAttrib. This has been fixed. o (bug #277451) A core dump was caused sometimes when a call to glDepthMask(GL_FALSE) was made. o (bug #289381) On Indy and XL, and Starter systems, the raster position may not be set correctly when multiple contexts are involved. Fixed. o (bug #293615) On Indy, XL and Starter graphics systems, size 1 z-buffered points were not clipped to the window when the viewport was larger than the window. - 5 - o (bug #307341) When glCallLists() called with display list offsets of type GL_UNSIGNED_SHORT, the offsets are improperly processed, due to a code typo indicating they were 3 bytes long. This error only affected glCallLists(). It has been fixed. o (bug #308482) Altering the state of glDepthMask() while scissoring is enabled was not working correctly. o (bug #311102) XL graphics do not work on PM5. o (bug #316080) Call to glXUpdateContext breaks blending. o (bug #322343) Don't allow installation on Onyx/IP19/VTX. o (bug #325774) glReadPixels with GL_DEPTH_COMPONENT was slow on Elan, Extreme and XZ architectures. This is fixed for GL_UNSIGNED_INT pixel formats. o (bug #377540) This bug caused the graphics libraries to allow floating point exceptions to be generated. This would not effect the graphics calculations, but would activate a user's floating point exception handler, if one were enabled. o (bug #456421) Indy XZ systems may miss bytes when reading from the serial ports while complex graphics applications are active. 1.4 Subsystems_Included_in_Patch_SG0001826 This patch release includes these subsystems: o patchSG0001826.eoe1_sw.gfx_lib o patchSG0001826.eoe1_sw.unix o patchSG0001826.gl_dev_sw.glprof o patchSG0001826.x_eoe_sw.Server o patchSG0001826.x_eoe_sw.pex 1.5 OpenGL_Extensions_Provided_with_Patch_SG0001826 This patch contains the following OpenGL extensions on the supported architectures. - 6 - o SGIX_framezoom Effectively lowers the resolution of an OpenGL window by the factor specified, increasing fill performance. This extension has also been packed with texture- specific performance optimizations. Please see the man page for glFrameZoomSGIX, for details. Also install gldev.sw.oglsamples and look in the directory /usr/share/src/OpenGL/samples/EXT at framezoom.c and indyvidtex.c for an example use of this extension. o EXT_subtexture Allows portions of textures to be redefined without requiring the entire texture to be reloaded. Please see the man pages for TexSubImage2DEXT for details. o EXT_texture_object Extends texturing to include named texture objects whose contents and parameters may be changed without requiring the entire texture to be reloaded. Also provides simple texture memory management. Please see the man pages for glBindTextureEXT, glDeleteTexturesEXT and glAreTexturesResidentEXT for details. 1.6 Installation_Instructions Because you want to install only the patches for problems you have encountered, patch software is not installed by default. After reading the descriptions of the bugs fixed in this patch (see Section 1.3), determine the patches that meet your specific needs. If, after reading Sections 1.1 and 1.2 of these release notes, you are unsure whether your hardware and software meet the requirements for installing a particular patch, run inst. Patch software is installed like any other Silicon Graphics software product. Follow the instructions in your Software Installation Administrator's Guide to bring up the miniroot form of the software installation tools. Follow these steps to select a patch for installation: 1. At the Inst>prompt, type install patchSGxxxxxxx where xxxxxxx is the patch number. - 7 - 2. Select the desired patches for installation. 3. Initiate the installation sequence. Type Inst> go 4. You may find that two patches have been marked as incompatible. If this occurs, you must deselect one of the patches. Inst> keep patchSGxxxxxxx where xxxxxxx is the patch number. 5. After completing the installation process, exit the inst program by typing Inst> quit To remove a patch, use the versions remove command as you would for any other software subsystem. The removal process reinstates the original version of software unless you have specifically removed the patch history from your system. versions remove patchSGxxxxxxx where xxxxxxx is the patch number. To keep a patch but increase your disk space, use the versions removehist command to remove the patch history. versions removehist patchSGxxxxxxx where xxxxxxx is the patch number.