Pyra Capabilities-Open Morrowind?


TheTeaGuy

Still Fresh
Joined
Dec 17, 2013
Messages
27
Age
28
Location
England
Greetings Everyone! First post, so I hope this is in the right place. I thought it might be an idea to discuss the Pyra's possible capabilities. Back in the day, as in two years ago, there was a discussion about porting Open Morrowind to the Open Pandora (https://openmw.org/en/), but our community came to the conclusion the pandora was not powerful enough to run it, as morrowind is one old, yet demanding game.


So, as the new generation of the Pandora dawns, what about the Pyra? Does anyone see a chance that Open Morrowind, or games similar in specs will be able to run on the Pyra? We've seen the tech specs and the ram, and it is much more powerful than the 1Ghz Pandora (To my knowledge, I'm no Linux wiz but I know my hardware. Any thoughts?
 
Last edited by a moderator:
Ive no clue technically, but the pyra will be a good deal more powerful than the 1ghz pandora. I'd imagine open morrowing just might run.
 
While we don't have 3d acceleration working yet on the Devboards.. I could give it a whirl and see if it compiles at least, now to find my Morrowind CD..
 
Last edited by a moderator:
Is openmw functionnaly complete enough to be enjoyable?

One of my many ongoing project is "Other Life", a free MMORPG. I have to work on a anoying glReadPixels before I publish.

For OpenMW, is it "pure" OpenGL or is it using some kind of 3D Engine (Ogre3D for example)?
 
From the FAQ:

 

What technologies does OpenMW/OpenCS use?
OpenMW is built with various open source tools and libraries:

  • Programming language: C++
  • Graphics: OGRE
  • Physics: Bullet
  • Sound: OpenAL
  • GUI: MyGUI
  • Input: SDL2
  • Scripting: Homebrew implementation of morrowind scripts.
  •  
 
Is openmw functionnaly complete enough to be enjoyable?
If you check the blog they are getting close to being a full replacement. I would expect they would be close by the time pyra is out. Orge was/is going through a rewrite, might be worth wating till its ready.
 
I have to work on a anoying glReadPixels before I publish.
 Do you currently have a solution? If it is for a single pixel, something like  http://blog.xyzw.us/2013/12/hax0ring-gldepthcomponent-glreadpixels.html can give a reasonable approximation by doing 32 single pixel reads from the RGBA. It is horrible and hacky, and I'm not sure what performance would be like with all those single write/reads, but I figure it could be stuck into a function and tested and used as a get out of jail free card for games that need to do a single depth buffer pixel read per frame (if it is fast enough).
 
Last edited by a moderator:
I have to work on a anoying glReadPixels before I publish.
 
Do you currently have a solution? If it is for a single pixel, something like  http://blog.xyzw.us/2013/12/hax0ring-gldepthcomponent-glreadpixels.html can give a reasonable approximation by doing 32 single pixel reads from the RGBA. It is horrible and hacky, and I'm not sure what performance would be like with all those single write/reads, but I figure it could be stuck into a function and tested and used as a get out of jail free card for games that need to do a single depth buffer pixel read per frame (if it is fast enough).
Nice link, but this time, it's not DEPTH reading, but simple color reading. But many time per frame, effectively killing the performances (it get a 1 point color, at the mouse coordinate, for each object shown, to get what is under the mouse or not). Yes I have something in mind (using my previous GL_SELECT code), just didn't do anything yet...
 
I have to work on a anoying glReadPixels before I publish.
 
Do you currently have a solution? If it is for a single pixel, something like  http://blog.xyzw.us/2013/12/hax0ring-gldepthcomponent-glreadpixels.html can give a reasonable approximation by doing 32 single pixel reads from the RGBA. It is horrible and hacky, and I'm not sure what performance would be like with all those single write/reads, but I figure it could be stuck into a function and tested and used as a get out of jail free card for games that need to do a single depth buffer pixel read per frame (if it is fast enough).
Nice link, but this time, it's not DEPTH reading, but simple color reading. But many time per frame, effectively killing the performances (it get a 1 point color, at the mouse coordinate, for each object shown, to get what is under the mouse or not). Yes I have something in mind (using my previous GL_SELECT code), just didn't do anything yet...
One solution ive used was using dual framebuffers (on x86 desktop though), drawing to one and reading from the other. The actions are supposed to be non blocking. Might only work for gles 2.
 
Ah; fair enough  :)  that's good news then.

