Solaris/Sparc port status + OpenAL integration
by Vincent Cojot · in Torque Game Engine · 07/02/2003 (9:39 am) · 16 replies
Hi everyone,
Just wanted to let you know how the Solaris/Sparc port is going. Things are a little slow but there are many things that work: The dedicated server, some parts of the client and - as of today - TGE attempts to load the Solaris/Sparc version of openal (made it libopenal.so.0) which I got compiled with the native Solaris backend. There are still many things that don't work (textures, memory allocator, etc..) and that will take time to debug but I'm working on it. :) I will most likely be integrating the openal Solaris port under torque/lib/openal/SparcUNIX since it's not available anywhere else for people to download (as it is for win32, linux and macosx). I used the reference code from the following URL: www.garagegames.com/docs/torque.sdk/gstarted/openal.html
Links to the older screenshots:
step.polymtl.ca/~coyote/torque/torque_solaris_20030520_01.jpg
step.polymtl.ca/~coyote/torque/torque_solaris_20030520_02.jpg
step.polymtl.ca/~coyote/torque/torque_solaris_20030520_03.jpg
Thanks for reading,
PS: Oh and btw, there is -no- Sparc machine capable of running TGE at reasonnable speed at this time (maybe people with an XVR-1200 but it's too slow for my XVR-1000).
Vincent S. Cojot
Just wanted to let you know how the Solaris/Sparc port is going. Things are a little slow but there are many things that work: The dedicated server, some parts of the client and - as of today - TGE attempts to load the Solaris/Sparc version of openal (made it libopenal.so.0) which I got compiled with the native Solaris backend. There are still many things that don't work (textures, memory allocator, etc..) and that will take time to debug but I'm working on it. :) I will most likely be integrating the openal Solaris port under torque/lib/openal/SparcUNIX since it's not available anywhere else for people to download (as it is for win32, linux and macosx). I used the reference code from the following URL: www.garagegames.com/docs/torque.sdk/gstarted/openal.html
Links to the older screenshots:
step.polymtl.ca/~coyote/torque/torque_solaris_20030520_01.jpg
step.polymtl.ca/~coyote/torque/torque_solaris_20030520_02.jpg
step.polymtl.ca/~coyote/torque/torque_solaris_20030520_03.jpg
Thanks for reading,
PS: Oh and btw, there is -no- Sparc machine capable of running TGE at reasonnable speed at this time (maybe people with an XVR-1200 but it's too slow for my XVR-1000).
Vincent S. Cojot
#2
07/02/2003 (10:41 am)
That is sweet! Nice work!
#3
07/02/2003 (10:41 am)
That is pretty darn cool if you ask me.
#4
The good stuff (excerpt from ~/.garagegames/torquedemo/console.log:
And now the bad news:
I'm starting to understand -why- I'm getting some rendering problems... :(
Vincent
07/10/2003 (7:39 am)
Couple updates:The good stuff (excerpt from ~/.garagegames/torquedemo/console.log:
//-------------------------- 7/10/2003 -- 15:44:43 ----- Processor Init: SUNW,Ultra-5_10 System (1 CPUs Total), Processor 0 on-line, sparcv9 cpu, sparcv9 fpu, 333 Mhz Math Init: Installing Standard C extensions Not Installing Assembly extensions Sleep latency: 9ms Sleep latency ok, enabling dsleep for lower cpu utilization
And now the bad news:
Video Init: Missing OpenGL function: glColorTableEXT. You may experience rendering problems. Missing OpenGL function: glFogCoordfEXT. You may experience rendering problems. Missing OpenGL function: glFogCoordPointerEXT. You may experience rendering problems. OpenGL display device detected. .... OpenGL Init: Enabled Extensions ARB_multitexture (Max Texture Units: 8) EXT_compiled_vertex_array EXT_texture_env_combine ARB_texture_compression (ARB|EXT)_texture_env_add EXT_texture_filter_anisotropic (Max anisotropy: 2.000000) OpenGL Init: Disabled Extensions EXT_paletted_texture NV_vertex_array_range EXT_packed_pixels EXT_fog_coord EXT_texture_compression_s3tc 3DFX_texture_compression_FXT1 WGL_EXT_swap_control
I'm starting to understand -why- I'm getting some rendering problems... :(
Vincent
#5
Then, all you need is a C compiler to build Mesa for your platform, which should give you access to the whole OpenGL set of functions....
hth (et bonne chance, cher Montrealais !! ;)
07/10/2003 (7:56 am)
Are you using, or have you tried using Mesa to overcome the missing GL functions ? I gather the SPARCs are running a flavor of Unix + X11 ?Then, all you need is a C compiler to build Mesa for your platform, which should give you access to the whole OpenGL set of functions....
hth (et bonne chance, cher Montrealais !! ;)
#6
That's a pretty smart Idea.. Thanks.
I guess I'd take some source from Mesa and check how they implement these functions... That way I'd be able to have a software fallback function if the local OpenGL doesn't provide these functions. Quake II has such a software fallback mode: if you don't have glColorTableEXT, Quake II implements it in software (Shame on me: I should have guessed that earlier as I'm also one of the maintainers of the Solaris/Sparc QuakeII port).
Also, I think that -only- the XVR-1200 400mb video monster from SUN might implement these functions in hardware and I only have access to an XVR-1000 so it might be nice to have fallback software functions like QuakeII does..
(Oh and btw, I live in Europe right now.. :) ).
Vincent S. Cojot
07/10/2003 (8:39 am)
Nicolas,That's a pretty smart Idea.. Thanks.
I guess I'd take some source from Mesa and check how they implement these functions... That way I'd be able to have a software fallback function if the local OpenGL doesn't provide these functions. Quake II has such a software fallback mode: if you don't have glColorTableEXT, Quake II implements it in software (Shame on me: I should have guessed that earlier as I'm also one of the maintainers of the Solaris/Sparc QuakeII port).
Also, I think that -only- the XVR-1200 400mb video monster from SUN might implement these functions in hardware and I only have access to an XVR-1000 so it might be nice to have fallback software functions like QuakeII does..
(Oh and btw, I live in Europe right now.. :) ).
Vincent S. Cojot
#7
**** Q1) What is that?
A1: I'm attempting to port TGE to Solaris/Sparc with OpenGL-1.3 and SDL(included). See:
step.polymtl.ca/~coyote/torque_solaris_20030520_01.jpg
step.polymtl.ca/~coyote/torque_solaris_20030520_02.jpg
step.polymtl.ca/~coyote/torque_solaris_20030520_03.jpg
**** Q4) What's the purpose of that ALPHA test?
A4: It's ALPHA because the client crashes often. I suspect this is because of some missing routines in SUN OpenGL's implementation on some cards and the unavailability of fallback software functions in the TGE source code.
I'd like to hear from people who have access to WildCat-based cards (XVR-1200, XVR-500) to see if it works any better for them.
Here is what I get in TGE's console.log on my SunBlade 2000 and why I'd like to have outside testing (see the missing functions and the disabled extensions):
//-------------------------- 7/11/2003 -- 08:54:22 -----
Processor Init:
SUNW,Sun-Blade-1000 System (1 CPUs Total), Processor 0 on-line, sparcv9 cpu, sparcv9 fpu, 900 Mhz
[...snip....]
Video Init:
Missing OpenGL function: glColorTableEXT. You may experience rendering problems.
Missing OpenGL function: glFogCoordfEXT. You may experience rendering problems.
Missing OpenGL function: glFogCoordPointerEXT. You may experience rendering problems.
OpenGL display device detected.
[...snip....]
OpenGL Init: Disabled Extensions
EXT_paletted_texture
EXT_compiled_vertex_array
NV_vertex_array_range
EXT_packed_pixels
EXT_fog_coord
EXT_texture_compression_s3tc
3DFX_texture_compression_FXT1
(ARB|EXT)_texture_env_add
WGL_EXT_swap_control
**** Q5) What are the system requirements?
The dedicated works fine on all configs but the client is -very- heavy.
Typical configs that might be able to run the demo:
*) Solaris 8 02/02 with OpenGL-1.3 (not tested on Solaris 9).
*) Ultra-60/80 with 450Mhz+ cpus and Expert3D
*) SunBlade 1000/2000 with XVR-500, XVR-1000 or XVR-1200
*) V880z with XVR-4000 graphics (I'd like to hear from you but I guess your results will be disappointing just as for the XVR-1000).
I'd like to hear from people who have an XVR-1200.
Configs that should not even attempt to download the whole stuff (dedicated server will be OK, though) are:
*) -any- SBUS-Based config.
*) PGX32, PGX64, Creator2D/3D, Elite3D, Expert3D-lite cards owners...
That is.. try it if you'd like but don't say I didn't warn you... :)
**** Q6) Files?.
A6:
step.polymtl.ca/~coyote/torque-solaris-demo-20030710.tar.gz
step.polymtl.ca/~coyote/torque-solaris-demo-20030710.tar.gz.md5
(that's the MD5 checksum)
**** Q7) Quick user's guide?
A7:
a) extract that tarball and cd into it.
Notice the 75MB DEBUG binary.
b) Get the cmd-line help with:
./torqueDemo_DEBUG.bin -dedicated -help
c) Verify that the dedicated server starts up fine with:
./torqueDemo_DEBUG.bin -dedicated -console -mission fps/data/missions/test1.mis
d) Try starting the TGE client with:
./torqueDemo_DEBUG.bin -console -windowed -openGL
e) For the adventurous, start the RealWars demo
(warning: starting the stronghold mission will crash the client).
./torqueDemo_DEBUG.bin -console -windowed -openGL -game rw
**** Q8) Where do I report all of the problems I find?
A8: Please report them to me.
Please don't send e-mail to GarageGames staff about this,
the Solaris/Sparc port is 'allowed' but it is NON-OFFICIAL!!!!
**** Q9) what now?
A9: If you read through all of this, you really deserve a medal..:)
07/21/2003 (1:01 am)
For the record, Here's copy of the comp.unix.solaris post. In case you want to host a dedicated server on a Solaris8/Sparc machine and want to test the TGE server stability then this will show you where to get the DEMO binaries.. (edited to fit in 4096 bytes)**** Q1) What is that?
A1: I'm attempting to port TGE to Solaris/Sparc with OpenGL-1.3 and SDL(included). See:
step.polymtl.ca/~coyote/torque_solaris_20030520_01.jpg
step.polymtl.ca/~coyote/torque_solaris_20030520_02.jpg
step.polymtl.ca/~coyote/torque_solaris_20030520_03.jpg
**** Q4) What's the purpose of that ALPHA test?
A4: It's ALPHA because the client crashes often. I suspect this is because of some missing routines in SUN OpenGL's implementation on some cards and the unavailability of fallback software functions in the TGE source code.
I'd like to hear from people who have access to WildCat-based cards (XVR-1200, XVR-500) to see if it works any better for them.
Here is what I get in TGE's console.log on my SunBlade 2000 and why I'd like to have outside testing (see the missing functions and the disabled extensions):
//-------------------------- 7/11/2003 -- 08:54:22 -----
Processor Init:
SUNW,Sun-Blade-1000 System (1 CPUs Total), Processor 0 on-line, sparcv9 cpu, sparcv9 fpu, 900 Mhz
[...snip....]
Video Init:
Missing OpenGL function: glColorTableEXT. You may experience rendering problems.
Missing OpenGL function: glFogCoordfEXT. You may experience rendering problems.
Missing OpenGL function: glFogCoordPointerEXT. You may experience rendering problems.
OpenGL display device detected.
[...snip....]
OpenGL Init: Disabled Extensions
EXT_paletted_texture
EXT_compiled_vertex_array
NV_vertex_array_range
EXT_packed_pixels
EXT_fog_coord
EXT_texture_compression_s3tc
3DFX_texture_compression_FXT1
(ARB|EXT)_texture_env_add
WGL_EXT_swap_control
**** Q5) What are the system requirements?
The dedicated works fine on all configs but the client is -very- heavy.
Typical configs that might be able to run the demo:
*) Solaris 8 02/02 with OpenGL-1.3 (not tested on Solaris 9).
*) Ultra-60/80 with 450Mhz+ cpus and Expert3D
*) SunBlade 1000/2000 with XVR-500, XVR-1000 or XVR-1200
*) V880z with XVR-4000 graphics (I'd like to hear from you but I guess your results will be disappointing just as for the XVR-1000).
I'd like to hear from people who have an XVR-1200.
Configs that should not even attempt to download the whole stuff (dedicated server will be OK, though) are:
*) -any- SBUS-Based config.
*) PGX32, PGX64, Creator2D/3D, Elite3D, Expert3D-lite cards owners...
That is.. try it if you'd like but don't say I didn't warn you... :)
**** Q6) Files?.
A6:
step.polymtl.ca/~coyote/torque-solaris-demo-20030710.tar.gz
step.polymtl.ca/~coyote/torque-solaris-demo-20030710.tar.gz.md5
(that's the MD5 checksum)
**** Q7) Quick user's guide?
A7:
a) extract that tarball and cd into it.
Notice the 75MB DEBUG binary.
b) Get the cmd-line help with:
./torqueDemo_DEBUG.bin -dedicated -help
c) Verify that the dedicated server starts up fine with:
./torqueDemo_DEBUG.bin -dedicated -console -mission fps/data/missions/test1.mis
d) Try starting the TGE client with:
./torqueDemo_DEBUG.bin -console -windowed -openGL
e) For the adventurous, start the RealWars demo
(warning: starting the stronghold mission will crash the client).
./torqueDemo_DEBUG.bin -console -windowed -openGL -game rw
**** Q8) Where do I report all of the problems I find?
A8: Please report them to me.
Please don't send e-mail to GarageGames staff about this,
the Solaris/Sparc port is 'allowed' but it is NON-OFFICIAL!!!!
**** Q9) what now?
A9: If you read through all of this, you really deserve a medal..:)
#8
1) I'm expanding it to Solaris/i86pc (aka Solaris/Intel) because it might help me debug the sparc port to compare how it runs on Solaris/Intel cause I suspect some endianness problems may still be around. This was requested by someone from the Utah-GLX project (namely Philip Brown, leader of the said projet); this will make them happy. :)
2) I'm expanding the torque-solaris port with realmwars-solaris. I noticed just recently there was a realmwars CVS repository on cvs.garagegames.com. So both code bases appear quite similar (for the platform-specific port), I'll be adding Solaris/Sparc and Solaris/i86pc.
That's the target.. No completion or release date yet...
07/21/2003 (1:07 am)
Also, please note that although the Solaris/Sparc port is still full of problems; I am expanding it in the following ways:1) I'm expanding it to Solaris/i86pc (aka Solaris/Intel) because it might help me debug the sparc port to compare how it runs on Solaris/Intel cause I suspect some endianness problems may still be around. This was requested by someone from the Utah-GLX project (namely Philip Brown, leader of the said projet); this will make them happy. :)
2) I'm expanding the torque-solaris port with realmwars-solaris. I noticed just recently there was a realmwars CVS repository on cvs.garagegames.com. So both code bases appear quite similar (for the platform-specific port), I'll be adding Solaris/Sparc and Solaris/i86pc.
That's the target.. No completion or release date yet...
#9
There are endianness checks built into the engine. Use them if they aren't being used.
I've got a Dual 900MHz Sun Blade 2000 with a PGX64 vide card in it. Would make a good server, atleast.
07/21/2003 (6:36 am)
Don't do Solaris/x86, not worth it if you ask me.There are endianness checks built into the engine. Use them if they aren't being used.
I've got a Dual 900MHz Sun Blade 2000 with a PGX64 vide card in it. Would make a good server, atleast.
#10
getting the client to run on solaris is not very useful except for maybe educational reasons (people general dont play games on solaris, but there
is a need to run servers on solaris).
I would focus on getting the server to work first(connecting to it with other clients) and leave the client solaris version as a lower priority.
It is great though to see someone step up to the challenge :)
07/21/2003 (7:50 am)
Just a thought, getting torque to run in dedicated server mode on solaris is a great idea and could be valuable.getting the client to run on solaris is not very useful except for maybe educational reasons (people general dont play games on solaris, but there
is a need to run servers on solaris).
I would focus on getting the server to work first(connecting to it with other clients) and leave the client solaris version as a lower priority.
It is great though to see someone step up to the challenge :)
#11
I have finished backporting my Solaris diffs from the torque CVS head to the realmwars CVS head. After figuring that the executable would die on statue.zip, I managed to get a realwmars dedicated server started. The client is still crashing due to an X_CreatePixmap error but that's nothing I cannot manage. Now, onto the replies.. :)
@Ryan: In the 'industry' (not the game industry), it is true that Solaris/x86 is not very widely used. However, bringing torque to Solaris/x86 is quite simple once you have Solaris/Sparc running and I believe, from the requests I've received that there might be some interest in getting the TGE dedicated server up on Solaris (including x86). BTW, Nice machine.. The dedicated server would fly on that.. If you'd like to try the Solaris/Sparc demo (it includes the dedicated server), please don't hesitate to let me know how it goes...
@TheMartian: Well, I'll fix the server first, of course.. but I'm also attempting to do the client just for the fun of it.. Also, it's no real challenge since I'm no real programmer either.. :)
Funny the things you do when you're bored at work.. :)
Vincent
07/21/2003 (8:35 am)
Just a quickie:I have finished backporting my Solaris diffs from the torque CVS head to the realmwars CVS head. After figuring that the executable would die on statue.zip, I managed to get a realwmars dedicated server started. The client is still crashing due to an X_CreatePixmap error but that's nothing I cannot manage. Now, onto the replies.. :)
@Ryan: In the 'industry' (not the game industry), it is true that Solaris/x86 is not very widely used. However, bringing torque to Solaris/x86 is quite simple once you have Solaris/Sparc running and I believe, from the requests I've received that there might be some interest in getting the TGE dedicated server up on Solaris (including x86). BTW, Nice machine.. The dedicated server would fly on that.. If you'd like to try the Solaris/Sparc demo (it includes the dedicated server), please don't hesitate to let me know how it goes...
@TheMartian: Well, I'll fix the server first, of course.. but I'm also attempting to do the client just for the fun of it.. Also, it's no real challenge since I'm no real programmer either.. :)
Funny the things you do when you're bored at work.. :)
Vincent
#12
As for the x86 argument, if you're running an x86 box you'd be better running Linux or a BSD variant such as OpenBSD or FreeBSD. ;-)
07/21/2003 (12:14 pm)
I should run a dedicated server on my Sparc 20 I have at home. I may want to splurge and get a second 80MHz processor for it, though.As for the x86 argument, if you're running an x86 box you'd be better running Linux or a BSD variant such as OpenBSD or FreeBSD. ;-)
#13
A couple more screenshots (RealmWars Solaris/Sparc)....:
step.polymtl.ca/~coyote/realmwars_solaris_20030723_01.jpg
step.polymtl.ca/~coyote/realmwars_solaris_20030723_02.jpg
step.polymtl.ca/~coyote/realmwars_solaris_20030723_03.jpg
The Solaris client in the RW and TGE ports suffer from the same problems (not surprising since they share a huge code base): They often crash when starting a missing with 'unknown bit length' messages but at least they're now up to the same status:
1) Solaris server appears functionnal with Linux and Solaris clients (haven't been able yet to put a server on the net for your to bang on it).
2) Solaris client is flaky at best because of some stuff I haven't debugged yet but i'm working on it... :)
A couple thoughts:
- While porting the Solaris diffs to RW, I found out that some improvements/bugfixes had not been back-ported from TGE to RW... Is this what is usually happening? I.E: do the GW guys backport fixes/improvements from TGE to RW or the reverse?
- I'll work on verifying ASAP what's the status on Solaris/i86pc because I'd like to know if they remaining bugs are identical are not..
Forgive the poor english (I'm no native english speaker and I'm very tired here caus' of a bad night)... :)
Vincent
07/23/2003 (1:30 am)
Hi,A couple more screenshots (RealmWars Solaris/Sparc)....:
step.polymtl.ca/~coyote/realmwars_solaris_20030723_01.jpg
step.polymtl.ca/~coyote/realmwars_solaris_20030723_02.jpg
step.polymtl.ca/~coyote/realmwars_solaris_20030723_03.jpg
The Solaris client in the RW and TGE ports suffer from the same problems (not surprising since they share a huge code base): They often crash when starting a missing with 'unknown bit length' messages but at least they're now up to the same status:
1) Solaris server appears functionnal with Linux and Solaris clients (haven't been able yet to put a server on the net for your to bang on it).
2) Solaris client is flaky at best because of some stuff I haven't debugged yet but i'm working on it... :)
A couple thoughts:
- While porting the Solaris diffs to RW, I found out that some improvements/bugfixes had not been back-ported from TGE to RW... Is this what is usually happening? I.E: do the GW guys backport fixes/improvements from TGE to RW or the reverse?
- I'll work on verifying ASAP what's the status on Solaris/i86pc because I'd like to know if they remaining bugs are identical are not..
Forgive the poor english (I'm no native english speaker and I'm very tired here caus' of a bad night)... :)
Vincent
#14
07/23/2003 (8:08 am)
Run TGE under CDE... OpenWindows doesn't render things very fast. Seriously. :)
#15
Well, CDE, Gnome and OpenWindows are only environments + window managers, the X server is still /usr/openwin/bin/Xsun in all cases (I know you know that :) ).
Also, Xsun loads the appropriate OGL handler from /usr/openwin/lib/{,sparcv9}/GL/devhandlers/oglSUNW.so in all cases so it shouldn't make a difference unless you get a better graphics card than your PGX64 :) :) :) :)
While I agree that the choice of the environment is mostly a matter of taste, it is unwise to try to flame OpenWindows in front of one of the current Linux XView/OpenLook maintainers.. :) :) :) :) :)
(Well, OK, it's not -that- well maintained since I'm playing with Torque and Quake2 maintenance at this time.. :) :) :) :)).
-*~''^''~*-,._.,-*~''^''~*-,._.,-*~''^''~*-,._.,-*~''^''~*-,._.,-*~''^''~*-,
Vincent S. Cojot, Computer Engineering. STEP project. _.,-*~''^''~*-,._.,-*~
Ecole Polytechnique de Montreal, Comite Micro-Informatique. _.,-*~''^''~*-,.
Linux Xview/OpenLook resources page _.,-*~''^''~*-,._.,-*~''^''~*-,._.,-*~'
step.polymtl.ca/~coyote _.,-*~''^''~*-,._ coyote@step.polymtl.ca
They cannot scare me with their empty spaces
Between stars - on stars where no human race is
I have it in me so much nearer home
To scare myself with my own desert places. - Robert Frost
07/23/2003 (8:34 am)
Hi Ryan,Well, CDE, Gnome and OpenWindows are only environments + window managers, the X server is still /usr/openwin/bin/Xsun in all cases (I know you know that :) ).
Also, Xsun loads the appropriate OGL handler from /usr/openwin/lib/{,sparcv9}/GL/devhandlers/oglSUNW
While I agree that the choice of the environment is mostly a matter of taste, it is unwise to try to flame OpenWindows in front of one of the current Linux XView/OpenLook maintainers.. :) :) :) :) :)
(Well, OK, it's not -that- well maintained since I'm playing with Torque and Quake2 maintenance at this time.. :) :) :) :)).
-*~''^''~*-,._.,-*~''^''~*-,._.,-*~''^''~*-,._.,-*~''^''~*-,._.,-*~''^''~*-,
Vincent S. Cojot, Computer Engineering. STEP project. _.,-*~''^''~*-,._.,-*~
Ecole Polytechnique de Montreal, Comite Micro-Informatique. _.,-*~''^''~*-,.
Linux Xview/OpenLook resources page _.,-*~''^''~*-,._.,-*~''^''~*-,._.,-*~'
step.polymtl.ca/~coyote _.,-*~''^''~*-,._ coyote@step.polymtl.ca
They cannot scare me with their empty spaces
Between stars - on stars where no human race is
I have it in me so much nearer home
To scare myself with my own desert places. - Robert Frost
#16
07/23/2003 (6:40 pm)
I didn't say that because I prefer CDE over OpenWindows. I've 100% written software for sun systems over two years now and I've run into OpenWindows rendering the actual application slower than windows. Give it a shot-you'll see what I'm talking about.
Torque Owner Max C.