Page 1 of 1

Is my low performance normal?

Posted: 10 Feb 2020, 21:43
by parttimehorse
Hey everyone,

I wasn't really sure what to put in the title but my issue - or maybe it's just a question - is as following: I think the performance on my system is lower than it should be. In fact, I end up with less FPS than with Morrowind + MGE XE with the same mod base (textures, meshes, esp mods) and XE running with a few expensive shaders (see below).

Now, I am aware that Morrowind isn't really a game that scales well with modern hardware, and OpenMW naturally has its limits, too. Have I reached that? Or might my graphics card be underperforming here?

I use a few replacer - such as Morrowind Enhanced Overhaul and a couple of city improvements. Relevant in the scenario below: Kilcunda's Balmora. In MGE XE, I also use grass shader (Remiros' groundcover), SSAO, HDR, .

Bizarrely, even with viewing distance in OpenMW cranked down to about 1.3X, my FPS in Balmora are lower than in XE. That seems weird and, well, is qualitatively below XE.

In MGE XE: (26 FPS)
In OpenMW: (19 FPS)
Disabling all shadows in the launcher yields about 35 FPS; all shadows and water effects disabled and viewing distance strictly 1.0Xabout 57 FPS (but admittedly, this doesn't really look good)

OpenMW version: OpenMW development (d5cee5aea9), nightly
CPU: AMD Ryzen 7 1700
GPU: AMD Radeon RX 5700, Driver: 20.2.1
RAM: 2x 8GB DDR4 @ 3000 Mhz
OS: Windows 10 1909

esm / esp list
Spoiler: Show
MGE Settings
Spoiler: Show
OpenMW settings file (with shadows activated)
Spoiler: Show
So, basically my question is:
  • Is this performance level normal?
  • If not, is there anything I can do?
Always appreciate tips. Hope this isn't a stupid question overall, but it's been years since I last played Morrowind and haven't kept track of OpenMW for quite some time.

Best regards, Rob

Re: Is my low performance normal?

Posted: 10 Feb 2020, 23:31
by AnyOldName3
So there are a few things that are making things worse than they need to be here.

First, if you press F3 enough times to bring up the detailed profiler, as you have in those screenshots, OpenMW needs to count up how many of various kinds of thing there are. This can actually have a noticeable performance hit. The detailed levels aren't what you want when comparing OpenMW and MGE XE. Just press F3 once to get the framerate counter.

The other thing is that MGE XE takes lots of shortcuts that OpenMW doesn't. Morrowind uses lots and lots of very simple meshes that all use different settings. Setting the settings and telling the GPU to draw things can actually take longer than it takes a modern GPU to draw them, but when Morrowind was made, this didn't make a difference. MGE XE doesn't work very well unless you use its distant land generator. Among other things, it makes combined versions of things that get used for shadow casting, when they're far away, or, in the case of grass, all the time. These are much faster to render per-triangle, but, particularly in the case of grass, means certain things don't look as good. For example, if all the grass in the cell gets combined into one mesh, the eight-light-per-mesh limit applies to all the grass in the cell, instead of being per-tuffet, and so things like torches are less likely to work on grass. There are a bunch of other issues that doing batching when the game isn't running causes, like things not appearing or disappearing properly when scripts enable, disable or move them partway through the game. Comparing OpenMW and MGE XE isn't like-for-like as we effectively always do things that MGE XE can't, or hides behind settings telling you that they'll completely ruin performance.

In theory, we should be able to come up with solutions to these problems that let things be fast while still keeping all the bells and whistles, and that means we're avoiding adding stopgap solutions - they take time away from working on real solutions that solve the problem forever with no downsides.

The best thing you can do to make things faster is become a competent graphics developer who's willing to work with OpenMW without causing a scene and is capable with using OpenSceneGraph without getting into a fight with it. There aren't many people like that who have time.

Re: Is my low performance normal?

Posted: 11 Feb 2020, 00:21
by parttimehorse
Thank you for your detailed response, I really appreciate the input and perspective. Fwiw, I did initially just use the FPS-only overlay without the detailed count, I just thought something on there might be of interest. :oops:

I hope it didn't sound degrading or anything like that, I quite enjoy this project! I think it's one of my favorite open source projects and I enjoy how it opens up multiple platforms for Morrowind. On my end I will try OpenMW on my Linux installation, as I only now realized it runs on OpenGL and AMD's closed source OpenGL driver implementation is rather lackluster. So, I might attempt running it on there - could give a nice boost on the other driver, from what I've heard. :)

Again, thanks for the response and the work you put into the project!

Re: Is my low performance normal?

Posted: 11 Feb 2020, 08:28
by akortunov
Since profiler shows more than 10k drawables in scene (for example, usually there are about 3-3.5k drawables in that scene with shadows and reflections enabled), I suppose you either enabled grass mod (which is supposed to be used only with the Distant Land generator, not the game itself) or increased the "extrior cells loading distance" (which works similarly to uGridsToLoad in Skyrim), or even did both (despite your configs do not show anything suspicious).
Tent meshes are pretty unoptimized in Morrowind, but I am not sure if they can make scene 3x more complex than it should be.
I'd suggest you to disable mods one by one to detect a bottleneck.
And keep in mind that MGE uses meshes from Distant Land to cast shadows, so objects which are not present in Distant Land do not cast shadows (as crates on your screenshot), while OpenMW has honest real-time shadows. On OpenMW it is possible to set a distance when shadows start to fade away to increase performance, though. An another good idea is to decrease the "actors processing range" value since NPCs in Morrowind have pretty complex meshes and their shadows and reflections can degrade FPS a lot on both engines (I even can not tell if you have high-quality actors shadows enabled in MGE).

Also it would be better to use the OpenMW Containers Animated with 0.46 instead of outdated and not optimized MW Containers Animated.

Re: Is my low performance normal?

Posted: 11 Feb 2020, 10:10
by AnyOldName3
Why are you using AMD's closed-source OpenGL driver on Linux? Their open-source one is the good one. In fact, I didn't even think there was a closed-source Linux driver for Navi.

Re: Is my low performance normal?

Posted: 11 Feb 2020, 17:04
by parttimehorse
I just realized I did some unfortunate wording, I wanted to refer to the Windows OpenGL driver when i said closed-source. That's kind of misleading on my part. :? As AMD's Windows and Linux closed-source drivers share a lot of their code base, below's results might be interesting from other AMD users on Windows.

I just compiled openmw-git on Arch and recreated the scenario running radeonsi. The interesting part? Higher FPS (despite me forgetting to turn down the viewing distance back to 1.0X, but OpenMW is pretty robust in terms of viewing distance FPS impact between 1.0X and 10.0X) - OpenMW @ Arch Linux and radeonsi: ~26 FPS
It's overall higher framerate and smoother, seems to have less dips than the Windows OpenGL driver. I'll definitely play on Linux, then!

Dear akortunov, thanks for the suggestions! I will check that out. I did verify that the grass mod was not active, but I will go through your other suggestions tonight. Thanks for the input :)

Re: Is my low performance normal?

Posted: 17 Feb 2020, 15:34
by lysol
While at it, I would also suggest trying Morrowind Optimization Patch and Project Atlas out if you haven't already, as these mods lower the draw calls significatly.