Okay, i've made some improvement. You can find them in my bullet_bug branch.
In vivec i had 35 FPS, i have 45 FPS now.
It was pretty simple in fact. I just modified a little the way mesh were loaded.
It can be furthered optimized the same way rendering was optimized: batching. But this require much more work.
Another possiblity is to use multithread in Bullet. I've never done it, so I don't know if we will gain much (we might even loose perfs). But that should be fairly easy to implement (actually, i think i only have to change 2 or 3 lines)
The multithreading solution sounds interesting. We should explore it first. If it helps, we should try to find some of those guys who got a drop to 1 fps or so and see if it makes OpenMW usable again for them. If it doesn't we also have to explore the batching solution.
I did some more benchmark. I don't think we will be able to gain much, even with multi-thread or batching. The reason is that the FPS is now fairly the same when in GUI mode (no physic i believe) and in normal mode (with physic). I agree that before, the performance hit of physic was rather big, but it looks more GPU limited to me now (at least on my computer).
Could anyone try my changes, and do some benchmark? Especially those who had 1-2 FPS.
This is really strange. With your bullet_bug branch I actually get ca. 1 fps less than when I run openmw from the master branch. Could be related to other fixes which aren't included in the bullet_bug branch thought.
Sadly i only have my 8 years old acer aspire 1510 at the moment which barely gets over 25 fps after loading Beshara with physics on. When the console is open and thus physics aren't calculated it gets nearly 150 fps thought. In Vivec i get around 30-40 fps without physics and constant 0 fps with physics on.
I think the bug could be related to bullet itself and not OpenMW since you and Zini ( although he uses ubuntu ) seem to get very good performence even in exterior cells while many other ubuntu users like myself get major slowdowns when physics are on.
I would love to get this bug fixed and since i've got holidays i've a lot of free time so I can run some tests.
Just for reference here are the specs of my laptop:
AMD Athlon 64 Processor 3000+
2 GB DDR2 Ram
Nvidia Geforce FX Go5700 with 64mb video ram
I'm running Ubuntu Lucid 10.04 and I'm using a self compiled Bullet 2.78 library.
It might not be a bug. Maybe your computer is simply to old. Could you try some bullet demo and see if you have normal FPS?
And could you try on Windows?
I've rebuild bullet and ran some of the demos. They all ran astonishingly fluid and i could only cause fps drops that came close to the ones in OpenMW by constantly throwing boxes in demos with very complex moving objects.
I'm pretty sure that these slowdowns are a bug and that they appear in interior cells aswell they just aren't as big.
Since I only have windows installed on my desktop and can't access for the next 2 weeks i can't test that atm.
That is going to be tricky as I cannot reproduce the bug.
So I will try to change things in my branch, and I will ask you to test them, if you don't mind.
Note: I'm on Holiday next weeks, so i don't know if i will have Internet yet.
I don't mind, actually I'm all for it. Since we know so little about this bug testing seems to be the best method of tracking it down.
Gus, what objects is the physics system being applied to?
I think all MWClass'es but creature, creaturelevlist itemlevlist and npc (but not sure)