Raspberry Pi 4 Performance
- AnyOldName3
- Posts: 2679
- Joined: 26 Nov 2015, 03:25
Re: Raspberry Pi 4 Performance
I guess resaving all the game's textures and comparing load times and framerates with when you hadn't done that would be a start. Otherwise you'd probably need to rebuild OpenMW with profiling enabled and see what percentage of time was spent in the code that does the decompression.
Re: Raspberry Pi 4 Performance
What's the configuration flag to enable profiling? Recompiling is not complicated, since that's how the Gentoo package manager does all package installation.
- AnyOldName3
- Posts: 2679
- Joined: 26 Nov 2015, 03:25
Re: Raspberry Pi 4 Performance
I'm not sure with GCC, but I can at least tell you that its these lines that you're interested in: https://gitlab.com/OpenMW/openmw/-/blob ... p#L163-172
Re: Raspberry Pi 4 Performance
Oh, I misunderstood.
I thought that you were proposing that I use an OpenMW or Open Scene Graph profiling tool.
I thought that you were proposing that I use an OpenMW or Open Scene Graph profiling tool.
- AnyOldName3
- Posts: 2679
- Joined: 26 Nov 2015, 03:25
Re: Raspberry Pi 4 Performance
It's not helpful for this, but for future reference, OpenMW's profiling tool comes up if you press F3. The more presses, the more detail you get, but the most detailed versions throw the results off because the profiling takes time, too.
Re: Raspberry Pi 4 Performance
Right. I was using that to measure the FPS that I was getting so far.AnyOldName3 wrote: ↑01 Oct 2020, 20:34 It's not helpful for this, but for future reference, OpenMW's profiling tool comes up if you press F3. The more presses, the more detail you get, but the most detailed versions throw the results off because the profiling takes time, too.
Re: Raspberry Pi 4 Performance
With bullet version 2.89, with the openmp and threads configuration options activated, I got a 5fps bump when using OPENMW_PHYSICS_FPS=10 and walking around Seyda Neen.
FPS still occasionally drops below 10fps, but it's much rarer now.
EDIT: Note, this is still with a resolution of 640x480
FPS still occasionally drops below 10fps, but it's much rarer now.
EDIT: Note, this is still with a resolution of 640x480
Re: Raspberry Pi 4 Performance
I'm seeing these two warnings on the console that I figured I should ask about.
Warning: fallingScript line 46, column 6 (endif): endif without matching if/elseif
Warning: detected OpenGL error 'invalid operation' at after RenderBin::draw(..)
Anything that could have a performance impact?
Warning: fallingScript line 46, column 6 (endif): endif without matching if/elseif
Warning: detected OpenGL error 'invalid operation' at after RenderBin::draw(..)
Anything that could have a performance impact?
- AnyOldName3
- Posts: 2679
- Joined: 26 Nov 2015, 03:25
Re: Raspberry Pi 4 Performance
The fallingScript thing is because Tarheil's script is dodgy because Bethesda didn't know how to use the scripting language they created. You'll see a lot of warnings from vanilla content, but they're mostly fine.
The OpenGL error could be a range of things, but the main one I know about shouldn't be possible on a Pi 4 as it's only enabled on systems with relatively modern desktop OpenGL features that I don't think GL4ES uses. I'll be able to say more if you build a recent master-branch version of OpenMW (one which includes commit b4ccd2658a91176faffefa1dc95ce91741c16cab) and set the environment variable OPENMW_DEBUG_OPENGL to 1 (or ON or YES or 'Yeah, baby!' as it basically just checks it's not OFF), then post the more detailed error message.
The OpenGL error could be a range of things, but the main one I know about shouldn't be possible on a Pi 4 as it's only enabled on systems with relatively modern desktop OpenGL features that I don't think GL4ES uses. I'll be able to say more if you build a recent master-branch version of OpenMW (one which includes commit b4ccd2658a91176faffefa1dc95ce91741c16cab) and set the environment variable OPENMW_DEBUG_OPENGL to 1 (or ON or YES or 'Yeah, baby!' as it basically just checks it's not OFF), then post the more detailed error message.
Re: Raspberry Pi 4 Performance
Code: Select all
openmw --version
Crash handler installed
vchi_msg_dequeue -> -1(90)
OpenMW version 0.47.0
Revision: 425fa837d1
Code: Select all
$ OPENMW_DEBUG_OPENGL=ON OPENMW_PHYSICS_FPS=10 openmw | grep -e Warning -C 15
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(tv), 640x480, 30.06 fps, 30.06 tbr, 30.06 tbn, 30.06 tbc
Stream #0:1[0x0]: Audio: binkaudio_rdft, 44100 Hz, stereo, flt
Enumerated output devices:
bcm2835 HDMI 1 Stereo bcm2835 Headphones Stereo
Enumerated HRTF names:
Default HRTF Built-In HRTF
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_FRAGMENT shader: 28 inst, 4 threads, 0 loops, 2 uniforms, 8 max-temps, 0:0 spills:fills, 1 sfu-stalls, 29 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 98 inst, 4 threads, 0 loops, 36 uniforms, 32 max-temps, 0:0 spills:fills, 0 sfu-stalls, 98 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 51 inst, 4 threads, 0 loops, 18 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 51 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_FRAGMENT shader: 29 inst, 4 threads, 0 loops, 2 uniforms, 8 max-temps, 0:0 spills:fills, 1 sfu-stalls, 30 inst-and-stalls
Loading content file Morrowind.esm
Loading content file Tribunal.esm
Loading content file Bloodmoon.esm
Loading content file Patch for Purists.esm
Loading content file Patch for Purists - Book Typos.ESP
Loading content file Patch for Purists - Semi-Purist Fixes.ESP
Loading content file Lake Fjalding Anti-Suck.ESP
Warning: using custom physics framerate (10 FPS).
Playing music/special/morrowind title.mp3
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_FRAGMENT shader: 16 inst, 4 threads, 0 loops, 1 uniforms, 3 max-temps, 0:0 spills:fills, 0 sfu-stalls, 16 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 26 inst, 4 threads, 0 loops, 4 uniforms, 10 max-temps, 0:0 spills:fills, 0 sfu-stalls, 26 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 18 inst, 4 threads, 0 loops, 2 uniforms, 7 max-temps, 0:0 spills:fills, 0 sfu-stalls, 18 inst-and-stalls
Reading save file asdf.omwsave
Loading saved game 'asdf' for character 'asdf'
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 321, offset 3920, size 784) to update a GL_STATIC_DRAW buffer
Controller R2_Claw02 present more than once in meshes/r/xsiltstrider.kf, ignoring later version
Loading cell Seyda Neen (-2, -9)
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 357, offset 3440, size 688) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 359, offset 960, size 192) to update a GL_STATIC_DRAW buffer
Loading cell Bitter Coast Region (-2, -8)
Loading cell Bitter Coast Region (-1, -9)
Loading cell Bitter Coast Region (-3, -9)
Loading cell Seyda Neen (-2, -10)
Loading cell Ascadian Isles Region (-1, -8)
Loading cell Bitter Coast Region (-3, -8)
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 389, offset 4400, size 880) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 404, offset 5800, size 1160) to update a GL_STATIC_DRAW buffer
Loading cell Bitter Coast Region (-1, -10)
Loading cell Bitter Coast Region (-3, -10)
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 415, offset 9680, size 1936) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 422, offset 2880, size 576) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 426, offset 2000, size 400) to update a GL_STATIC_DRAW buffer
Warning: fallingScript line 46, column 6 (endif): endif without matching if/elseif
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_FRAGMENT shader: 75 inst, 4 threads, 0 loops, 20 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 75 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 91 inst, 4 threads, 0 loops, 36 uniforms, 23 max-temps, 0:0 spills:fills, 0 sfu-stalls, 91 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 51 inst, 4 threads, 0 loops, 18 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 51 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 106 inst, 4 threads, 0 loops, 45 uniforms, 23 max-temps, 0:0 spills:fills, 0 sfu-stalls, 106 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 51 inst, 4 threads, 0 loops, 18 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 51 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_FRAGMENT shader: 62 inst, 4 threads, 0 loops, 18 uniforms, 16 max-temps, 0:0 spills:fills, 0 sfu-stalls, 62 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 89 inst, 4 threads, 0 loops, 36 uniforms, 25 max-temps, 0:0 spills:fills, 0 sfu-stalls, 89 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 51 inst, 4 threads, 0 loops, 18 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 51 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 117 inst, 4 threads, 0 loops, 47 uniforms, 22 max-temps, 0:0 spills:fills, 0 sfu-stalls, 117 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 51 inst, 4 threads, 0 loops, 18 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 51 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 108 inst, 4 threads, 0 loops, 38 uniforms, 23 max-temps, 0:0 spills:fills, 0 sfu-stalls, 108 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 51 inst, 4 threads, 0 loops, 18 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 51 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_FRAGMENT shader: 75 inst, 4 threads, 0 loops, 20 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 75 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_FRAGMENT shader: 78 inst, 4 threads, 0 loops, 22 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 78 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 131 inst, 4 threads, 0 loops, 52 uniforms, 21 max-temps, 0:0 spills:fills, 0 sfu-stalls, 131 inst-and-stalls
--
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
Loading cell Bitter Coast Region (-5, -3)
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
Loading cell Ascadian Isles Region (-3, -5)
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 1219, offset 2880, size 576) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 1221, offset 2880, size 576) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
Loading cell Odai Plateau (-5, -5)
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
Warning: OutsideBanner line 38, column 6 (endif): endif without matching if/elseif
OpenGL ERROR [API]: GL_INVALID_OPERATION in glTexStorage2D(immutable)
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 103 inst, 4 threads, 0 loops, 41 uniforms, 23 max-temps, 0:0 spills:fills, 0 sfu-stalls, 103 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 51 inst, 4 threads, 0 loops, 18 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 51 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_FRAGMENT shader: 88 inst, 4 threads, 0 loops, 22 uniforms, 22 max-temps, 0:0 spills:fills, 0 sfu-stalls, 88 inst-and-stalls
OpenGL PERFORMANCE [API]: Fallback conversion for 6400 PIPE_PRIM_QUADS vertices
Warning: detected OpenGL error 'invalid operation' at after RenderBin::draw(..)
OpenGL PERFORMANCE [API]: Fallback conversion for 4 PIPE_PRIM_QUADS vertices
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX shader: 104 inst, 4 threads, 0 loops, 45 uniforms, 22 max-temps, 0:0 spills:fills, 0 sfu-stalls, 104 inst-and-stalls
OpenGL OTHER [SHADER_COMPILER]: MESA_SHADER_VERTEX_BIN shader: 51 inst, 4 threads, 0 loops, 18 uniforms, 19 max-temps, 0:0 spills:fills, 0 sfu-stalls, 51 inst-and-stalls
OpenGL PERFORMANCE [API]: Fallback conversion for 6400 PIPE_PRIM_QUADS vertices
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 759, offset 0, size 240) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 759, offset 240, size 160) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 760, offset 0, size 60) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: Fallback conversion for 4 PIPE_PRIM_QUADS vertices
OpenGL PERFORMANCE [API]: Fallback conversion for 6400 PIPE_PRIM_QUADS vertices
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 759, offset 0, size 192) to update a GL_STATIC_DRAW buffer
OpenGL PERFORMANCE [API]: using glBufferSubData(buffer 759, offset 192, size 0) to update a GL_STATIC_DRAW buffer