IL - configuring the ImageVision Library runtime environment
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:
and some of the other desktop tools.
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
IL_CACHE_SIZE use cache fraction
IL_COMPUTE_THREADS number of processors
IL_HW_DISPLAY default X Display
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
Multi-Threading Configuration [Toc] [Back]
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 [Toc] [Back]
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 [Toc] [Back]
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
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 [Toc] [Back]
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.
/usr/lib/libil.so Base (C++) library
/usr/lib/libcil.so C API wrapper library
/usr/lib/libilMon.so IL monitor
IFL(1), IL(3), imgformats(1), imginfo(1)
PPPPaaaaggggeeee 4444 [ Back ]