About Middleware

A generic talk on the OpenMW project.
User avatar
Site Admin
Posts: 1193
Joined: 05 Aug 2011, 22:21
Location: Wroclaw, Poland

About Middleware

Post by lgromanowski » 21 Aug 2011, 20:52

gnomesrule19 wrote: I'm wondering if the middleware in OM could be ran across a quad processor. According to this page http://forums.leasticoulddo.com/index.p ... opic=31866 it should be possible to assign different programs to different processor cores. I do not know if this could be done with middleware but it would be cool to know :D.
Zini wrote: Seems you are mixing things up here. Do you mean assign different threads to different processor cores?

There isn't that much point in doing that. A good scheduler should handle this task on its own. Obviously that only works if there are enough threads.

I assume by middleware you mean OGRE (the rendering engine). OGRE is mostly single-threaded. It can handle some background resources loading in another thread, but that's it mostly.

I can imagine some other candidates for separate threads. Maybe the sound system or a part of the AI. Maybe there are more possible candidates. We will have to investigate that eventually.

Right now OpenMW is not making good use of a multi-core CPU.
gnomesrule19 wrote: Thank you :D that's exactly what i wanted to know.
Right now OpenMW is not making good use of a multi-core CPU.
That's sad though, isn't that the major performance cap in Morrowind? Though I suppose it it will still be more efficient.
I can imagine some other candidates for separate threads. Maybe the sound system or a part of the AI. Maybe there are more possible candidates. We will have to investigate that eventually.
It would be awesome if OM could run ogre on one thread while other aspects ran on another. I imagine that it would be wishful thinking to be able to fully utilize a quad processor on it though. :roll:
Hircine wrote: the lowest spec machine that OM is targeting is probably something like this:

MW in your pocket would be epic to the say the least.

which from what i have seen is a dual core, but we want this running on older machines like P4's. so fully utilizing multiple cores is probably something for a post 1.0 release.
Zini wrote: Lol! Cute, but I wouldn't hold my breath. At least it would require some porting effort.

The processor is clocked a bit low, but on the other hand it is an ARM, which speaks in favour of it. But I don't see anything in the specs about it having more than one core.
The amount of RAM is a bit low, and I have serious doubts about the flash memory (I assume, that is the hard disc replacement).
The minimum requirements for MW are 1 GB of HD space. There is not much we can do to reduce it. It might still be possible to run OpenMW, but probably not with an esm of the size and complexity of the original MW.
Hircine wrote: the TI data sheets mention dual core, but that might be talking about a different model in the family.

there is an ability to add more flash memory space. :D
Dual SDHC card slots (up to 64GB of storage currently)
Zini wrote: Well, then at least there is a chance that this might succeed. But it would still require a substantial amount of work. We might consider post 1.0, if we can find a Pandora developer, who is willing to join us.
Hircine wrote:
Windows ME/98 128 MB RAM
Windows XP/2000 256 MB RAM
500 MHz Intel Pentium III, Celeron, or AMD Athlon processor
8x CD/DVD-ROM Drive
1 GB free hard disk space
Windows swapfile
DirectX 8.1 (included)
32MB Direct3D compatible video card with 32-bit color support and DirectX 8.1 compatible driver
DirectX 8.1 compatible sound card
Keyboard, Mouse
Minimum specs required. so OM should be able to play on at least this. which fits into pandora quite nicely :P
Hircine wrote: it looks like you would have to use OpenGL ES 1.1 rendersystem in OGRE.
not sure if there is 2.0 Ogre support yet. portable stuff isn't very popular, except for iphone stuff.

i guess the whole problem is porting each dependency to ARM architecture.


it would definitely require a whole nother team.

but as soon as its done im buying a pandora. but not before :P
Zini wrote: The ARM shouldn't be much of a problem, unless some of the libraries are doing something funky with endianness. We are working with a high level language, that abstracts away such details as CPU instruction sets nicely.

Most work would probably need to go into a new input system (I don't see people playing on a Pandora with a mouse) and special optimisations for the limited hardware resources.

OpenGL ES might be an issue. We are currently not doing anything notable with shaders, but that will change eventually. I have no idea what shader models are supported by which OpenGL ES version and neither do I know what the current state of OpenGL ES in Ogre is. These would be the first things to research, before someone can have a go at a Pandora port.

Sounds doable overall, but I don't dare to predict what kind of performance we would get.
Hircine wrote: fair enough, now get back to work :P

we can dream later...
best regards,