On AMD Linux and Mesa go brrr

General discussion regarding the OpenMW project.
For technical support, please use the Support subforum.
Post Reply
tekhneeton
Posts: 3
Joined: 09 Dec 2020, 16:00

On AMD Linux and Mesa go brrr

Post by tekhneeton »

Hello everyone,

After buying new PC year ago I finally went back to having dualbooting Linux and Windows and wanted to compare how OpenMW runs on these two on my hardware. Specifically I run now Ryzen 7 3700X with Radeon RX 5700 and 16GB 3200CL16 RAM. Windows 10 system partition and separate software partition are installed on 256GB PCI-E 3.0 NVMe drive, while Linux (Opensuse Tumbleweed to be precise) sits in several years old 120GB SATA SSD (OCZ Vertex3 if I recall correctly). On the drivers side Opensuse currently has kernel 5.9.12 with Mesa 20.2.3 while Winodws has Radeon Software 20.11.2. OpenMW installs on both systems were version 0.46, both using exactly the same Data Files, Mod loadout (around 85 mods, all being graphical asset replacers) and settings.cfg file. Regrettably Windows version I downloaded is distributed with custom osg 3.4.2 while Opensuse repos gave me osg 3.6.5. Comparison was done by:
  • Creating through new game testsubject character of Khajiit race and Steed birthsign with Speed set to 125, and Strength, Athletics and Acrobatics set to 100.
  • Identifying on Windows several locations where framerate seemed to drop the most, doing saves at these locations and copying saves to Linux directory.
  • Then on both installations I first did 15-20 min. simple playthrough freely wandering around Vvardenfell. After this brief GPU warm-up I brought up profiler with double F3, quickly loaded save with 1st chosen location, waited for a few seconds for a game settle a bit and took a screenshot with F12. Then load the next save, wait, screenshot, load, etc.
Before I give you numbers, I must say: Holy Cow! This is amazing! I did heard that Mesa and kernel people did some real progress through the last couple of years, after decision to fully devote to open drivers, but I never expected such gains! And it's not just about fps, also cell loading (and preloading) runs like a breeze, while on Windows it's ...ekhem... not the most stellar experience, to put it gently. Even Issue #5351 seems less pronounced on Linux, but that may be just my imagination. But, numbers:
https://slow.pics/c/CSVqvSkk

Code: Select all

[Camera]
field of view = 70
viewing distance = 40960
third person camera distance = 256

[Cells]
#preload num threads = 4

[Fog]
use distant fog = true

[Game]
can loot during death animation = false
show owned = 2
strength influences hand to hand = 2
best attack = true

[General]
anisotropy = 16
texture mipmap = linear

[GUI]
subtitles = true
scaling factor = 1.2
stretch menu background = true
font size = 24

[Input]
toggle sneak = true
always run = true

[Map]
global = true

[Saves]
timeplayed = true
character = testsubject

[Shaders]
force shaders = true
force per pixel lighting = true
clamp lighting = false
auto use object normal maps = true
auto use object specular maps = true
auto use terrain normal maps = true
auto use terrain specular maps = true
radial fog = true

[Shadows]
actor shadows = true
enable shadows = true
object shadows = true
player shadows = true
terrain shadows = true
shadow map resolution = 2048

use front face culling = true
minimum lispsm near far ratio = 0.8

[Terrain]
distant terrain = true

[Video]
antialiasing = 2
framerate limit = 300
fullscreen = true
#window border = false
resolution x = 2560
resolution y = 1440
vsync = false

[Water]
refraction = true
rtt size = 2048
shader = true
reflection detail = 2
On Windows I also run build artifacts from AnyOldName3's grass instancing branch. For those I can offer only some loose notes:
  • For someone as me, who hasn't run MGE XE for quite some time, grass appears visualy pleasing. I tried Aesthesia Groundcover, but with darker set of textures, because regular ones appeared too bright, when rendered on top of Lougian's land retexture.
  • With grass, object paging, and viewing distance of 40960 FPS is okayish in most exterior areas, up to 85FPS. In some worst cases dips to as low as 24 fps. In Balmora its between 30 and 50 FPS.
  • With grass, object paging, and viewing distance of 40960 Active grid object paging reduces cull from ~15 to ~10 (are the units in profiler under F3 milliseconds?), when standing in alley with Caius Cosades house and looking toward river, but it makes no change on FPS in my case.
