Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

SGI IRIX

Information, contacts and source code for ports to Linux, Windows, etc.

Moderators: winston, another_commander

User avatar
Spooky
Dangerous
Dangerous
Posts: 108
Joined: Sun Feb 12, 2006 5:05 pm
Location: Portsmouth, UK
Contact:

Post by Spooky »

Unfortunately I only get 35fps. This is due to the different hardware timer support in IRIX (one of the pitfalls of a true realtime operating system). Unless I ever get round to enabling CLOCK_SGI_FAST as the default Posix timer in SDL then it's never gonna get any quicker than that... at least it stays at 35fps :wink:

This machine is an SGI Origin 2000 and has 16 x 300 Mhz R12K MIPS processors with 8MB of cache each, 13.2 GB of RAM, a few 75G 10K SCSI drives and 10 x 10/100 network cards. It's also proper ccNUMA (not pretend NUMA or 'hypertransport' :twisted:) and is in fact two desksides craylinked to a single system image.

Image

It's my main 'workstation', it also hosts int13h.com, an IRC server, a MAngband server amongst a million other things and is a truely multiuser system... and it's not beige :D
Spooky
www.int13h.com
Evil Genius

The most merciful thing in all the world is the inability of the human mind to correlate all of its contents.
User avatar
Rxke
Retired Assassin
Retired Assassin
Posts: 1757
Joined: Thu Aug 12, 2004 4:54 pm
Location: Belgium

Post by Rxke »

Aghlaghlaghl....

(wipes drool of keyboard)
User avatar
winston
Pirate
Pirate
Posts: 731
Joined: Mon Sep 27, 2004 10:21 pm
Location: Port St. Mary, Isle of Man
Contact:

Post by winston »

Spooky wrote:
Unfortunately I only get 35fps. This is due to the different hardware timer support in IRIX (one of the pitfalls of a true realtime operating system). Unless I ever get round to enabling CLOCK_SGI_FAST as the default Posix timer in SDL then it's never gonna get any quicker than that... at least it stays at 35fps :wink:
I'd be interested to know what frame rate you CAN get. Already that beats a 1GHz P3 laptop (probably due to better OpenGL hardware, since Oolite will only really use 1 CPU the other 15 CPUs otherwise don't give you an advantage over the P3 laptop).

My weird hardware is a MicroVAX (which would be well specced when it was new). It struggles with the authentication handshake with SSH :-) (I also have a 333MHz UltraSPARC II system, but the OpenGL hardware isn't worth a bucket of warm spit).
User avatar
Spooky
Dangerous
Dangerous
Posts: 108
Joined: Sun Feb 12, 2006 5:05 pm
Location: Portsmouth, UK
Contact:

Post by Spooky »

Once I'm done with getting a working static build I'll make the changes to SDL, they are straight forward enough. I'm not sure how much quicker I'll get though because the MGRAS card in this machine is really pretty puny. I just wish Oolite wasn't objc code because then I could use the MIPSPro compilers and get some serious optimisations and auto-parallisation (yes, the compiler would attempt to break loops out into individual threads but obviously it's a bit on the 'results may vary' side).

If we're talking GL hardware then my wonderfully obsolete Onyx Reality Engine might be worth a quick compile on. Its only got 4 x 195Mhz R10K processors but it does have a 4 raster manager reality engine 2 graphics set. It's capable of running CAVE environments and reality rooms... now if only I had one of those, I'd love to see total emersion Oolite :D
Spooky
www.int13h.com
Evil Genius

The most merciful thing in all the world is the inability of the human mind to correlate all of its contents.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

Spooky: you could try the Portable Object Compiler, which transforms Objective-C into C code. It uses its own dialect of Objective-C and the author has a dogmatic dislike against OpenStep, though, so I don’t know whether it’d work on the Oolite source or if the output would work with the GNU ObjC runtime.
User avatar
Spooky
Dangerous
Dangerous
Posts: 108
Joined: Sun Feb 12, 2006 5:05 pm
Location: Portsmouth, UK
Contact:

Post by Spooky »

Ahruman: I'd quite like to try and keep up to date with the releases of Oolite and I think trying to convert objc to C on an ongoing basis may be more hassle than it's worth. It's not like it's unplayable and once I sort the SDL problem I'm sure it will be positively splendid.
Spooky
www.int13h.com
Evil Genius

The most merciful thing in all the world is the inability of the human mind to correlate all of its contents.
User avatar
Spooky
Dangerous
Dangerous
Posts: 108
Joined: Sun Feb 12, 2006 5:05 pm
Location: Portsmouth, UK
Contact:

Post by Spooky »

Oh dear :D

