Page 1 of 1

Regular stuttering

Posted: 20 Feb 2020, 02:31
by derped
As it has been about a year since I've last played Morrowind, I felt like it was about time to start another playthrough. (I've never had any real issues/problems with openmw before.)

So here follows a short description of my problem (and all the relevant data):
- The game stutters every couple of seconds (including the title screen (and everything that leads up to it)).
- It's a clean installation with no mods.
- I've tried this with both the latest git checkout (e1f05045572635db623ff2da7bf049270ffa0ad4) as well as v0.45.0
- Tried this with both openmw's branch of OSG (2b4c8e37268e595b82da4b9aadd5507852569b87) and 3.6.4
- OS is NixOS

I've uploaded a screenshot of the in game ?profiler? here.

Terminal logs seem perfectly normal to me:

Code: Select all

Crash handler installed
Loading config file: /nix/store/xkzc12y7pjra43hsyr01y1kyz5ch2y9f-openmw-0.45.0/etc/openmw/openmw.cfg
Loading config file: /home/derped/.config/openmw/openmw.cfg
OpenMW version 0.46.0
Using default (English) font encoding.
OSG version: 3.6.4
SDL version: 2.0.10
Loading settings file: /nix/store/xkzc12y7pjra43hsyr01y1kyz5ch2y9f-openmw-0.45.0/etc/openmw/settings-default.cfg
Loading settings file: /home/derped/.config/openmw/settings.cfg
Adding BSA archive /home/derped/.local/share/openmw/basedata/Morrowind.bsa
Adding BSA archive /home/derped/.local/share/openmw/basedata/Tribunal.bsa
Adding BSA archive /home/derped/.local/share/openmw/basedata/Bloodmoon.bsa
Adding data directory /nix/store/xkzc12y7pjra43hsyr01y1kyz5ch2y9f-openmw-0.45.0/share/games/openmw/resources/vfs
Adding data directory /nix/store/xkzc12y7pjra43hsyr01y1kyz5ch2y9f-openmw-0.45.0/share/games/openmw/data
Adding data directory /home/derped/.local/share/openmw/basedata
Loading keybindings file: /home/derped/.config/openmw/input_v3.xml
Detected unusable controller: Synaptics TM3053-003
Initializing OpenAL...
Opened "Built-in Audio Analog Stereo"
  ALC Version: 1.1
  Vendor: OpenAL Community
  Renderer: OpenAL Soft
  Version: 1.1 ALSOFT 1.19.1
  Extensions: AL_EXT_ALAW AL_EXT_BFORMAT AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_BFORMAT AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_EXT_SOURCE_RADIUS AL_EXT_STEREO_ANGLES AL_LOKI_quadriphonic AL_SOFT_block_alignment AL_SOFT_deferred_updates AL_SOFT_direct_channels AL_SOFTX_events AL_SOFTX_filter_gain_ex AL_SOFT_gain_clamp_ex AL_SOFT_loop_points AL_SOFTX_map_buffer AL_SOFT_MSADPCM AL_SOFT_source_latency AL_SOFT_source_length AL_SOFT_source_resampler AL_SOFT_source_spatialize
HRTF disabled
Allocated 256 sound sources
Low-pass filter supported
EAX Reverb supported
Enumerated output devices:
  Built-in Audio Analog Stereo
Enumerated HRTF names:
  Built-In 44100hz  Built-In 48000hz
Input #0, bink, from 'video\bethesda logo.bik':
  Duration: 00:00:16.00, start: 0.000000, bitrate: 2324 kb/s
    Stream #0:0[0x0]: Video: binkvideo (BIKi / 0x694B4942), yuv420p, 640x480, 30.06 fps, 30.06 tbr, 30.06 tbn, 30.06 tbc
    Stream #0:1[0x0]: Audio: binkaudio_rdft, 44100 Hz, stereo, flt