Last, but not least, thanks to the team for all the hard work put into OpenMW.
User avatar
AnyOldName3
Posts: 2668
Joined: 26 Nov 2015, 03:25

Re: On AMD Linux and Mesa go brrr

Post by AnyOldName3 »

Cries in inability to install AMD's open-source drivers on Windows
tekhneeton
Posts: 3
Joined: 09 Dec 2020, 16:00

Re: On AMD Linux and Mesa go brrr

Post by tekhneeton »

After having some trouble with understanding of how to set up and use git I now have openmw locally compiling. So here goes another set of comparison shots, this time running grass_instancing branch (ea930561). On Windows I used build artifacts from gitlab.

https://slow.pics/c/mMUuVJBQ

Code: Select all

data="/home/tmiunior/.local/share/openmw/data"

data="/home/tmiunior/.local/share/openmw/mody/Mesh_Improvement_161-23981"
data="/home/tmiunior/.local/share/openmw/mody/Better Meshes 111-38170-1-11"
data="/home/tmiunior/.local/share/openmw/mody/Morrowind Optimization Patch-45384-10-1600622296/00 Core"
data="/home/tmiunior/.local/share/openmw/mody/Morrowind Optimization Patch-45384-10-1600622296/01 Fixed Vanilla Textures"
data="/home/tmiunior/.local/share/openmw/mody/Morrowind Optimization Patch-45384-10-1600622296/02 Lake Fjalding Anti-Suck"

data="/home/tmiunior/.local/share/openmw/mody/Project Atlas-45399-0-6-5-1583081881/00 Core"
data="/home/tmiunior/.local/share/openmw/mody/Lysol's Guar Skin Banners Normal Mapped 1.0 for OpenMW-44355-1-0"
#data="/home/tmiunior/.local/share/openmw/mody/Lysol's Hlaalu Normal Mapped for OpenMW-44297-1-1"
#data="/home/tmiunior/.local/share/openmw/mody/Lysol's Imperial Forts Normal Mapped for OpenMW - NOT ATLASED-46413-1-0-1551043997"
#data="/home/tmiunior/.local/share/openmw/mody/Lysol's Imperial Towns normal Mapped for OpenMW-44536-1-1-1549630474"
#data="/home/tmiunior/.local/share/openmw/mody/Lysol's Vivec Normal Mapped for OpenMW 1.1-44259-1-1"
data="/home/tmiunior/.local/share/openmw/mody/Hlaalu Arkitektora - HQ-46246-2-0-1545762177"
data="/home/tmiunior/.local/share/openmw/mody/Hlaalu Arkitektora - ATLAS HQ-46246-1-0-1545762751"
data="/home/tmiunior/.local/share/openmw/mody/Vivec and Velothi Arkitektora  - HQ-46266-2-0-1546272606"
data="/home/tmiunior/.local/share/openmw/mody/Vivec and Velothi Arkitektora  - ATLAS HQ-46266-1-0-1546272773"
data="/home/tmiunior/.local/share/openmw/mody/Redoran Arkitektora - HQ-46235-2-0-1545605818"
data="/home/tmiunior/.local/share/openmw/mody/Redoran Arkitektora - Buildings HQ Normal Maps-47523-2-0-1579214468/Redoran Arkitektora - HQ Normals/Data"
data="/home/tmiunior/.local/share/openmw/mody/Redoran Arkitektora - Ald Skar HD-46235-1-0-1545606167"
data="/home/tmiunior/.local/share/openmw/mody/Redoran Arkitektora - ATLAS HQ-46235-1-0-1545606384"
data="/home/tmiunior/.local/share/openmw/mody/Telvanni Mesh Impr v1-2-42343-1-2"
data="/home/tmiunior/.local/share/openmw/mody/Telvanni Architecture-43530"
data="/home/tmiunior/.local/share/openmw/mody/Telvanni Architexture Improvement-43241"
data="/home/tmiunior/.local/share/openmw/mody/DMI_2017.07.15-43101-2017-07-15"
data="/home/tmiunior/.local/share/openmw/mody/Dwemer Retexture-44264"
data="/home/tmiunior/.local/share/openmw/mody/Daedric Ruins-43486"
data="/home/tmiunior/.local/share/openmw/mody/Beyonder's 40K Texture Pack - Ultimate Dunmer Strongholds v1.0-45830-v1-0"
data="/home/tmiunior/.local/share/openmw/mody/Stronghold Retexture-43948-1-0"
data="/home/tmiunior/.local/share/openmw/mody/Shacks, Docks and Ships-43520"
data="/home/tmiunior/.local/share/openmw/mody/Ashlanders"

