SGI: Development

SaVI Satellite Constellation Visualization application

SaVI Satellite Constellation Visualization.

Makes a neat 3D world rendering animation with satelites in orbit assisting with world domination efforts from an SGI system.

File is in my contrib dir:
ftp://ftp.nekochan.net:21/pub/downloads ... ged.tar.gz

Extract to /usr/local/

## Post install fix.. (too lazy to update)
Edit /usr/local/Geomview/bin/sgi/geomview
Update the GEOMROOT= line to read:
GEOMROOT=/usr/local/Geomview

## Execute/Run Savi:
cd /usr/local/savi
cat /usr/local/savi/NEKOWARE-IRIX

Add to path:
/usr/local/Geomview/bin/sgi:/usr/local/savi

Add to env:
export SAVI=/usr/local/savi/

run savi-run from the dir of $SAVI

-Kevin
Installed and started to use it! Thanks

Image: https://www.flickr.com/photos/7958754@N03/24088774292/ (sorry for using of the FVWM in IRIX..)
:O2: :O2: :1600SW: :1600SW: :Indy: :Indy: :Indigo: :Indigo:
Hi jirka,

What prompted you to choose SaVi 1.2.8 and Geomview 1.6.1? Current versions are SaVi 1.4.9, released a couple of days ago, from http://savi.sf.net/ and Geomview 1.9.5 from http://www.geomview.org/

(Interesting packaging choices in your tarball - savi1.2.8 tarball inside duplicated parallel savi/savi1.2.8 directory, etc. Looks like your working directory?)

SaVi hasn't changed much - still has an Irix make option, still works with older Geomviews, though Tcl versions requested might need editing - though Geomview has changed rather more with autoconf and C++ features etc and changes in how it renders to OpenGL, which might affect retrofitting it to older environments and compilers. Getting the latest version of SaVi working on Irix and with any version of Geomview should be pretty straightforward, as Tcl/Tk is pretty much all you need; getting the latest Geomview running might take more work. I don't have access to Irix myself, so I'd be interested in hearing how this goes.

Geomview and SaVi started life on SGI Irix, as it was the only thing with good graphics at the time in the 1990s (pioneering 24-bit accelerated texturemapping). Good to see them still running in the environment that they were created for.

Lloyd Wood
http://savi.sf.net/
Hello Lloyd,

lloydwood wrote: What prompted you to choose SaVi 1.2.8 and Geomview 1.6.1? Current versions are SaVi 1.4.9, released a couple of days ago, from http://savi.sf.net/ and Geomview 1.9.5 from http://www.geomview.org/


It was work by necron95 not by me. I just used it.

