IL(1)
IL - configuring the ImageVision Library runtime environment
As shipped in IRIX 6.5.30. Unchanged since IRIX 6.5.
NAME IL - configuring the ImageVision Library runtime environment SYNOPSIS The ImageVision Library (IL) is an object-oriented, extensible toolkit for creating, processing, and displaying images. It is used by a number of tools bundled with IRIX, including: imgcopy imginfo imgformats imgview and some of the other desktop tools. DESCRIPTION A set of environment variables can be used to configure the global IL environment. In particular, the file format, multi-processing, graphics hardware acceleration, caching capabilities and monitoring functions of the IL can be controlled using these variables. The environment variables are summarized in a table here and describe in more detail below: Variable Default ____________________________________________ IL_ARENA_MAXUSERS 40 IL_CACHE_FRACTION .3 IL_CACHE_SIZE use cache fraction IL_COMPUTE_THREADS number of processors IL_HW_ACCELERATE on IL_HW_DISPLAY default X Display IL_MONITOR_CACHE off IL_MONITOR_COMPACTION off IL_MONITOR_LOCKS off IL_MONITOR_RESET off IL_MONITOR off IL_MP_ARENA_SIZE 2Meg IL_MP_LOCKS on IL_NUM_PBUFFERS 1 IL_READ_THREADS 1 File Formats The image file formats recognized by IL are determined at runtime by searching for dynamic shared objects (DSOs) that contain the code for various file formats. Refer to IFL(1) for more details on controlling this feature. Multi-Threading Configuration The environment variables IL_COMPUTE_THREADS and IL_READ_THREADS can be used to override the default values for the number of compute threads, and the number of file read threads. By default one compute thread is created for each processor on the host system (including the user's thread), and one read thread is created to perform disk I/O in the background. For example, you can disable the all multi-processing feature in IL by issuing the commands: setenv IL_COMPUTE_THREADS 0 setenv IL_READ_THREADS 0 prior to running an IL based application. The size of the arena used to allocate spin-locks and semaphores for MP control can be set with the IL_MP_ARENA_SIZE. This may be necessary if you create a large number of objects derived from ilLink. The use of spin-locks to prevent concurrent access to the IL data structures can be turned of by setting IL_MP_LOCKS to 0. You can only take advantage of this optimization if the number of compute threads and read threads are both set to zero, and you don't make any concurrent calls to IL from your application. By default the IL allows up to forty threads to be sharing the MP arenas. If you need more, you can set the IL_ARENA_MAXUSERS environment variable to a larger value. Hardware-Acceleration Configuration The environment variable IL_HW_ACCELERATE can be used to override the default behavior of using the graphics hardware to perform processing whenever possible. For example, you can disable the hardware acceleration feature of IL by issuing the command: setenv IL_HW_ACCELERATE 0 prior to running an IL based application. See the ilHwSetGlobalEnable() man page for possible value of this variable. The IL_HW_DISPLAY environment variable controls the display to be used for accelerated operations that don't end up in a displayed window (like statistical operations). This environment variable uses the same format as the X DISPLAY environment variable. The default value for this variable is the current value of the DISPLAY variable. The number of p-buffers (off screen framebuffer memory) that are allocated is controlled by the IL_NUM_PBUFFERS environment variable. The default value is one on machines that support p-buffrers. This can also be controlled by the ilSetNumPBuffers(3) global function. Caching Configuration The environment variable IL_CACHE_FRACTION can be used to override the default size of the IL image data cache (30% of available user memory). For example, you could set the cache size to 20% of available user memory by issuing the command: setenv IL_CACHE_FRACTION .2 prior to running an IL based application. Alternatively, the environment variable IL_CACHE_SIZE can be used to set the size of the cache in bytes. For example, you could set the cache size to 4 million bytes by issuing the command: setenv IL_CACHE_SIZE 4000000 prior to running an IL based application. The IL_CACHE_SIZE variable takes precedence over IL_CACHE_FRACTION if both are set. Monitoring Control You can use the IL_MONITOR environment variable to turn on the IL Monitor. See the ILmonitor(1) man page for more details. If a less complete level of monitoring is needed (or you need to capture a log of the operations you can use any or all of IL_MONITOR_CACHE, IL_MONITOR_COMPACTION, IL_MONITOR_RESET and IL_MONITOR_LOCKS. See ilCacheImg(3il) method, enableGlobalPagingCallback, for more information on IL_MONITOR_CACHE. See ilLink(3il) method, enableResetCallback, for more information on IL_MONITOR_RESET. You can set IL_MONITOR_COMPACTION to 1 to get a printed message each time the cache is compacted. If you set the environment variable IL_MONITOR_LOCKS to 1, a log of lock creations and destructions is printed. Additionally, at program exit, any remaining locks are displayed. For creations, a short message is printed with the name of the lock. The name consists of the address of the lock optionally followed by a parenthetical comment describing what the lock is used for. For destructions and at exit time, the name of the lock and its metering information are displayed. The metering information measures how many attempts were made to acquire the lock, how many of those attempts were successful, how many times the software was forced to start spinning on the lock, etc. See the usctllock(3P) manual page for more information on the meaning of the metering information. FILES /usr/lib/libil.so Base (C++) library /usr/lib/libcil.so C API wrapper library /usr/lib/libilMon.so IL monitor SEE ALSO IFL(1), IL(3), imgformats(1), imginfo(1)