data="/home/tmiunior/.local/share/openmw/mody/Project Atlas-45399-0-6-5-1583081881/30 Redware - Smoothed"
data="/home/tmiunior/.local/share/openmw/mody/Project Atlas-45399-0-6-5-1583081881/40 Urns - Smoothed"
data="/home/tmiunior/.local/share/openmw/mody/Project Atlas-45399-0-6-5-1583081881/50 Wood Poles - Hi-Res Texture"

data="/home/tmiunior/.local/share/openmw/mody/Aesthesia groundcover-46377-1-1549880413"
data="/home/tmiunior/.local/share/openmw/mody/Aesthesia Groundcover - darker-46377-1-1557670851"
data="/home/tmiunior/.local/share/openmw/mody/Landscape Retexture 2K-42575-2-5"
data="/home/tmiunior/.local/share/openmw/mody/Landscape retexture - OpenMW Normal map and Parallax patch-42575-1-0-1561924428/Landscape retexture Normal map  parallax"
data="/home/tmiunior/.local/share/openmw/mody/Sand Retexture-45709-1-0"
data="/home/tmiunior/.local/share/openmw/mody/Correct_UV_Rocks_1.5-46104-1-5-1579767969/Data Files"
data="/home/tmiunior/.local/share/openmw/mody/On the Rocks for OpenMW-45140-1-0"
data="/home/tmiunior/.local/share/openmw/mody/PB Mushroom Tree Replacer (0.9)-45350-0-9"
data="/home/tmiunior/.local/share/openmw/mody/Remiros' Ascadian Isles Trees - Vanilla-45779-2-1-1556198681"
data="/home/tmiunior/.local/share/openmw/mody/Vurts Bitter Coast Tree II v1dot1-37489-1"
data="/home/tmiunior/.local/share/openmw/mody/Vurt's Bitter Coast Trees II - Remastered and Optimized-46418-1-1551452907"
data="/home/tmiunior/.local/share/openmw/mody/Vurt's Grazelands Trees v1.31-35368-"
data="/home/tmiunior/.local/share/openmw/mody/Vanilla-friendly West Gash Tree Replacer-44173-2-0"
data="/home/tmiunior/.local/share/openmw/mody/Ashtrees Less Branchy Vanilla Style Trees-29399-1"
#data="/home/tmiunior/.local/share/openmw/mody/Apel Asura Coast and Sheogorath Region Retexture-42573-1-0"
data="/home/tmiunior/.local/share/openmw/mody/Bloodmoon Landscape Retexture-42575-1-0"
data="/home/tmiunior/.local/share/openmw/mody/Solstheim Tree Replacer II 1.1a-37856-1-1a"
data="/home/tmiunior/.local/share/openmw/mody/Graphic Herbalism MWSE - OpenMW-46599-1-04-1558643353/00 Core + Vanilla Meshes"
data="/home/tmiunior/.local/share/openmw/mody/HQ Plants-46180-1-0-1580566857/Data Files"
data="/home/tmiunior/.local/share/openmw/mody/HQ Plants-46180-1-0-1580566857/MWSE GH Patch"
data="/home/tmiunior/.local/share/openmw/mody/Project Atlas-45399-0-6-5-1583081881/20 BC Mushrooms - Smoothed"
data="/home/tmiunior/.local/share/openmw/mody/EP Atlas BC Mushrooms Textures-46180-1-0-1588793747/02 UHD"
data="/home/tmiunior/.local/share/openmw/mody/Epic Plants - All-In-One-46180-1-0-1-1591983731/00 Epic Plants"
data="/home/tmiunior/.local/share/openmw/mody/Epic Plants - All-In-One-46180-1-0-1-1591983731/01 BC – 2D Moss"
data="/home/tmiunior/.local/share/openmw/mody/Epic Plants - All-In-One-46180-1-0-1-1591983731/02 GH Patch"
data="/home/tmiunior/.local/share/openmw/mody/Epic Plants - All-In-One-46180-1-0-1-1591983731/03 MWSE and OpenMW GH Patch"

