TeraRecon, Inc. Real Time Visualization June-19-2001 ======================= This document provides the information needed to install the VolumePro V2.10 software on to a HP-UX B.10.20 A 9000/785 systems. You must be "root" to install the software. The name of the package is vg500.1.0.depot.tar SYSTEM REQUIREMENTS ==================== The following are the HP-UX system minimum hardware and software requirements: * HP-UX 10.20 operating system * RISC 8500 400 MHz CPU * Minimum of 256Mb RAM memory * 128MB and 256MB VolumePro500 PCI boards are supported in any permutation * Minimum of 10 Mb free disk space to install the VolumePro 500 software * HP Visualize-fxe 3D Graphics Accelerator Card NOTE: This version is intended for HP-UX 10.20 running on a coherent I/O platform and has been tested and verified on a B2000 9000/785 machine. CHANGES IN THIS SOFTWARE ======================== 1. New settings for SW. (See SETTINGS below.) 2. Fixed bugs listed at the end of this document. 3. Threaded, and 7th point features are added. (See NEW FEATURES below.) INSTALLING THE VOLUMEPRO 500 BOARD =================================== Turn the system power off and install the VolumePro board directly into the PCI slot. INSTALLING VOLUMEPRO SOFTWARE ============================= 1. If an earlier version of VolumePro software is installed on your system, please remove it from the system with the following command: swremove -x autoreboot=true vg500 2. Copy and unpack the distribution package into a directory with the following command: tar xvf vg500.1.0.depot.tar 3. To install the package, enter the following command: swinstall -x autoreboot=true -s DEPOT vg500 where DEPOT is the full path of the source depot. The machine will be rebooted automatically when the installation is complete After installation, the following are added to the system /opt/vli/lib/libvli.sl.2.0 /opt/vli/lib/libvli.sl (a link to libvli.sl.2.0) /opt/vli/lib/libvliopengl.a /opt/vli/include/vli.h /opt/vli/include/vli_c.h /opt/vli/include/vliopenglcontext.h /usr/bin/loadVG /usr/bin/vg500_control /sbin/init.d/startVG /usr/conf/lib/vg500.o /usr/conf/master.d/vg500_master /opt/vli/doc/VolumePro/*pdf /opt/vli/doc/VolumePro/test/ {sanity.cpp,Makefile,xvgtest} /usr/man/man5/vli.man /usr/man/man5/vg500_control.man 4. /opt/vli/doc/VolumePro/test has a test application called xvgtest Change the permissions of xvgtest by typing: chmod +x /opt/vli/doc/VolumePro/test/xvgtest 5. Run xvgtest 6. Compile and run the sanity program sanity.cpp using a sample makefile. The makefile, sanity.cpp and sample datasets are located in the directory /opt/vli/doc/VolumePro/test. More data sets (.vox) are available on the CD-ROM. 6. On the VolumePro CD, Unix_SDK/test.tar.gz contains more test/sample code. Note: This does not include a sample makefile to compile on local machine (see KNOWN ISSUES / LIMITATIONS below) REMOVING VOLUMEPRO SOFTWARE =========================== To remove the package from the system, enter the following command: swremove -x autoreboot=true vg500 This removes the VolumePro software and reboots the machine. SETTINGS ========== 1. Change Max Angle Deviation settings in csh setenv DEFAULT_MAX_ANGLE_BEHAVIOUR 1 If the value is greater than 1, VLI will adjust the value of the angle to avoid the Max Angle Deviation. (VLI 1.2 behavior) If the value is 0, VLI will return kVLIErrMaxAngleDeviation error. (VLI 2.0 behavior) 2. Set True size False = 0 (Performance get faster, VLI 1.2 behavior): setenv VLItrue_size=0 (for csh and tcsh) set VLItrue_size=0 (for sh and bash) This setting allows VLI to skip rendering small and very small sub-volumes of a large volume when rendering. When the large volume is split into sub-volumes for rendering, sub-volumes with one or more dimensions less than 32 voxels will be skipped. For example, a 512x512x512 volume will be rendered as eight 256x256x256 sub-volumes, with subvolumes with sizes of 256x256x6, 256x6x6 and 6x6x6 skipped. (This curious arithmetic is caused by the requirement of a three voxel overlap when splitting a volume into sub-volumes.) Set true size to True = 1 (Default setting, VLI 2.0 behavior): setenv VLItrue_size=1 (for csh and tcsh) set VLItrue_size=1 (for sh and bash) This setting asks VLI to render the full size of the volume, even when this requires rendering a number of small and very small sub-volumes. VLItrue_size only makes a difference when one or more dimensions of the volume are greater than 509. LIST OF THE FIXED BUGS ======================= 1. Opacity issue Opacity correction for Super sampling is fixed. 2. Lighting did not follow the volume rotation with Emissive 0. Lighting direction is now corrected to follow the camera. 3. Memory leak issues The Memory leaks in VLI are corrected. 4. Max Angle Behavior on and off switch. The switch to select either display next possible lender angle or return error. 5. VLItrue_size on and off swith. Now you can set VLItrue size values. (See SETTINGS above) 6. Large Volume Load Software changed to load volume over 512x512x512~. 7. Performance improvement. NEW FEATURES ============ 1. 7th point feature (see 7th_point.txt in CD/Docs or from our web site). KNOWN ISSUES / LIMITATIONS ========================== 1. LOWERED PERFORMANCE You may experience lowered render performance on supervolumes. The HP implementation of OpenGL appears to have trouble rendering with large (1024x1024 and up) textures. 2. OCCASIONAL KERNEL CRASH DURING INSTALLATION OR UPGRADE Upon uninstallation of the driver the kernel seems to be broken occasionally. Even we could not recreate the problem enough to identify the actual cause, each time we see the problem we find that one (or more) of the partitions is nearly full. The /stand and /tmp partitions are critical but ensure there is some room on each partition. If you have this problem 1) Boot to the backup kernel, /stand/vmunix.no_vg500. 2) Make sure there is plenty of room on all partitions using df or bdf. 3) Remove: /stand/build/system /stand/system 4) Copy /stand/vmunix.no_vg500 to /stand/vmunix 5) Reboot using the default kernel 6) Re-install our depot. 3. The xvgtest in CD\Unix_SDK\test.tar.gz does not include a sample makefile to compile on local machine. 4. User Guide / documentation are not updated with the latest version. 5. See NOTES below for more HP-UX only related issues. NOTES ===== 1. BOOTING A BACKUP KERNEL ========================== To boot the backup kernel made in the install procedure, from the system console: 1. During the initial boot sequence, at the prompt: "Processor is booting from first available device. To discontinue, press any key within 10 seconds." Hit any key. You will be presented with a 'Main Menu', 2. Type: bo for boot. 3. At the prompt "Interact with IPL (Y, N, Q)?>" type: y 4. At the prompt "ISL>" type: hpux /stand/vmunix.no_vg500 The boot procedure will then continue with the backup kernel. 2. DRIVER DAEMON ================ For each board it is necessary to have a daemon running. Normally these daemons are created at boot time by the startVG script. To start a daemon manually: /usr/bin/vg500_control [board] -D Where [board] is the number of the board, starting with 0. 0 is the default. To stop a daemon: /usr/bin/vg500_control [board] -K The daemon(s) show up in system (e.g. ps -e or top) as vg500_control. 3. COHERENT/NON-COHERENT SYSTEMS ================================ This driver was written and tested on a B2000, 9000/785 machine. This machine utilizes the coherent I/O architecture. Although non-coherent support is included in the sources it is currently disabled until it has been tested. If run on a non-coherent system, this error message will be displayed on the console: Running on a non-coherent system. Not currently supported 4. DATA SEGMENT SIZE ==================== The default kernel settings are for a data segment size of just 64MB. This will cause problems when using super volumes, usually appearing as SIGABRT signals and core dumps. Increasing this size is recommended. The size of the data segment is controlled by the 'kernel tunable' maxdsiz. This can be done either using the utility sam or by directly editing /usr/conf/master.d/core-hpux. Look for the line starting with maxdsiz and increase the value from the default of 0x04000000 to 0x10000000 (256MB) or higher. You will need to rebuild the kernel and reboot. sam can do this directly or follow the steps for installing the driver above as this will generate a kernel with the new setting. 5. TESTING ========== Testing with xvgtest: * Engineering has seen a problem where the vg500 can crash in rare cases. This problem has been identified on non-HP machines but we believe that the HP port may be susceptible. We have therefore set the initial drop of the HP-UX driver to use alternate scheduling. This causes the driver to run slower dropping the frame rate in the xvgtest. To set full speed scheduling for testing: vg500_control -t 16000 We do not recommend using this mode for anything other than speed testing at this point. To restore the alternate scheduling, type: vg500_control -t 1048586