Anyway, I tried to compile SaVi 1.4.9 today. Just few small edits were necessary (I had to remove #include <inttypes.h> and had to change color selection in a tcl file). I can provide a patch or binary file if necessary.
And it even works with the old Geomview 1.6.1 from the SGI Freeware.
:O2: :O2: :1600SW: :1600SW: :Indy: :Indy: :Indigo: :Indigo:
Hi jirka,

please send me a diff of your SaVi changes to [email protected] :
diff -c5p savi1.4.9 savi1.4.9-modified > changes-diff.txt
should do it, I think.

What compiler were you using that didn't know about inttypes.h? (gcc -v should say.) I'm guessing there's some sort of #ifdef test I could do based on setting something in src/Makefile_defs_irix. Guessing irix systems are only 32-bit... Or I might only need stdint.h, and not what inttypes.h adds; will need to check how that got in.

(Getting Geomview 1.9.5 compiled and working might be a bit harder because of all its dependencies, but its autoconf should say what's missing.)

Enjoy playing with SaVi!

thanks

Lloyd Wood
http://savi.sf.net
Hello Lloyd,
lloydwood wrote: Hi jirka,

please send me a diff of your SaVi changes to [email protected] :
diff -c5p savi1.4.9 savi1.4.9-modified > changes-diff.txt
should do it, I think.

http://savi.sf.net


I used a gcc from SGI freeware and also the Tcl/Tk and the Geomwiew from the same source. The change file is attached (changes-diff.txt).

Code: Select all

gcc -v
Reading specs from /usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.3/specs
Configured with: ../configure --prefix=/usr/freeware --enable-version-specific-runtime-libs --disable-shared --enable-threads --enable-haifa --enable-libgcj --disable-c-mbchar
Thread model: single
gcc version 3.3


However, when I used the latest gcc from the Nekoware there was no need to modify the code (cchanges-diff2.txt). I just set the Makefiles to add correct path to includes and libraries (/usr/nekoware/include and /usr/nekoware/lib and also added -ltcl8.4 -lth8.4).

There is only one bigger problem: the generated version.c fiel is incorrect (there is a three-line string which is not accepted by the gcc). Thus I did "chmod -w src/version.c" and then "make -i"

That's all and it works as expected. The screenshot is attached. It runs on a SGI Indy (the OS is the IRIX 6.5 and it's the SaVi compiled against SGI Freeware stuff).

Now I'm trying to compile the Geomview...

Geomview 1.95 compiles almost without problems (with the GCC from the Nekoware). The only issue is that IRIX has no "unsetenv". Thus one has to change the line 77 in the src/bin/geomview/x11/gvmain.c to

Code: Select all

putenv("LD_PRELOAD=");


And that's all (except 2+ hours of compitlation time on my poor old O2).

Now I probably have to learn how to make a tardist...
:O2: :O2: :1600SW: :1600SW: :Indy: :Indy: :Indigo: :Indigo:
Yeah, it was just a tarball of my working directory. I thought I would share what I had at that point. I did not make it official at all like a nekoware tardist. I tried later versions and worked backwards with versions until one compiled with little issues (I guess you can call that being lazy).

However, the fact that we have more people involved on this topic makes me feel that I did well inspiring others to work with SGI apps. ;)
The version.c problem is due to the overriding
LINEEND =
override in Savi1.4.9/src/Makefile_defs_irix, as that assumes an older compiler on irix and preserves pre-ISO standard behaviour. Rationale is given in
http://savi.cvs.sourceforge.net/viewvc/ ... x?view=log

Remove that line and its comment, make clean; make ARCH=irix

At this point, probably safe to assume a new gcc is installed and that the override for older gcc is unneeded?

