Extremely low performance

General discussion regarding the OpenMW project.
For technical support, please use the Support subforum.
Post Reply
sadpepper
Posts: 2
Joined: 07 Oct 2016, 22:43

Extremely low performance

Post by sadpepper »

I'm running Windows 10, my laptop has 8gb RAM and my graphics card is a 2gb GeForce GT 630m. The only graphic mod I'm using is the Morrowind Visual Pack.
Is there something wrong with my specs?
SquireNed
Posts: 403
Joined: 21 Dec 2013, 22:18

Re: Extremely low performance

Post by SquireNed »

Have you tried opening up the profiler to see what is going on in terms of where the time per frame is going?

MVP might be changing the model collision meshes, which can cause performance issues with OpenMW's physics engine (a problem with the third-party library itself), but my bet is that you might be looking at either a CPU or GPU bottleneck (630m should be able to run OpenMW, but not at high settings). Likewise, your machine may be attempting to use internal, rather than discrete, graphics, and slowing down as a result.
User avatar
lysol
Posts: 1513
Joined: 26 Mar 2013, 01:48
Location: Sweden

Re: Extremely low performance

Post by lysol »

SquireNed wrote:(630m should be able to run OpenMW, but not at high settings)..
I have a 425m on my laptop, and I run OpenMW with around 40-50 fps with the water shader maxed (although I can't remember the other settings. I should also mention that the native resolution of that toaster of a screen is 1366x768), so It should be fine with a 630m.
sadpepper
Posts: 2
Joined: 07 Oct 2016, 22:43

Re: Extremely low performance

Post by sadpepper »

SquireNed wrote:Likewise, your machine may be attempting to use internal, rather than discrete, graphics, and slowing down as a result.
I messed around with the settings and got the game to run with the dedicated graphics card but the game crashed before it could even start. After this I had it running with the integrated graphics card and I had a huge gain in fps, I'm running it now on 40-60 fps lol.
JesseMeyer
Posts: 11
Joined: 19 Sep 2013, 00:42

Re: Extremely low performance

Post by JesseMeyer »

What's your rendering resolution? Your GPU is very low end, so if you're fill rate bound, lower the resolution.
User avatar
Vrav
Posts: 6
Joined: 29 Oct 2016, 21:41

Re: Extremely low performance

Post by Vrav »

I also get 30-80 exterior fps on linux with a GTX 960, with water shader off. Usually over 100fps indoors.

I'm curious what current specific performance bottlenecks are. I'm still reading about how OSG works, trying to understand the OMW codebase. But considering draw performance tanks when viewing a scene with multiple unique actors or a lot of props, I wonder about where in the code one would start to optimize something like GL state switching.

Or otherwise measure the performance impact of different things. For example, if drawing is slow when actors are on screen, is it something like skeletal animation code, or texture switching that's bringing things down? If it's something like texture switching, considering all the bodyparts and armor parts being on their own textures, I ponder the possibility of some dynamic-ish cacheing of item and character textures to texture atlases (or TextureArrays, or both), allowing draw calls to be batched rather than binding textures and drawing uniquely for each bodypart, a small cost that adds up quickly.

Maybe OSG handles that automatically already? I don't understand it yet.
raven
Posts: 66
Joined: 26 May 2016, 09:54

Re: Extremely low performance

Post by raven »

Vrav wrote:I also get 30-80 exterior fps on linux with a GTX 960, with water shader off. Usually over 100fps indoors.

I'm curious what current specific performance bottlenecks are. I'm still reading about how OSG works, trying to understand the OMW codebase. But considering draw performance tanks when viewing a scene with multiple unique actors or a lot of props, I wonder about where in the code one would start to optimize something like GL state switching.

Or otherwise measure the performance impact of different things. For example, if drawing is slow when actors are on screen, is it something like skeletal animation code, or texture switching that's bringing things down? If it's something like texture switching, considering all the bodyparts and armor parts being on their own textures, I ponder the possibility of some dynamic-ish cacheing of item and character textures to texture atlases (or TextureArrays, or both), allowing draw calls to be batched rather than binding textures and drawing uniquely for each bodypart, a small cost that adds up quickly.

Maybe OSG handles that automatically already? I don't understand it yet.
How many fps do you get when disabling world rendering (toggleWorld console command)? From the little bit of testing I did, my impression is that the game itself is pretty much CPU limited, not the rendering in particular.
User avatar
psi29a
Posts: 5361
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Extremely low performance

Post by psi29a »

This is true, cpu-bound by the physics... many statics/objects/npcs/monsters means that the CPU is burdened by always testing the bounding boxes.
User avatar
Vrav
Posts: 6
Joined: 29 Oct 2016, 21:41

Re: Extremely low performance

Post by Vrav »

raven wrote:How many fps do you get when disabling world rendering (toggleWorld console command)? From the little bit of testing I did, my impression is that the game itself is pretty much CPU limited, not the rendering in particular.
Ah, I see. I wonder if physics performance can be improved by managing a BVH tree (or if it is already)...
User avatar
AnyOldName3
Posts: 2676
Joined: 26 Nov 2015, 03:25

Re: Extremely low performance

Post by AnyOldName3 »

OpenMW uses the open-source Bullet physics library, and as you can see from its wikipedia page it's the same thing as is used in a lot of serious projects, including AAA games such as GTAV. If there were low-hanging optimisations like BVH trees, they'd have been implemented already.

That said, it's possible that certain optimisations will only work properly if Bullet is used in particular ways which OpenMW isn't doing.
Post Reply