5 Known Problems and Workarounds
- 1 - 1. Introduction The Silicon Graphics ImageVision Library (IL) 2.3 Execution environment is required on any system that runs IL programs. Applications such as Indigo Magic, the desktop environment, Insight and the ImageVision tools all require this subsystem. Since the necessary il_eoe subsystems are installed as a default, most users should not have to concern themselves with further details. However, the curious user may be interested in using IL derived tools or programming directly with the IL. You can refer to the ImageVision Tools book or the IL man page for some example applications derived from IL. IL Execution environment software consists of a primary library for C++ as well as supporting libraries for C and Fortran based applications. Additionally, a set of libraries used for supporting several file formats are included in the il_eoe subsystems. The IL reference man page contains more information about IL derived applications. Important note: for back compatibility, included in the ImageVision Library 2.3 release are the IL 2.2 libraries. This allows applications linked with the previous IL release (version 2.2) to continue to run. However, you must relink against the IL 2.3 libraries to take advantage of performance tunes and bugs fixed since the IL 2.2 release. This document contains the following chapters: 1. Introduction 2. Installation Information 3. Changes and Additions 4. Bug Fixes 5. Known Problems and Workarounds 1.1 Release_Identification_Information Following is the release identification information for ImageVision Library: ImageVision Library - 2 - Software Product - 3 - Version 2.3 System Software Requirements IRIX 5.2 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. 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 North America and would like support for your Silicon Graphics-supported products, contact the Technical Assistance Center at 1-800-800-4SGI. If you are outside North America, 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 ImageVision_Library_Subsystems The ImageVision Library includes these subsystems: il_eoe.sw.c++ This is the C++ version of the ImageVision Library DSO. il_eoe.sw.c This is the C version of the ImageVision Library DSO. It depends on the C++ version: il_eoe.sw.c++. il_eoe.sw.ftn This is the Fortran version of the ImageVision Library DSO. It depends on the C and C++ versions: il_eoe.sw.c and il_eoe.sw.c++. il_eoe.sw.tiff This DSO library provides support for the TIFF image file format. It depends on the base library: il_eoe.sw.c++. il_eoe.sw.sgi This DSO library provides support for the SGI image file format. It depends on the base library: il_eoe.sw.c++. il_eoe.sw.photocd This DSO library provides support for the PhotoCD image file format. It depends on the base library: il_eoe.sw.c++. il_eoe.sw.fit This DSO library provides support for the sample FIT image file format. il_eoe.sw.gif This DSO library provides support for the GIF image file format. It depends on the base library: il_eoe.sw.c++. il_eoe.sw.demos This provides some demo programs using IL. il_eoe.sw.il2_2 This is the set of DSO libraries corresponding to the 2.2 ImageVision Library release. il_eoe.data.images This provides some sample images that can be used with the IL demo programs. - 2 - il_eoe.man.relnotes The online version of these release notes. il_eoe.man.il Documentation on configuring the IL runtime environment. 2.2 ImageVision_Library_Subsystem_Disk_Space_Requirements This section lists the subsystems (and their sizes) of the ImageVision Library 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) il_eoe.sw.c++ (default) 5741 il_eoe.sw.c 866 il_eoe.sw.ftn 828 il_eoe.sw.tiff (default) 862 il_eoe.sw.sgi (default) 151 il_eoe.sw.photocd (default) 221 il_eoe.sw.fit (default) 73 il_eoe.sw.gif (default) 81 il_eoe.sw.demos 190 il_eoe.data.images 3287 il_eoe.man.relnotes 17 il_eoe.man.il 13 il_eoe.sw.il2_2 8257 - 3 - 2.3 Installation_Method All of the subsystems for ImageVision Library 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 If you want to install il_eoe.sw.c, you must also install il_eoe.sw.c++. If you want to install il_eoe.sw.ftn, you must also install il_eoe.sw.c and il_eoe.sw.c++. If you want to install il_eoe.sw.tiff, il_eoe.sw.sgi, il_eoe.sw.gif, il_eoe.sw.photocd or il_eoe.sw.fit you must also install il_eoe.sw.c++. Your workstation must be running at least release IRIX 5.2 in order to use release 2.3 of this product. - 1 - 3. Changes_and_Additions This chapter lists the changes and additions to the ImageVision Library since the 2.0 release. 3.1 Changes_Between_Release_2.0_and_Release_2.1 There were no significant execution environment changes between release 2.0 and 2.1. 3.2 Changes_Between_Release_2.1_and_Release_2.2 3.2.1 New_Method_for_Extending_File_Format_Support o The mechanism for adding a user-defined file format to IL was changed in release 2.1. The new method enables a user-defined format to be added to the library at runtime, thus permitting existing applications (like imgview(1)) to recognize the new file formats. See the gift source ilFITImg.c++ and ilFITformat.c++ in 4Dgifts/examples/ImageVision/ilsrc for an example image format handler. See the imgformats(1) man page for details on how to tell IL about your new format handlers. 3.2.2 Supported_File_Formats_Are_Independent_DSOs o The supported file format handlers are now provided as independent dynamic shared objects that are installed in /usr/lib/ImageVision/filefmt. To be able to read and write in the supported file formats you must have installed the il_eoe.tiff, il_eoe.fit, il_eoe.sgi and il_eoe.photocd subsystems. 3.2.3 New_Image_Reader_for_PCD_Image_File_Format o A new image reader is provided for the Photo Compact Disc (PCD) format. Writing is not supported for this format. 3.3 Changes_Between_Release_2.2_and_Release_2.3 3.3.1 Extended_List_of_Run_Time_Control_Parameters o Several environment variables have been added to enhance control and use of cpu, memory and graphics hardware resources. See the IL(1) man page for the complete list of environment variables. - 2 - 3.3.2 New_Caching_Implementation o IL's memory management is now based on memory mapping to allow for finer control of main memory allocation and reclamation. Several environment variables have been added to allow user control of IL's memory usage. See the IL(1) man page for details. 3.3.3 New_Image_Reader_for_GIF_Image_File_Format o A new image reader is provided for the Graphics Interchange Format (GIF) format. Writing is not supported for this format. - 1 - 4. Bug_Fixes The following bugs in IL version 2.0 have been fixed in version 2.3. o Memory leaks A number of memory leaks and file descriptor leaks have been plugged in this release. o Memory fragmentation Memory fragmentation has been greatly reduced with the new memory management system. o Reality Engine acceleration improved The performance of IL using RE hardware has been improved over 2.2, in some cases greatly. o Generalized hardware acceleration The ability to used graphics hardware independent of the display has been added. Applications can now compute image operators in hardware independent of the image output's destination. o Recovery from bad SGI image files There exist many SGI-format image files with bad min/max values, created by programs that had bugs in the past. Such files can be viewed by the ipaste program (which always ignores the min/max values) but until IL 2.3 they could not be read by IL-based programs such as imgview which use the min/max values for scaling. IL will now detect this situation and substitute reasonable min/max values. The imgcopy program may also be used to patch these files. o TIFF format issues resolved IL was writing an SGI-specific TIFF tag TIFFTAG_IMAGEDEPTH in all cases, now this tag is only written when necessary (when the image's depth is > 1). IL no longer prints messages to standard error output when it encounters unknown TIFF tags. Errors caused by invalid codes when decoding fax- encoded TIFF files no longer cause the operation to abort. - 2 - IL now recognizes the new scaling min/max tags as specified in the TIFF 6.0 spec, and no longer uses the statistical min/max tags for scaling. o Other TIFF bugs fixed IL wrote and read the wrong values for signed vs. unsigned integer data types in TIFF files; this has been fixed. A bug that resulted in a bad TileLength being written and core dumps when creating a tiled TIFF image has been fixed. Restrictions on page size in TIFF images was too strict, causing valid TIFF files to be rejected; this has been fixed. A bug that caused images with rowsperstrip and tileheight tags both undefined to be read incorrectly has been fixed. Problems reading/writing TIFF images whose data type was float or double and whose color model was grey or negative have been fixed. Color maps are now properly written out into TIFF color palette images, and they are scaled properly when read in. o Corruption and core dumps A bug causing memory corruption upon closing a FIT image file has been fixed. o IL Applications wouldn't die A bug that caused IL applications to sometimes leave a process running after the application was closed by user interaction with the window manager has been fixed. o Incorrect results and core dumps on RE A bug that caused pages of images to appear in scrambled order when displaying the results of certain hardware accelerated operations on the Reality Engine has been fixed. A bug that caused a segmentation violation when trying to display a large portion of a hardware-accelerated - 3 - operation on the Reality Engine has been fixed. A bug that caused texture-rendered ABGR images to be displayed as garbage has been fixed. o Hardware accelerated zoom on VGX There was a bug that sometimes caused gaps to show between pages of an image when displaying a hardware accelerated zoomed image on a VGX; this has been fixed. - 1 - 5. Known_Problems_and_Workarounds This chapter lists the known problems in version 2.3 of the ImageVision Library and, where known, ways to work around them. o Output to an image file in Silicon Graphics' classic .rgb format is not supported if RLE compression is selected. Output files created in SGI format must be created in raw (uncompressed) format. Use TIFF format if you wish to create a compressed image file. o Output to an image file in Silicon Graphics' classic .rgb format does not support arbitrary min and max values set. Use TIFF format if you wish to set arbitrary min and max pixel values. o When running the ILmonitor mp-enabled and with IL_MONITOR set to 2, if you exit the monitor while the application is still running, the application will not terminate as its threads linger. o On the Reality Engine, image icons that appear in desktop applications such as fm and iconbook are created using the graphics hardware; unfortunately, for the particular minification operations used by these programs, this hardware method is slower than doing the calculation in software. Thus these programs can be speeded up by setting the environment variable IL_HW_ACCELERATE to 0. Keep in mind, however, that all other IL applications started from within the desktop program will inherit this value and so they will not get hardware-accelerated. See the IL(1) man page for more details on hardware acceleration and environment variables that affect IL. o IL programs will core dump if the current file-creation mode mask (umask) is strange, for example, if the mask causes files to be created without read or write permission by the owner of the file. o Trying to display an RGB bit-data-type image directly on a Reality Engine does not work and may crash the graphics pipe; this happens even with IL hardware acceleration turned off. An image file in this format may be viewed by first converting its data type to uchar using the imgcopy program.