data="/home/tmiunior/.local/share/openmw/mody/Galleo Races Redone Pluginless_v1.0-47803-1-0-1586659670/Data Files"
data="/home/tmiunior/.local/share/openmw/mody/BetterAlmalexia-23388"
data="/home/tmiunior/.local/share/openmw/mody/Azura Creature and Cinematic Replacer"

data="/home/tmiunior/.local/share/openmw/mody/Better Morrowind Armor ENG-42509-0-5-2RC"
data="/home/tmiunior/.local/share/openmw/mody/Better Morrowind Armor ENG-42509-0-5-2RC/patch for HiRez Armors- Native Styles V2"
data="/home/tmiunior/.local/share/openmw/mody/HiRez Armors- Native Styles V2"
data="/home/tmiunior/.local/share/openmw/mody/HiRez Armors- Native Styles V2-OpenMW"
data="/home/tmiunior/.local/share/openmw/mody/Armors Retexture - Outlander Styles  HQ-44210-1-0"
data="/home/tmiunior/.local/share/openmw/mody/Bonemold_Armor_RU-45946-1-2-1-1560943694"
data="/home/tmiunior/.local/share/openmw/mody/Bonemold_Armor_EN-45946-1-2-1560438137"
data="/home/tmiunior/.local/share/openmw/mody/Daedric Lord Armor Morrowind Edition-44081-1-02"
data="/home/tmiunior/.local/share/openmw/mody/Daedric Lord Armor OpenMW patch-45405-1"
data="/home/tmiunior/.local/share/openmw/mody/Daedric Lord Armor Face of God-45037-1-1a"
data="/home/tmiunior/.local/share/openmw/mody/Daedric Lord Armor Face of God for OpenMW pluginless-45405-1"
data="/home/tmiunior/.local/share/openmw/mody/Ebony Mail Replacer-45183-1-0"
data="/home/tmiunior/.local/share/openmw/mody/Better Robes ENG-42773-0-3-1"
data="/home/tmiunior/.local/share/openmw/mody/Robe Overhaul-43748-1-3"
data="/home/tmiunior/.local/share/openmw/mody/Darknut's Better Clothes Textures-43423-1-0"
data="/home/tmiunior/.local/share/openmw/mody/MoreBetterClothes-36406-1"
data="/home/tmiunior/.local/share/openmw/mody/HiRez Better Clothes 0.1-45499-0-1/HiRez Better Clothes"
data="/home/tmiunior/.local/share/openmw/mody/Real Reflective Weapons - Iron for OpenMW-43077-2-0-1585135125/00 Data Files"
data="/home/tmiunior/.local/share/openmw/mody/Real Reflective Weapons - Iron for OpenMW-43077-2-0-1585135125/Bonus"
data="/home/tmiunior/.local/share/openmw/mody/No Reflection Maps-43120-1-3"
data="/home/tmiunior/.local/share/openmw/mody/Psy_OMI-29906"
data="/home/tmiunior/.local/share/openmw/mody/Nordic Mesh Improvements-46792-1-1-1558685358/00 Core"
data="/home/tmiunior/.local/share/openmw/mody/Nordic Mesh Improvements-46792-1-1-1558685358/02 Hires Textures"
data="/home/tmiunior/.local/share/openmw/mody/Improved Weapon Meshes - Ebony-43484-1-2/00 Data Files"
data="/home/tmiunior/.local/share/openmw/mody/Silver Mesh Improvements-46787-1-0-1558388580/00 Core"