I switched over the timer routine in SDL_systimer to use CLOCK_SGI_FAST and the frame rate went all to hell. It bounces around between 18 and 29 and looks *REALLY* choppy. I think I might put this one into the 'to be investigated' box and go back to good old 35fps :wink:
Spooky
www.int13h.com
Evil Genius

The most merciful thing in all the world is the inability of the human mind to correlate all of its contents.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

Ideally, POC would simply be a pre-processing step during compiling. After all, that’s how Objective-C (and C++) was originally used.
User avatar
Spooky
Dangerous
Dangerous
Posts: 108
Joined: Sun Feb 12, 2006 5:05 pm
Location: Portsmouth, UK
Contact:

Post by Spooky »

Ok, I'm getting a step closer to a stand alone package. I've got all the libraries sorted, I've setup a simple execution script with all necesary environment variables to point to the libraries (hacky, but it works for now) and GNUstep. However when I try to run the app I get...

BlueThing 155# ./oolite
2006-02-15 10:00:09.787 oolite[208478] Disallowed time zone name `GMT0BST-1,M3.5.0/1,M10.5.0/2'.
2006-02-15 10:00:09.787 oolite[208478] Using time zone with absolute offset 0.
2006-02-15 10:00:09.786 oolite[208478] File NSUserDefaults.m: 549. In [NSUserDefaults +standardUserDefaults] Improper installation: No language locale found
2006-02-15 10:00:09.793 oolite[208478] Did not find correct version of backend, falling back to std.
2006-02-15 10:00:09.795 oolite[208478] NSApplication.m:271 Assertion failed in initialize_gnustep_backend. Unable to find backend back
./oolite: Uncaught exception NSInternalInconsistencyException, reason: NSApplication.m:271 Assertion failed in initialize_gnustep_backend. Unable to find backend back

Does anybody have any pointers for bundling a cut down version of GNUstep before I set about re-inventing the wheel? :wink:
Spooky
www.int13h.com
Evil Genius

The most merciful thing in all the world is the inability of the human mind to correlate all of its contents.
User avatar
winston
Pirate
Pirate
Posts: 731
Joined: Mon Sep 27, 2004 10:21 pm
Location: Port St. Mary, Isle of Man
Contact:

Post by winston »

Yes. Have a look and see what's included in the oolite-linux deps directory (a link with WebSVN to where you need to look:)
http://svn.berlios.de/wsvn/oolite-linux ... rev=0&sc=0

See that GNUstep directory? That entire tree needs to be in the user's $HOME.
Also, in your installer script don't forget to:

mkdir -p $HOME/GNUstep/Library

or it will fail with an incomprehensible error message box.

But the long and the short of it - look at the Linux tarball binary packager. In the SelfContainedInstaller directory you'll find a shell script called 'install' as well as 'oolite.src' which is a shell script fragment. 'install' turns 'oolite.src' into an executable shell script called 'oolite' which sets the environment up correctly, as well as creating $HOME/GNUstep et al.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

Winston: any luck in throwing out NSApplication in the SDL build?
User avatar
Spooky
Dangerous
Dangerous
Posts: 108
Joined: Sun Feb 12, 2006 5:05 pm
Location: Portsmouth, UK
Contact:

Post by Spooky »

winston:

Ok, I've duplicated your install script (That's a damn fine script by the way, simple and effective.) and .tar's and it installs fine. However on machines that I haven't previously installed GNUstep on I still get the errors (I also get the errors if I move my initial GNUstep folder)
2006-02-15 14:39:14.791 oolite[334867] Disallowed time zone name `GMT0BST-1,M3.5.0/1,M10.5.0/2'.
2006-02-15 14:39:14.791 oolite[334867] Using time zone with absolute offset 0.
2006-02-15 14:39:14.790 oolite[334867] File NSUserDefaults.m: 549. In [NSUserDefaults +standardUserDefaults] Improper installation: No language locale found
2006-02-15 14:39:14.795 oolite[334867] Did not find correct version of backend, falling back to std.
2006-02-15 14:39:14.797 oolite[334867] NSApplication.m:271 Assertion failed in initialize_gnustep_backend. Unable to find backend back
./oolite: Uncaught exception NSInternalInconsistencyException, reason: NSApplication.m:271 Assertion failed in initialize_gnustep_backend. Unable to find backend back
So far however I'm at a loss to work out why. There is a mention of a similar problem in the Oolite-Linux folder https://bb.oolite.space/viewtopic.php?t=926&. That proved to be a missing library affecting the gnustep backend. My backend file (GNUstep/System/Library/Bundles/libgnustep-back-010.bundle) is linked only to core IRIX libraries...
libGL.so => /usr/lib32/libGL.so
libXmu.so => /usr/lib32/libXmu.so
libXext.so => /usr/lib32/libXext.so
libX11.so.1 => /usr/lib32/libX11.so.1
libGLcore.so => /usr/lib32/libGLcore.so
libXsgivc.so => /usr/lib32/libXsgivc.so
libc.so.1 => /usr/lib32/libc.so.1
libXt.so => /usr/lib32/libXt.so
libgen.so => /usr/lib32/libgen.so
libm.so => /usr/lib32/libm.so