I had a little more thought about the code in that article (just for my own curiosity about good ways to read depth in ES 1.1), I think the article could be improved quite a lot. Instead of drawing a single pixel, then doing a pixel read to slowly binary chop through potential z values, you could send a much larger number of GL_POINTS to the screen, so for example one could send 128 points, with RGB values that increase by one for each point, and with Z values that go from 0 - maximum Z linearly. By then reading the frame buffer back, it would reduce the potential Z range by 128 (so with a 32 bit frame buffer you'd start with 4294967295 possible z values, then after one step 33554431, two steps 262143, three steps 2047, four steps 15 then on the 5th step you could could get your Z value with in 0.117. Five steps almost sounds usable for small cases.
 
One of my many ongoing project is "Other Life", a free MMORPG. I have to work on a anoying glReadPixels before I publish.
Just the name and the author has me pretty interested.  Would you be willing to say any more about this?  Could there perhaps be playable creatures besides humans?  Say, lizards or canines?
 
One of my many ongoing project is "Other Life", a free MMORPG. I have to work on a anoying glReadPixels before I publish.
Just the name and the author has me pretty interested.  Would you be willing to say any more about this?  Could there perhaps be playable creatures besides humans?  Say, lizards or canines?
All info there: http://www.other-life.com/

I have done very limited testing for now, because of the issue I have (either super slow, or non effective mouse)...
 
Walp, apologies for the necro threading. But the devs are still working and there's a new 0.45 release coming. http://openmw.org/en/

On my raspberry pi3, walking around Seyda Neen got around 12-15fps @1080p.

Will they finally fix shadows before Pyras ship? Place your bets!
 
Here, some picture, running on the Pandora of course. There quite some swap, so the increase in memory of the Pyra will also help.
openmw10.png openmw11.png openmw12.png

Now @klapse about that RPi test. I wanted to see how the Pandora (for a start) compared, but it doesn't seems GeeXlab is opensource (I was unable to find the sources to build it myself, only prebuilt stuff), so there is no way I can build the test on the Pandora (and later Pyra) to see... So that benchmark is useless (or at least, not universal enough). But I can run GLMark2 in GL2 mode...
 
More than 2GB of swap?
No, I don't think so. I use a huge swap of 4GB on my Pandora (mainly so I can build very large stuff, I rarely need that much memory), but with openmw, just a few is used, but it still swap constantly as soon as I move.

About glmark2, here a run on my Pandora (using fullscreen, so 800x480, swap method and recycle of context)
=======================================================
glmark2 2017.07
=======================================================
OpenGL Information
GL_VENDOR: ptitSeb
GL_RENDERER: GL4ES wrapper
GL_VERSION: 2.1 gl4es wrapper 1.1.1
=======================================================
[build] use-vbo=false: FPS: 130 FrameTime: 7.692 ms
[build] use-vbo=true: FPS: 133 FrameTime: 7.519 ms
[texture] texture-filter=nearest: FPS: 223 FrameTime: 4.484 ms
[texture] texture-filter=linear: FPS: 207 FrameTime: 4.831 ms
[texture] texture-filter=mipmap: FPS: 202 FrameTime: 4.950 ms
[shading] shading=gouraud: FPS: 76 FrameTime: 13.158 ms
[shading] shading=blinn-phong-inf: FPS: 72 FrameTime: 13.889 ms
[shading] shading=phong: FPS: 54 FrameTime: 18.519 ms
[shading] shading=cel: FPS: 49 FrameTime: 20.408 ms
[bump] bump-render=high-poly: FPS: 27 FrameTime: 37.037 ms
[bump] bump-render=normals: FPS: 137 FrameTime: 7.299 ms
[bump] bump-render=height: FPS: 110 FrameTime: 9.091 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 29 FrameTime: 34.483 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 7 FrameTime: 142.857 ms
[pulsar] light=false:quads=5:texture=false: FPS: 172 FrameTime: 5.814 ms
[desktop] blur-radius=5:effect=blur: passes=1:separable=true:windows=4: FPS: 11 FrameTime: 90.909 ms
[desktop] effect=shadow:windows=4: FPS: 50 FrameTime: 20.000 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 29 FrameTime: 34.483 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 29 FrameTime: 34.483 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 37 FrameTime: 27.027 ms
[ideas] speed=duration: FPS: 49 FrameTime: 20.408 ms
[jellyfish] <default>: FPS: 27 FrameTime: 37.037 ms
[terrain] <default>: FPS: 1 FrameTime: 1000.000 ms
[shadow] <default>: FPS: 31 FrameTime: 32.258 ms
[refract] <default>: FPS: 5 FrameTime: 200.000 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 197 FrameTime: 5.076 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 77 FrameTime: 12.987 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 191 FrameTime: 5.236 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 121 FrameTime: 8.264 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 59 FrameTime: 16.949 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 114 FrameTime: 8.772 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 81 FrameTime: 12.346 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 46 FrameTime: 21.739 ms
=======================================================
glmark2 Score: 84
=======================================================
 
Back
Top