• Welcome to OS2World OLD-STATIC-BACKUP Forum.
 

News:

This is an old OS2World backup forum for reference only. IT IS READ ONLY!!!

If you need help with OS/2 - eComStation visit http://www.os2world.com/forum

Main Menu

Alice 3D programming environment Port Bounty

Started by miturbide, 2008.03.20, 01:53:09

Previous topic - Next topic

miturbide

Martín Itúrbide
OS2World.com NewsMaster
Open Source Advocate

Skype - martiniturbide
Google Talk - martiniturbide@gmail.com

Robert Deed

Strange to support the development of the 3d programming enviroment when we still have no 3d support.  Perhaps someone at IBM could "leak" a copy of the very outdated open GL HW accelerate drivers they created and let someone go to town on them =) 
Yeah!!!  Open GL 1.1!!!


Quote from: miturbide on 2008.03.20, 01:53:09

Supporting thread for the Alice 3D programming environment Port Bounty.

Saijin_Naib

Lol :C I think an OpenGL enviro from scratch would be more likely, and more useful.

Robert Deed

Think either would be about as likely as every wish I ever had for OS/2 to come true tomorrow. =) 

Quote from: Saijin_Naib on 2008.03.20, 07:10:57
Lol :C I think an OpenGL enviro from scratch would be more likely, and more useful.

Saijin_Naib

It could happen! While we are on wishes for eCS, how about system-level drivers for 3dnow/MMX/SSE/SSE2/SSE3/SSE4. I read somewhere that if a Ring-0 driver was coded with these optimizations, the whole system would take advantage of them for every program, not just those enabled for it. This would make eCS FLY! Oh god, such a happy thought.

Robert Deed

I believe they would need to rework the kernel to make use of MMX etc..  I also am not sure how much of an actual performance increase it would result in.  The processor specific code is in the kernel itself.

Quote from: Saijin_Naib on 2008.03.20, 07:34:25
It could happen! While we are on wishes for eCS, how about system-level drivers for 3dnow/MMX/SSE/SSE2/SSE3/SSE4. I read somewhere that if a Ring-0 driver was coded with these optimizations, the whole system would take advantage of them for every program, not just those enabled for it. This would make eCS FLY! Oh god, such a happy thought.

rudi

Quote from: Saijin_Naib on 2008.03.20, 07:34:25
how about system-level drivers for 3dnow/MMX/SSE/SSE2/SSE3/SSE4. I read somewhere that if a Ring-0 driver was coded with these optimizations, the whole system would take advantage of them for every program, not just those enabled for it

Completely wrong. The kernel, however, needs to know about some of these extensions in order to save / restore the content of additional registers upon task switches. This actually slows down the system a bit.


Saijin_Naib

Really? So why do MMX/SSE enabled applications have such large improvements in performance versus their more mundane brethren? I can clearly see the boost in performance by toggling MMX/SSE support in the VALVe Source engine games, sometimes gaining up to 20fps! Why would this not apply to the system if it could take advantage of these features?

rudi

Quote from: Saijin_Naib on 2008.03.20, 17:23:15
I can clearly see the boost in performance by toggling MMX/SSE support in the VALVe Source engine games

Have you ever thought where the speed gain comes from and why mostly games / multimedia / image processing software will benefit from it ? The reason is, that all these extensions employ something called in the Intel language SIMD (single instruction multiple data). This basically means, that for example the same operation can not only be applied to one pixel at at time, but to four or eight. While this can increase performance for *some* applications considerably (provided the programmer has very carefully thought about data layout and alignment in memory and has hand-craft the performance critical routines in assembler), it is hard to see where this type of optimization would help in a classical ring-0 driver (disk, serial port etc) or even in the kernel itself. AFAIK, there is one OS/2 RAM disk device driver around, that uses MMX code for highly optimized memory-to-memory copy operations. But the performance gain is questionable and the driver has to do all kinds of dirty things to keep the OS/2 kernel happy...