...so that scuppered that little plan :(

Getting desperate I ldd'ed the oolite executable and all of the required libraries and everything looks to be good. I've recursive grep'ed through the entire oolite-deps/GNUstep folder for mentions of my original install location and the only place it shows up is in the binary files themselves ergo my belief that I've done something retarded in my GNUstep install.

Without sounding like a complete idiot (or anymore than usual) can you give me your process for compilation and installation of GNUstep?
Spooky
www.int13h.com
Evil Genius

The most merciful thing in all the world is the inability of the human mind to correlate all of its contents.
User avatar
winston
Pirate
Pirate
Posts: 731
Joined: Mon Sep 27, 2004 10:21 pm
Location: Port St. Mary, Isle of Man
Contact:

Post by winston »

Spooky wrote:
Without sounding like a complete idiot (or anymore than usual) can you give me your process for compilation and installation of GNUstep?
- download GNUstep startup
- untar
- cd into untarred archive
- PATH=$PATH:.
- make

and that's it.

The warnings you see up to and including 'no language locale found' are normal for the minimalist cut-down GNUstep installation I package up with the installer; the line immediately after that in the log should be 'Initializing SDL'.

When I get home I'll post the ls -laR of my minimalist GNUstep directories so you can compare.
User avatar
Spooky
Dangerous
Dangerous
Posts: 108
Joined: Sun Feb 12, 2006 5:05 pm
Location: Portsmouth, UK
Contact:

Post by Spooky »

Hmmm, this is starting to get a little frustrating.

I've rebuilt my entire development kit onto another machine. Built all the libraries, built GNUstep from the startup package using default directories. I've not even attempted to slimdown the GNUstep dependancies and bugger me backwards I'm still getting the same error...
2006-02-17 13:22:28.567 oolite[352055] Did not find correct version of backend, falling back to std.
2006-02-17 13:22:28.568 oolite[352055] NSApplication.m:271 Assertion failed in initialize_gnustep_backend. Unable to find backend back... etc etc etc, yackety schmakety blah blah blah
Yet once again if I replace orignal installed GNUstep folder it miracleously springs into life. I've hacked a symbolic link from Oolite/oolite-deps/GNUstep to /usr/GNUstep and that works fine... maybe I'm missing an environment variable. All I know is there has to be some other reference somewhere that I'm missing. Here's my minorly modified export section from your install script.
export GNUSTEP_FLATTENED=yes
export GNUSTEP_HOST=mips-sgi-irix6.5
export GNUSTEP_HOST_CPU=mips
export GNUSTEP_HOST_OS=irix6.5
export GNUSTEP_HOST_VENDOR=sgi
export GNUSTEP_ROOT=$OOLITE_ROOT/$TOPLEVEL/oolite-deps/GNUstep
export GNUSTEP_PATHLIST=$OOLITE_ROOT/$TOPLEVEL/oolite-deps/GNUstep:$OOLITE_ROOT/$TOPLEVEL/oolite-deps/GNUstep/Local:$OOLITE_ROOT/$TOPLEVEL/oolite-deps/GNUstep/System
export GNUSTEP_USER_ROOT=$OOLITE_ROOT/$TOPLEVEL/oolite-deps/GNUstep
export GNUSTEP_SYSTEM_ROOT=$OOLITE_ROOT/$TOPLEVEL/oolite-deps/GNUstep/System
export GNUSTEP_NETWORK_ROOT=$OOLITE_ROOT/$TOPLEVEL/oolite-deps/GNUstep/Local
export GNUSTEP_LOCAL_ROOT=$OOLITE_ROOT/$TOPLEVEL/oolite-deps/GNUstep/Local
export LD_LIBRARY_PATH=$OOLITE_ROOT/$TOPLEVEL/oolite-deps/lib

It's looking like this is going to elude me :(
Spooky
www.int13h.com
Evil Genius

The most merciful thing in all the world is the inability of the human mind to correlate all of its contents.
User avatar
winston
Pirate
Pirate
Posts: 731
Joined: Mon Sep 27, 2004 10:21 pm
Location: Port St. Mary, Isle of Man
Contact:

Post by winston »

It's probably not environment - it's probably a missing (and almost certainly empty) directory.
Post Reply