If someone can tell me the exact hex shade of grey to blend (wouldn't be surprised if it was the Geomview shade!), I can code that in to replace SaVi's blue.
Bit tricky to autodetect /usr/freeware/lib or /usr/nekoware - but good to know comments were clear enough to make editing work. What is the best choice of location for a maintained irix system?

In your screenshot, the wiremap continents map is not synced with the texturemap. That shouldn't happen. is that a consistent problem? With geomview 1.9.5 only?

thanks

Lloyd Wood
http://savi.sf.net
Hello Lloyd,

lloydwood wrote: The version.c problem is due to the overriding
LINEEND =
override in Savi1.4.9/src/Makefile_defs_irix


Fixed, it works. No more compilation problems.

lloydwood wrote: At this point, probably safe to assume a new gcc is installed and that the override for older gcc is unneeded?


The SGI Freeware is unsupported for a long time - it is probably safe to assume that installed GCC is from Nekoware.

lloydwood wrote: If someone can tell me the exact hex shade of grey to blend (wouldn't be surprised if it was the Geomview shade!), I can code that in to replace SaVi's blue.


I use "gray93" from X11 colors. The Gimps says that it is #d1d1d1. The "exact" SGI color #c1c1c1. The geomview has #afafaf.

lloydwood wrote: Bit tricky to autodetect /usr/freeware/lib or /usr/nekoware - but good to know comments were clear enough to make editing work. What is the best choice of location for a maintained irix system?


lloydwood wrote: In your screenshot, the wiremap continents map is not synced with the texturemap. That shouldn't happen. is that a consistent problem? With geomview 1.9.5 only?


Older Geomview seems to be OK. I have to to play with more with it.


The final IRIX Makefile is:

Code: Select all


########################################################
#                                                      #
# Set machine type -- suffix for savi                  #
#                                                      #
########################################################
MACH = irix

########################################################
#                                                      #
# set CC to an ANSI C compiler                         #
#                                                      #
# We have also used gcc on SGI irix 5.x machines       #
#                                                      #
#                                                      #
########################################################
CC = gcc

# override line terminator for version.c creation
# LINEEND =

########################################################
#                                                      #
# set TCL_INCLUDES so that the compiler can            #
# find the tcl.h and tk.h                              #
#                                                      #
# if tcl/tk is installed in a standard place           #
# it is not necessary to set this                      #
#                                                      #
########################################################
TCL_INCLUDES = -I/usr/nekoware/include/

########################################################
#                                                      #
# set TCL_LIBS so that the compiler can find           #
# libtcl.a and libtk.a                                 #
#                                                      #
########################################################
TCL_LIBS = -L/usr/nekoware/lib/ -ltk8.4 -ltcl8.4

########################################################
#                                                      #
# Set OTHER_LIBS so that any other stuff needing to    #
# be linked in will be!                                #
#                                                      #
########################################################
OTHER_LIBS = -ldl
:O2: :O2: :1600SW: :1600SW: :Indy: :Indy: :Indigo: :Indigo:
Jirka,

I've made some changes to support IRIX, and the 9 Feb 2016 development snapshot in

http://personal.ee.surrey.ac.uk/Persona ... nreleased/

improves the Makefiles_defs_irix and supports irix desktop colours via testing in tcl/init.tcl. I hope it works more smoothly on IRIX.

On other things, I'd appreciate the text of the gcc 3.3 inttypes error. I view gcc 3.3 as fairly recent, so shouldn't break compiling on that if I can figure out how to avoid it.

It looks like geomview 1.9.5's opengl is rendering the texturemap 180 degrees out on IRIX, while your copy of 1.6.1 isn't, and drawing the vector map over the top of that shows the problem - your screenshot seems to be the default start view, where the vector map is correct. SaVI 1.2.8 does the same vector-over-texturemap, so I think should show the same problem with Geomview 1.9.5 on IRIX. (Complicating this is that there are two releases of Geomview 1.6.1 - IrisGL, and OpenGL. Which one you are using, and what the other 1.6.1 does, is of interest. There used to be a lot of render-implementation-specific hack arounds back in the day.)

In SaVi 1.4.9, dynamic texturemapping (open Coverage view, Rendering menu there -> show coverage in Geomview, start an animation) uses a slightly different rendering method to the same drawing-from-disk option in 1.2.8. Does it produce different results on the various Geomview versions? (Same switch in rendering can be done by editing 1.4.9's oogl/earth.oogl and removing the numesh line at end, uncommenting the STSPHERE line.)
What Geomview 1.8.1 is doing, or finding out where behaviour changed in 1.9.x, would be very interesting.

Also of interest on the buggy rendering front is
geomview -run savi -sun-lighting
-- sunlight point sources have been consistently odd on OpenGL, and may work differently (and better, even correctly, matching what the coverage panel plots and gets texturemapped when sunlight is turned on in both coverage and main menus) on Irix.

thanks for your help!

Lloyd Wood
http://savi.sf.net
Hello Lloyd,

lloydwood wrote:
I've made some changes to support IRIX, and the 9 Feb 2016 development snapshot in

http://personal.ee.surrey.ac.uk/Persona ... nreleased/

improves the Makefiles_defs_irix and supports irix desktop colours via testing in tcl/init.tcl. I hope it works more smoothly on IRIX.


Compiles and works! Thanks!

I will try to study Geomview behaviour as soon as possible (hopefully this weekend).

Jirka
We've had some discussion of this Geomview texturemapping/rendering problem on Irix, but are hampered by not having access to an Irix machine. We'd appreciate input on the geomview-users list. Thanks

http://www.geomview.org/support/