#data="/home/tmiunior/.local/share/openmw/mody/Alit Replacer"
data="/home/tmiunior/.local/share/openmw/mody/Clannfear Replacer - OpenMW-45173-1-0"
data="/home/tmiunior/.local/share/openmw/mody/Cliffracer Replacer-43925-0-9"
#data="/home/tmiunior/.local/share/openmw/mody/Guar Replacer"
#data="/home/tmiunior/.local/share/openmw/mody/Kagouti Replacer"
data="/home/tmiunior/.local/share/openmw/mody/Main File Update-46421-1-1-1551630969/HiRez Creatures - Netch"
data="/home/tmiunior/.local/share/openmw/mody/Nix-Hound Replacer 1.0-43620-1-0"
data="/home/tmiunior/.local/share/openmw/mody/PB MudcrabReplacer 1.1-46765-1-1-1558184194/Data Files"
data="/home/tmiunior/.local/share/openmw/mody/Scamp Replacer 1.0-44314-1-0"
data="/home/tmiunior/.local/share/openmw/mody/Creeper Replacer-44314-"
data="/home/tmiunior/.local/share/openmw/mody/Vurts Silt Strider Retexture-30696"

data="/home/tmiunior/.local/share/openmw/mody/Skies - .IV"
data="/home/tmiunior/.local/share/openmw/mody/Dying Worlds"
data="/home/tmiunior/.local/share/openmw/mody/HD Concept-art splash screen and main menu-43081-1-0"
data="/home/tmiunior/.local/share/openmw/mody/HD texture buttons (English)-46854-1-0-1573580373/HiResUI"
content=Morrowind.esm
content=Tribunal.esm
content=Bloodmoon.esm
content=AreaEffectArrows.esp
content=bcsounds.esp
content=EBQ_Artifact.esp
content=adamantiumarmor.esp
content=Siege at Firemoth.esp
content=master_index.esp
content=CreeperReplacer.esp
content=More Better Clothes.ESP
content=Better Robes.ESP
content=Better Morrowind Armor.esp
content=DaedricArmorGod.ESP
content=DaedricArmor.esp
content=Bonemold_Armor.ESP
content=Vurt's Grazelands Trees.ESP
content=Vurt's BC Tree Replacer II.ESP
content=Lake Fjalding Anti-Suck.ESP

Code: Select all

[Camera]
field of view = 70
viewing distance = 40960
third person camera distance = 256

[Cells]
#preload num threads = 4

[Fog]
use distant fog = true

[Game]
can loot during death animation = false
show owned = 2
strength influences hand to hand = 2
best attack = true

[General]
anisotropy = 16
texture mipmap = linear

[GUI]
subtitles = true
scaling factor = 1.2
stretch menu background = true
font size = 24

[Input]
toggle sneak = true
always run = true

[Map]
global = true

[Saves]
timeplayed = true
character = testsubject

[Shaders]
force shaders = true
force per pixel lighting = true
clamp lighting = false
auto use object normal maps = true
auto use object specular maps = true
auto use terrain normal maps = true
auto use terrain specular maps = true
radial fog = true

[Shadows]
actor shadows = true
enable shadows = true
object shadows = true
player shadows = true
terrain shadows = true
shadow map resolution = 2048

use front face culling = true
minimum lispsm near far ratio = 0.8

[Terrain]
distant terrain = true
active grid object paging = true

[Video]
antialiasing = 2
framerate limit = 300
fullscreen = true
#window border = false
resolution x = 2560
resolution y = 1440
vsync = false

[Water]
refraction = true
rtt size = 2048
shader = true
reflection detail = 2

[Physics]
async num threads = 1

[Groundcover]
enabled = true
Comments:
  • This may have been some incidental lucky scheduling on part of linux kernel, but performance was more consistent when doing Linux run (relating to issue !5707 perhaps?). Basically during my GPU-warm-up treks across Vvardenfell I started them both on the bridge to Vivec Foreign Quarter and then went counterclockwise, more or less along shore, trying to visit all regions and end up again near Vivec. On Windows I started with ~60fps on Ascadian Isles, but once I hit northern Ashlands I had these steady ~30fps, which you can see on screenshots, all the way to the end. On Linux I could still get ~60fps when closing the circle on the roads of Ascadian region.
  • Linux is still leading when it comes to cell loading/preloading, even with object paging. To give you an example: approaching door to Shipping House on Dren Plantaion gives me 3-4 seconds long slideshow and willingnes to sing the song of my people. One with a lot of swearing. On Linux it's just short, half second hiccup. It happens regardless of viewing distance, distant terrain, object paging, shadows, active grid object paging etc.. It goes away with either preload enabled = false, preload doors = false or when running with original assets, or something of similar size and fidelity.
Post Reply