OpenMW and the Raspberry Pi

General discussion regarding the OpenMW project.
For technical support, please use the Support subforum.
User avatar
psi29a
Posts: 5361
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

OpenMW and the Raspberry Pi

Post by psi29a »

Hello again, time for another update without OpenMW works on the RPi.

To cut to the quick:
  • * OpenMW runs on any RPi with 1GiB of ram, anything else is too little and won't work.
    * You'll need to enable the FOSS VC4 OpenGL you can't use the proprietary binary blob.
    * OpenMW does not support GLESv1 nor GLESv2, you have to use "desktop" GL (-lgl)
    * You can't use OSG-3.4 provided by Raspbian (Debian/Ubuntu), you'll either have compile your own or download mine.
Raspbian (Debian and Ubuntu) compiles and ships OSG with GLESv2 because Qt4/5 is compiled with GLESv2. I'm trying to convince the distros to stop this and just disable osgQt plugin so that OSG-3.4 can be compiled against Desktop OpenGL.

Currently the textures are pink because VC4 doesn't support S3TC hardware decoding. Later versions of OSG should have software decoding built-in, this might help this situation.

Performance on a RPi3 B+:
35fps outside @ default 800x600 resolution
28fps outside @ 1080p
2018-03-25-144401_1152x864_scrot.png
For those that want to play, here are some armhf built debs that can be installed that will net yourOpenMW 0.33 for Raspbian. This is without OpenMW-CS.
https://www.dropbox.com/s/6r3saos1n4dht ... s.zip?dl=0
User avatar
psi29a
Posts: 5361
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenMW and the Raspberry Pi

Post by psi29a »

Heads up, just managed to get textures working on RPi, will provide debs and a screenshot later.

Code: Select all

OPENMW_DECOMPRESS_TEXTURES=1 openmw --skip-menu
The OPENMW_DECOMPRESS_TEXTURES environment variable is necessary for OpenMW to tell OSG to decode the s3tc texture before sending it off to the GPU. I've not yet measured FPS, I'll do that next.
2018-03-26-131009_1920x1080_scrot.png
The link to the debs in the first post have been updated with the new OSG.
User avatar
lysol
Posts: 1513
Joined: 26 Mar 2013, 01:48
Location: Sweden

Re: OpenMW and the Raspberry Pi

Post by lysol »

Great news!
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: OpenMW and the Raspberry Pi

Post by scrawl »

I'm trying to convince the distros to stop this and just disable osgQt plugin so that OSG-3.4 can be compiled against Desktop OpenGL.
FYI, osgQt is no longer a part of OSG, or at least won't be in the next release. They've moved it to a separate repository precisely because of the issue that OSG, Qt and application all have to be compiled against the same everything. The intention is that applications include their own copy of osgQt that will be built exactly how the application wants.

Are there any packages in debian that require osgQt?
User avatar
psi29a
Posts: 5361
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenMW and the Raspberry Pi

Post by psi29a »

Performance on RPi3B+:
exterior @ 800x600 is: 15fps
exterior @ 1080p is: 10fps
User avatar
psi29a
Posts: 5361
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenMW and the Raspberry Pi

Post by psi29a »

scrawl wrote: 26 Mar 2018, 22:44 FYI, osgQt is no longer a part of OSG, or at least won't be in the next release. They've moved it to a separate repository precisely because of the issue that OSG, Qt and application all have to be compiled against the same everything. The intention is that applications include their own copy of osgQt that will be built exactly how the application wants.

Are there any packages in debian that require osgQt?
This is great news, more ammunition to convince them to drop the Qt dependency.

I've already tried using the: but openmw is the only package requiring OSG-3.4 and won't don't need Qt but require OpenGL, yes even on armhf/armel.
Apparently that wasn't enough to persuade them.

Here is my bug-report from a year ago, with attached patch. ;)

https://bugs.debian.org/cgi-bin/bugrepo ... bug=852423

If anyone else would like to put heat on this, it would help motivate them to do something.
RobbiBlechdose
Posts: 15
Joined: 01 Mar 2017, 10:02

Re: OpenMW and the Raspberry Pi

Post by RobbiBlechdose »

May I ask why I need a pi with at least 1GB of RAM? Is OpenMW the "problem", the VC4 driver or are the textures too big? Since I guess one could theoretically downscale them to save memory.
Also, could someone test how performance is at 320x240?
User avatar
psi29a
Posts: 5361
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenMW and the Raspberry Pi

Post by psi29a »

512MiB is not enough to handle xorg, window manager, openmw binary, and texture, don't forget that of the 512MiB availabe, CMA (Contiguous Memory Allocator) will claim memory for the VC4, so that leaves about 384 usable... you're going to hit swap (if it is enabled) then the OOM comes along and kills openmw.

Been there with my RPi1B+, but feel free to give it a spin yourself. Don't forget to -Os ;)

You can try to get some of that RAM back by setting the gpu_mem to a smaller value in /boot/config.txt, the max is 256 if I remember correctly.
RobbiBlechdose
Posts: 15
Joined: 01 Mar 2017, 10:02

Re: OpenMW and the Raspberry Pi

Post by RobbiBlechdose »

Ah, okay. It'd just be awesome to have Morrowind on my portable pi zero box. Anyway, I might try it. But, is it possible to run OpenMW without a desktop environment (from the CLI)? Since that's how my retropie box is set up. And it saves some RAM as well. Oh, and what's that -O?
User avatar
psi29a
Posts: 5361
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenMW and the Raspberry Pi

Post by psi29a »

I don't believe that is going to work. But feel free to try. -Os is a gcc compiler flag for building small binaries, tongue-in-cheek, like -funroll-loops (over optimization)
Post Reply