Radek

Yes, Saijin, completely wrong  :)
The instructions are specialized. They can boost performance for certain apps (namely, multimedia apps) but they will slow down "normal apps". Some reasons, how it is possible:
- Incomplete instruction set. The SSEx instructions can assign, add, subtract, multiply and divide. FPU can much more. Even the simplest functional relation will want you to write a long code. Note that the instruction set is fairly complete - as far as manipulating video and audio is concerned.
- Additional housekeeping: FXSAVE, FXRSTOR during task switch. Most of the instructions take arguments aligned to 16-byte boundaries. The instrucions almost always manipulate 2, 4, 8, or 16 operands together but your data arrays usually do not contain multiples of 2, 4, etc. operands. Even if they do, you will need to organize access to your data. This means additional code.

Therefore, you can speed up multimedia drivers. You can write an efficient FFT using SSE2 or 3DNow! You can speed up complex arithmetics using SSE2. But you cannot do much more.

Saijin_Naib

Aw :C Well, there goes that idea then. I was hoping that it could possibly help speed up OS/2s HTML rendering and other things like audio/video playback, especially in light of how we lack graphical hardware acceleration, I was thinking the application of MMX/SSE instructions could help improve the multimedia experience greatly. Nevermind me then :\

MrJinx

I'm the person that asked for this software to be added to the bounty and I ask that we stay on topic.
I have done a lot of research on porting Alice 2.0 which is the current source available version. 3.0 is supposed to be out around the 3rd quarter 2008.

Alice is basicly a Java 1.3.1 application that uses a java implementation of python (jython 2.1), QT window tools and the Java 3D runtime. We know there is no port for for Java 3D as specific OS dll's need to be created to link jogl.jar to a given graphics sub-system. (Direct X, Dive, X-Server). This is where the doom and gloom sets in as we have little support for OpenGL. However, We do have a pretty good port of SDL at this point as Alice does not require Hardware GL to operate and on the MAC and Windows versions I have played with works quite well in software rendering modes. SDL has most of the OpenGL software support included and would make a more likely target to get this app working.

Benefits of porting alice:
1. 3D developed worlds can be exported for use in Java and C programming environments including Watcom.
2. Full applications can be developed with Alice and used in a web browser or the alice runtime.

Downside:
1. Alice does not have a 3D object creator, It allows objects to be imported from other 3D development tools and there are large free libraries on the internet for free download but copyright issues require free distribution of created software.

2. 3D studio Max is the primary application Alice supports imports from this would obviously not get ported as well is expensive to purchase. There are some other applications listed as creation tools but I have yet to work with any of them to see if they would be viable solutions to develop purely on the eCS platform with.

In conclusion, The bounty really becomes about, Either creating a jogl.dll support for jogl.jar that either interfaces with the existing OS/2 openGL 1.1(Gold) or the SDL library instead which seems like a better possibility. The rest of the port is all about re-packaging existing java libraries we already have ported in the past.

For those interested, Please download the application @ http://www.alice.org .
There is no installer. You unzip the package in any directory you like and examine the file layout. Java 1.3.1 RT is included as well as Jython. Once you see how they packaged it, They encapsulated all the components to not rely on any external system component prerequisites.         

magog

Quote from: Robert Deed on 2008.03.20, 07:01:19
Strange to support the development of the 3d programming enviroment when we still have no 3d support.  Perhaps someone at IBM could "leak" a copy of the very outdated open GL HW accelerate drivers they created and let someone go to town on them =) 
Yeah!!!  Open GL 1.1!!!

Well IBM did leak it several years ago on one of their FTP-Servers. :D

And maybe I also have leaked it - see this message and also my follow-up:
http://www.os2world.com/component/option,com_smf/Itemid,63/topic,515.msg2485/#msg2485
Regards,
Juergen
*** Java Movie Database - http://www.jmdb.de/