Loading content file Morrowind.esm
Loading content file Tribunal.esm
Loading content file Bloodmoon.esm
Playing music/special/morrowind title.mp3
Changed setting: [Video] resolution y = 1080
Updating settings file: "/home/derped/.config/openmw/settings.cfg"
Quitting peacefully.
Also here are my current settings (though I've also tried it with the default settings first)

Code: Select all

# This is the OpenMW user 'settings.cfg' file.  This file only contains
# explicitly changed settings.  If you would like to revert a setting
# to its default, simply remove it from this file.  For available
# settings, see the file 'settings-default.cfg' or the documentation at:

small feature culling = true
small feature culling pixel size = 3.0
# (8192 * exterior cell load distance - 1024) * 0.93
viewing distance = 6667

exterior cell load distance = 1
preload enabled = true
preload num threads = 1

subtitles = true

show owned = 3
show projectile damage = true
show melee info = true
show enchant chance = true
best attack = true
can loot during death animation = true
difficulty = 50
actors processing range = 7168
classic reflected absorb spells behavior = true
use magic item animations = true
show effect duration = true
enchanted weapons are magical = true
prevent merchant equipping = true
followers attack on sight = false
shield sheathing = false
weapon sheathing = false
barter disposition change is permanent = true
only appropriate ammunition bypasses resistance = false
strength influences hand to hand = 1
projectiles enchant multiplier = 0.1
uncapped damage fatigue = true

resolution x = 1920
resolution y = 1080
framerate limit = 60
fullscreen = true
vsync = false
window border = false

anisotropy = 0
The only similar issue I was able to find is this one and as the author either decided to not pursue it any further or simply 'forgot' to post his solution there I'm asking here.

I appreciate every bit of advise I can get, thanks a lot!~

EDIT: Turns out there is already an unresolved issue on GitLab.

Re: Regular stuttering

Posted: 20 Feb 2020, 14:31
by psi29a
Can you give more information about your hardware?

Re: Regular stuttering

Posted: 20 Feb 2020, 18:03
by derped
Sure, I'm using a Lenovo Thinkpad T560.
Mine has a i5-6300U CPU and a 1080p screen (without a dedicated graphics card).
The only alterations I've made are installing a 500GB SSD and a second 8GB RAM stick (the same type that was already installed (a Samsung 8GB 2Rx8 PC3L 12800S if I'm not mistaken)).

Re: Regular stuttering

Posted: 20 Feb 2020, 21:20
by AnyOldName3
So you're using Windows?

Re: Regular stuttering

Posted: 20 Feb 2020, 23:23
by derped
Nope, as stated in my first/initial post I'm using NixOS (Linux).
That Linux Distro has a deterministic package manager so if it is caused by a dependency having a "wrong" version it should be trivial to fix.
Btw. by default the runtime dependencies of openmw 0.45.0 on NixOS are:

Code: Select all

There are also a couple of other things I'm going to do over the next few days to hopefully pin the issue down:
- Revive my Desktop (which also runs NixOS and has a dedicated graphics card) and see whether or not it works there (if so it should be a hardware or driver issue)
- Get a *buntu or Debian live system and see if it works there (and maybe a live version of NixOS to eliminate my local configurations from the equation).

Re: Regular stuttering

Posted: 21 Feb 2020, 10:53
by derped
The culprit has been found.
It is SDL2, or rather the particular version + feature set (or lack thereof) of SDL2 I was using.
After trying to run OpenMW on Lubuntu, which worked (for the most part), and some more research I remembered that I had a similar issue with Stardew Valley some time ago (which turned out to be SDL2 related).

Though instead of replacing SDL2 with an slightly older version I was able to fix it by enabling a couple of additional compile time features (in my case I added udev and fcitx (which I use) to the buildInputs). I remember having some input issues when I had fcitx active though it should not have caused the stutter (it was one of the first things I stopped when I tried to fix the stutter).

Hopefully that helps others in solving that issue (though I still don't know why SDL2 is causing that issue).

Re: Regular stuttering

Posted: 22 Feb 2020, 13:54
by AnyOldName3
Two notes:
  • OpenMW is only fully compatible with OSG 3.4.1 (although our fork is preferred). 3.6.x releases have regressions, and we're not sure yet whether they're our fault for using OSG wrong or OSG's fault for breaking things we rely on. You might want to let your package maintainer know about this.
  • If that thing you've discovered with SDL reliably triggers and removes the bug, you're a lifesaver. No one on the dev team has been able to reproduce the issue, so we haven't been able to do anything towards mitigating it, and you've found a solution.

Re: Regular stuttering

Posted: 23 Feb 2020, 08:34
by derped
So far I've sadly been unable to reproduce the issue on other Linux systems (though I can reliably toggle it on my system).
Kind of makes me wonder if I have not properly understood how shared objects/libraries work... (in the sense that while shared objects have imports those are (to my knowledge) resolved by the linker -> meaning if it reliable triggers because of a lacking input it should reliably 'work' on other systems as well).

If anyone else wants to have a go at it as well (or even better already has that problem and can test whether or not it is a genuine fix for that particular issue) I'll add my builds of SDL2 here - or I would but it won't let me upload tar files as and attachment.
I'll upload it on my server for now, everyone who's interested can find it here (right click and save as).

Re: Regular stuttering

Posted: 25 Feb 2020, 08:46
by akortunov
Did you determine which build flag really causes the issue?