aboutsummaryrefslogtreecommitdiff
path: root/vendor/x11iraf/Notes-V2.0.txt
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /vendor/x11iraf/Notes-V2.0.txt
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'vendor/x11iraf/Notes-V2.0.txt')
-rw-r--r--vendor/x11iraf/Notes-V2.0.txt635
1 files changed, 635 insertions, 0 deletions
diff --git a/vendor/x11iraf/Notes-V2.0.txt b/vendor/x11iraf/Notes-V2.0.txt
new file mode 100644
index 00000000..4587c6ac
--- /dev/null
+++ b/vendor/x11iraf/Notes-V2.0.txt
@@ -0,0 +1,635 @@
+
+ X11IRAF V2.0 RELEASE NOTES
+ ==========================
+
+ Last Modified: Mon Nov 17 12:00:11 MST 2008
+
+-------------------------------------------------------------------------------
+
+Release History:
+
+ November 17, 2008 -- Initial V2.0BETA public release
+
+-------------------------------------------------------------------------------
+
+
+Table of Contents:
+------------------
+
+ Executive Summary
+
+ 1. Download and Installation
+ 1.1 Downloading the Distribution
+ 1.2 Installing Pre-Built Binaries
+ 1.3 Building From Source
+ 1.4 Comments, Suggestions and Bug Reports
+
+ 2. XImtool Revisions
+ 2.1 XGterm Revisions
+
+ 3. Platform Support Issues
+ 3.1 Linux Systems
+ 3.1.1 Determining your Graphics Hardware
+ 3.1.2 Intel Chipset Issues
+ 3.1.3 NVidia Issues
+ 3.2 Mac OSX Systems
+ 3.2.1 Tiger and Leopard Support
+ 3.3 Other Platforms
+
+ 4. OBM (Widget Server) Revisions
+ 4.1 GTerm Widget Changes
+ 4.2 Athena Widget Changes
+
+ 5. Client Display Library (CDL) Revisions
+ 5.1 Display Protocol Changes
+
+ 6. Technical Notes
+ 6.1 IIS Protocol Changes
+ 6.1.1 IIS Protocol Summary
+ 6.1.2 Faster Sub-Raster Writes
+
+ 7. Post-Release Notes
+
+-------------------------------------------------------------------------------
+
+==================
+Executing Summary
+==================
+
+This release provides the following improvements over previous versions:
+
+ 1) 24-bit display Support for XImtool
+ 2) 24-bit display Support for XGterm applications using imaging
+ 3) General platform support improvements
+
+For those accustomed to DS9 and not familiar with XImtool, a summary of
+features is provided at
+
+ ftp://iraf.noao.edu/iraf/x11iraf/Notes-V1.3.html
+
+This document will be updated as needed, see the 'Revisions' file for a
+detailed list of changes made in the source code.
+
+
+-------------------------------------------------------------------------------
+
+=============================
+1. DOWNLOAD AND INSTALLATION
+=============================
+
+1.1 Downloading the Distribution
+---------------------------------
+
+ The X11IRAF v2.0 system is being distributed as tarballs of either
+pure-source or prebuilt binaries. The convention in open-source software
+is that such tarballs create the toplevel directory for the application,
+however we require that users first create a directory for the distribution
+file since we don't want to impose a directory name that might overlap
+existing versions. We may reconsider this based on user suggestions, but
+users should be aware that creating the package directory is required before
+unpacking either source or binaries.
+
+Distributions are available in the following files:
+
+ Source Distribution:
+
+ http://iraf.noao.edu/x11iraf/x11iraf-v2.0BETA-src.tar.gz
+
+ Pre-built Binaries:
+
+ http://iraf.noao.edu/x11iraf/x11iraf-v2.0BETA-bin.redhat.tar.gz
+ http://iraf.noao.edu/x11iraf/x11iraf-v2.0BETA-bin.macosx.tar.gz
+ http://iraf.noao.edu/x11iraf/x11iraf-v2.0BETA-bin.macintel.tar.gz
+
+Once the system is out of the Beta-test phase the version string will
+change, additional platform binaries will be added as they become
+available. The Mac OSX binaries are suitable for Tiger or Leopard systems,
+Redhat binaries should run on most Linux systems whether based on a Redhat
+distribution or not. See the platform-specific notes below for additional
+details.
+
+
+1.2 Installing Pre-Built Binaries
+----------------------------------
+
+ Installing from binaries is a simple matter of finding the approp-
+riate distribution file for your platform. Unpacking the file can be
+done using the commands (e.g.)
+
+ % mkdir /path/x11iraf # create the X11IRAF directory
+ % cd /path/x11iraf # go into X11IRAF directory
+
+and then unpack the tarball using a command such as
+
+ % tar zxvf x11iraf-v2.0BETA-bin.macintel.tar.gz
+
+This will create an 'x11iraf' directory in the place you execute the
+command that contains the distribution.
+
+Installing to the default system directories will require root permission
+and can be accomplished with the commands:
+
+ % su # become the root user
+ # ./install # install the files (interactive)
+or
+ % sudo ./install # execute install as root
+
+
+
+1.3 Building From Source
+-------------------------
+
+ Installing from source is a simple matter downloading the
+source distribution and unpacking the file in a directory you create.
+Unpacking the file can be done using the commands (e.g.)
+
+ % mkdir /path/x11iraf # create the X11IRAF directory
+ % cd /path/x11iraf # go into X11IRAF directory
+
+and then unpack the tarball using a command such as
+
+ % tar zxvf x11iraf-v2.0BETA-src.tar.gz
+
+This will create an 'x11iraf' directory in the place you execute the
+command that contains the distribution.
+
+To build and install from an unpacked source distribution:
+
+ % mkdir /path/x11iraf create the X11IRAF directory
+ % cd /path/x11iraf go into X11IRAF directory
+ % xmkmf build the package Makefile
+ % make World build binaries from sources
+
+ % su become the root user
+ # ./install install the files (interactive)
+or
+ % sudo ./install execute install as root
+
+Only the last two commands are required to install from an unpacked binary
+distribution. Note that root permission is required in order to install to
+the default system locations. The X development environment for your
+platform must be installed prior to building sources, otherwise please
+install from one of the available binary distributions.
+
+
+1.4 Comments, Suggestions and Bug Reports
+------------------------------------------
+
+ Please report any bugs, comments or suggestions to
+
+ fitz@noao.edu
+
+Additionally, X11IRAF announcements and a user-forum is available at
+
+ http://iraf.net
+
+
+When reporting problems, please provide as much information as possible
+(e.g. platform, OS version, commands used, buttons pushed, etc) so the
+error can be reproduced.
+
+
+
+--------------------------------------------------------------------------------
+
+======================
+2. XIMTOOL REVISIONS
+======================
+
+ The scope of this upgrade was limited entirely to supporting the
+existing X11IRAF applications and features on TrueColor visuals (so-called
+'24-bit displays'). As such, the changes to XImtool itself were relatively
+minor and mostly limited to internal changes and not user-features.
+
+ The one exception to this is the addition of a new GUI feature on
+the display window we call the 'colormap focus slider'. This is a new GUI
+element that is used to set the size of an interactive update box on the
+display window that will be refreshed as the user slides the mouse around
+to do the contrast stretching of the image. By default, this will be the
+entire display window (i.e. the slider is all the way to the right), but it
+can be changed to make the update window smaller to the point where when
+the slider is on the far-left a box of 128x128 (deemed to be the minimally
+useful size) is set. Upon releasing the mouse window, the entire display
+will be updated.
+
+ [NOTE: At present, there are known issues in the V2.0BETA version
+ with this box not being properly updated as a result of window
+ resizing. These problems will be addressed.]
+
+ On many systems, the refresh rates for contrast stretching will be
+satisfactory, however certain OS/hardware configurations exhibit problems
+resulting in poor performance. Details (as they are known) of these
+configurations are described below, however this slider is meant as a
+stopgap for users to change the refresh box as needed to achieve acceptable
+rates. Even on fully-supported hardware, this box can be used to mitigate
+performance problems when using XImtool over remote X connections.
+
+ A long list of possible XImtool enhancements is prepared, however
+we are relying on the user-community to provide input in the way of
+suggestions and comments that this work is needed before deciding to allocate
+scarce resources to further development.
+
+
+2.1 XGterm Revisions
+----------------------
+
+ No changes to XGterm we made specifically during this upgrade,
+however the underlying Gterm widget changes means that IRAF tasks in the
+XAPPHOT package of the GUIAPPS external package can now be used on 24-bit
+displays. Because of the color changes required, some work still remains
+to fixup resource in the XAPPHOT gui itself, however for the most part it
+is now functional on 24-bit displays as well.
+
+
+--------------------------------------------------------------------------------
+
+============================
+3. PLATFORM SUPPORT ISSUES
+============================
+
+
+3.1 Linux Systems
+------------------
+
+ In early testing, a number of issues arose that were caused in part
+by host-system graphics issues. With TrueColor support, the interactive
+contrast stretching requires many times more screen refreshes than in the
+8-bit version where only the colormap was updated. As a result, even though
+the machines have become much faster, there is a greater dependence on how
+well the underlying hardware is supported by the system. Combined with a
+general switch from the old XFree86 X11 systems to the newer (and supposedly
+better) X.org code base, we are once again faced with the issue of driver
+support under Linux systems.
+
+ Proprietary drivers such as for NVidia graphics card present a
+challenge for Linux developers since much of the system has to be reverse-
+engineered. NVidia itself is improving it's support for Linux but the most
+recent drivers have not yet made their way into mainstream linux
+distributions. Likewise, there are problems with other graphics chipsets
+or specific window managers, but there are also a large number of users who
+will see no specific problems at all.
+
+ The sections below will be updated as new problems (and solutions)
+are found, and if changes can be made in the XImtool application itself they
+will be implemented. Most commonly, any problems you experience will be
+with the rate at which the screen refreshes in response to brightness/contrast
+scaling of the image. Window resizing is another issue that may come up
+and will depend on the type of window manager used. When reporting issues,
+please be as specific as possible about the hardware, window manager and
+OS version you are using as well as steps needed to reproduce any problem.
+
+
+
+3.1.1 Determining your Graphics Hardware
+-----------------------------------------
+
+ On many Linux systems the 'lspci' command can be used to print
+the PCI hardware of the machine. For example
+
+ % /sbin/lspci | grep -i VGA
+ 22:06:01.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
+
+indicates this machine has an ATI Rage XL graphics card. The location of
+the command may vary but /sbin is common.
+
+ Additionally, systems such as Ubunto have control-panel applications
+that can be used to list details of machine hardware.
+
+
+
+3.1.2 Intel Chipset Issues
+----------------------------
+
+ Intel graphics chips are common on many laptops, however the default
+'EXA' acceleration is known to be slow on systems using recent versions of
+the X.org server. The suggested workaround is to edit your /etc/X11/xorg.conf
+file and add the following to your 'Device' section:
+
+ Option "AccelMethod" "exa"
+ Option "MigrationHeuristic" "greedy"
+ Option "ExaNoComposite" "false"
+
+This has been reported to improve the screen-refresh performance of a number
+of applications.
+
+ An alternative, is to change the 'AccelMethod' option to be 'xaa'
+to use a different accelerator. The disadvantage here is that certain
+applications requiring video capability (such as Compiz-Fusion window manager
+on Ubuntu) will no longer work properly. For older X.org systems, however,
+this may be the only option.
+
+
+
+3.1.3 NVidia Issues
+---------------------
+
+ Linux systems running the X.org server with the stock 'nv' driver
+have reported slow refresh rates when stretching the image contrast. To
+help alleviate thi sproblem the 'colormap focus slider' on the bottom of
+the main window can be used to adjust the size of the interactive refresh
+area to tolerable rates.
+
+ A better solution is to install the latest version of the nvidia
+driver available for linux from the driver page at:
+
+ http://www.nvidia.com/object/unix.html
+
+This driver update has been reported to greatly improve the performace of
+the system and is recommended to those comfortable doing the upgrade.
+
+
+
+3.1.4 Ubuntu Issues
+---------------------
+
+ Ubuntu linux systems using the Compiz-Fusion window manager have
+reported problems with some of the static colors being rendered properly.
+At this time, there are no known workarounds while the problem is being
+investigated.
+
+
+
+3.2 Mac OSX Systems
+--------------------
+
+3.2.1 Tiger and Leopard Support
+--------------------------------
+
+ An Intel MacBook Pro running 10.4 (Tiger) was used as a primary
+development platform, however the same code base compiled under 10.4 is
+known to run on 10.5 (Leopard) systems for both Intel and PPC systems.
+
+ With 10.5, Apple switched from an XFree6-based X11 environment to
+one based on the X.org server, and the resulting problems are well documented
+on the net but pertain mainly to 8-bit application support. As far as this
+package is concerned, the only issue appears to be one of screen-refresh
+speeds on machines with NVidia graphics cards (e.g. 12" MacBook Pro and other
+older systems). This is similar to speed problems seen under Linux and may
+be solved in future updates of the Apple X11 server. For now, the workaround
+is to utilize the "colormap focus slider" described above to set an update
+box-size that gives satisfacory performance.
+
+ Other issues and solutions found with Mac systems will be documented
+here as they arise.
+
+
+3.3 Other Platforms
+--------------------
+
+ As of this release the only major system lacking support is the
+Windows platform using Cygwin, however this is planned before the final
+public release of the package.
+
+ Issues identified with Mac version support (considering the
+upheavals in the X support under 10.5) will be addressed as they come up
+with the goal that a single binary for each CPU architecture will be all
+that is required. A Universal binary is being considered but was not a
+focus of this release.
+
+
+
+--------------------------------------------------------------------------------
+
+==================================
+4. OBM (WIDGET SERVER) REVISIONS
+==================================
+
+ The primary focus of changes in this release is to update all
+tasks and toolkits to support 24-bit (more generically, 'TrueColor visual')
+displays. No signbificant new features were added however many files
+were checked and slightly modified so they would work in the new display
+environment.
+
+
+4.1 GTerm Widget Changes
+-------------------------
+
+ The custom Gterm widget obviously underwent significant change
+during this upgrade. To summarize the issue: With an 8-bit PseudoColor
+display the contrast stretching is done by simply rewriting the scaled
+colormap to the display (256 elements), but with a TrueColor visual there
+is no colormap and the RGB value of *each pixel on the screen* must be
+updated and refreshed when a change is made (i.e. 512x512 pixels or more
+depending on the screen size). Increased CPU/GPU power makes fast updates
+possible compared to 10 years ago, however much depends on the graphics
+hardware and how well it is supported by the underlying OS and the X server
+used.
+
+ Fundamentally, the Gterm widget still retains the concept of a
+colormap so that the higher-level applications which rely on it can remain
+almost completely unchanged. The support for TrueColor displays is added
+at the lowest level of the widget that interacts directly with the X
+display. For example, in XImtool a "frame" consists internally of a client
+XImage that holds the 8-bit display data sent by the client and is the size
+of the frame buffer. This frame also has a 'pixmap' that is the same depth
+as the display visual (e.g. 24-bits) however it is only the size of the
+Gterm window. It is the pixmap that is rendered to the screen and so we
+can implement 24-bit support by mapping the 8-bit XImage data to the 24-bit
+pixmap when we pan/zoom or stretch the display contrast. Converting these
+pixels is done using the colormap still present in the widget and set by
+the user and the conversion is optimized with lookup-tables to minimize
+computation time.
+
+ The static colors in the widget are unchanged and we are able to
+fully utilize all 200+ colors available in the Gterm color model. Vector
+graphics and "markers" in the widget were largely unchanged except for
+cases where resource colors (e.g. the vector color in a plot) needed to be
+specified explicitly.
+
+ This approach worked remarkably well in limiting the changes to the
+Gterm widget itself and requiring (relatively) little in the way of changes
+needed by applications such as XImtool or XGterm. A number of small issues
+remain to be solved (and new ones will no-doubt be found) during the
+beta-test period, but a fully-supported and stable system is clearly within
+reach.
+
+
+4.2 Athena Widget Changes
+--------------------------
+
+ The Athena3D widget toolkit used also had problems under 24-bit
+systems, mostly related to the definition of color resources. This toolkit
+provides the 3-D effect for common widgets such as Buttons, Menus and
+Toggles and changes were needed to allow these widgets to be used on
+TrueColor visuals.
+
+ Other projects had encountered these same problems and patches for
+the toolkit were easily found on the web and applied. The older version of
+the library source was retained in the distribution for reference in case
+future bugs are found.
+
+ One issue still to be investigated is the rendering of widgets on
+8-bit pseudocolor displays, which on some systems appears to lose the 3-D
+effect. This will be resolved during the "cleanup" phase and would only
+affect a very small numbers of users.
+
+
+--------------------------------------------------------------------------------
+
+===========================================
+5. CLIENT DISPLAY LIBRARY (CDL) REVISIONS
+===========================================
+
+
+5.1 Display Protocol Changes
+-----------------------------
+
+ The following CDL methods were modified in order to implemented the
+faster sub-raster I/O described below in section 5.1.2:
+
+ cdl_readSubRaster (cdl, lx, ly, nx, ny, &pix)
+ cdl_writeSubRaster (cdl, lx, ly, nx, ny, pix)
+
+The changes made are internal to the procedure and do not affect the
+application interface, only the behavior of the procedure.
+
+ Specfically, if the connection to the display server detects a WCS
+version greater than "10" (i.e. v1.0), then a new method for writing
+subraster data will be used that transfers data directly to the region
+specified. This should greatly improve the performance of applications that
+do many subraster transfers of this type and is fully backward compatible
+to other display servers.
+
+ All that is required to use this feature is to relink the CDL
+application with the new version of the library, and to use the XImtool
+server distributed with X11iraf V2.0 or later.
+
+
+
+--------------------------------------------------------------------------------
+
+===================
+6. TECHNICAL NOTES
+===================
+
+
+6.1 IIS Protocol Changes
+-------------------------
+
+
+ The IIS protocol was modified slightly in this release in order
+to provide greatly improved performance of sub-raster read and write oper-
+ations from client applications. The change was made to accomodate a
+Real-Time Display capability for a new IR Mosaic instrument recently
+developed in which the display is loaded simultaneously by independent
+clients responsible for different parts of the focal plane. The change
+resulted in a 200-fold increase in speed allowing a 4k x 4k image to be
+displayed from multiple machines in under a second.
+
+ The details of this change are covered in detail in section 5.1.2
+below but will be automatic for any application linking against the new
+version of the CDL library. In summary, earlier versions of the subraster
+display were done by reading back the entire width of the frame buffer,
+editing the affected pixels and then writing back the rows in the buffer.
+For small sub-raster this is highly inefficient but usually acceptable
+because of the small number of subraster reads/writes being done. In this
+improved version, the pixels in the frame buffer are written directly to
+the screen, avoiding the unnecessary readback-edit-write cycle as before.
+When displaying a full image into a frame buffer approximately the same
+size as the image, the change will not be noticeable. However, when the
+image is much smaller than the buffer, or when writing many small
+subrasters to the display (e.g tiling images or editing indivual regions),
+users should notice a considerable improvement in the speed.
+
+
+
+6.1.1 IIS Protocol Summary
+---------------------------
+
+ This section is meant to provide an up-to-date reference of the IIS
+protocol used in X11IRAF v2.0, including any changes described above or in
+following sections. These changes are implemented in XImtool display
+server, the VXImtool virtual frame buffer, and the CDL application library
+included with this release. Necessary changes in the current IRAF v2.14
+release are also implied.
+
+
+ IIS Header Packet Summary
+
+ TID Subunit Tct X Y Z T Data
+ +------------------+-------------+-----+---+---+----+---+--------+
+Read Data | IIS_READ|PACKED | MEMORY | -NB | x | y | fr |nx | nbytes |
+Write Data | IIS_WRITE|PACKED | MEMORY | -NB | x | y | fr |nx | nbytes |
+Read Cursor | IIS_READ | IMCURSOR | - | - | - | wcs| - | - |
+Write Cursor | IIS_WRITE | IMCURSOR | - | x | y | wcs| - | - |
+Set Frame | IIS_WRITE | LUT|COMMAND | -1 | - | - | - | - | 2 |
+Erase Frame | IIS_WRITE | fb | FEEDBACK | - | - | - | fr | - | - |
+ | | | | | | | | |
+Old Read WCS | IIS_READ | WCS | - | - | - | fr | - | 320 |
+Old Write WCS | IIS_WRITE|PACKED | WCS | -N | - | - | fr |fb | 320 |
+ | | | | | | | | |
+WCS Version? | IIS_READ | WCS | - | 1 | 1 | - | - | 320 |
+WCS by Num.? | IIS_READ | WCS | - | 1 | - | fr |wcs| 1024 |
+New Read WCS | IIS_READ | WCS | - | 1 | - | fr | - | 1024 |
+New Write WCS | IIS_WRITE|PACKED | WCS | -N | 1 | - | fr |fb | 1024 |
+ +------------------+-------------+-----+---+---+----+---+--------+
+
+
+Where nbytes | NB = number of bytes expected or written
+ x = x position of operation in frame buffer coords
+ y = y position of operation in frame buffer coords
+ nx = width of data to be read/written. If zero, the width
+ of the current frame buffer is assumed.
+ fr = frame number (passed as bitflag (i.e. 1, 2 ,4 8, etc)
+ fb = frame buffer config number (zero indexed)
+ N = length of WCS string
+ wcs = WCS number (usually zero)
+ Data = the number of bytes of data to be read or written
+ following the header packet.
+
+ IIS_WRITE = 0400000
+ IIS_READ = 0100000
+ COMMAND = 0100000
+ PACKED = 0040000
+ IMC_SAMPLE = 0040000
+
+ MEMORY = 001
+ LUT = 002
+ FEEDBACK = 005
+ IMCURSOR = 020
+ WCS = 021
+
+
+
+6.1.2 Faster Sub-Raster Writes
+-------------------------------
+
+ Sub-raster I/O is a special case of the IIS_READ and IIS_WRITE
+commands in which the caller specifies the (x,y) position of the operation
+and the number of bytes to be transferred. Traditionally, the X position
+was always zero (indicating the starting row of the frame buffer), the Y
+position was the row to be written and the data sent represented one or
+more complete rows of the frame buffer.
+
+ In the new scheme, we take advantage of the unused 't' register in
+the IIS header packet to specify the width of the subraster. If this value
+remains 0 (zero), we use the old behavior and assume the data are the full
+width of the frame buffer. For values greater than zero in the 't'
+register, the value is taken to be the width of the subraster to be written
+at the given (x,y) position. The size of the subraster is then 't' pixels
+wide by 'nbytes/t' rows high.
+
+ When using the cdl_readSubRaster() or cdl_writeSubRaster() methods
+in the CDL application library, the setting of the 't' register is handled
+automatically on behalf of the caller. This faster display model is used
+only if the "iis_version" is greater than 10 meaning CDL applications
+should remain backward compatible with the current (as of this writing)
+DS9.
+
+
+
+-------------------------------------------------------------------------------
+
+7. POST-RELEASE NOTES
+=====================
+
+
+11/18/08 -- Fixed a problem seen on some systems resulting in a BadAlloc
+ error. This was caused by the resizing of the hcut/vcut plots
+ such that the widget sizes was being seen as 65534 or so (i.e.
+ actually negative).
+
+11/20/08 -- Trapped a bad read on the ISM socket that causes an error message
+ to be written when you quit XImtool. It is unclear whether
+ this is related to a 'memory corrupted' message sometimes seen
+ when quitting.