4 4
Seasalt

RK3399 Game Playing, What games work, Assaultcube, Torc etc

Recommended Posts

I am amazed My NanoPi M4 2gb plays Assaultcube and Torcs so well for a $85 computer it is a great achievement.

 

But I have some questions.

 

If I have more than 2 Bots/ enemies  in Assaultcube 1024 X 768 graphics setting good, it seems to slow down game play,

 

Is this because the bots are limited to a single CPU thread? and would therefore work better on larger Intel single or dual chips?

 

Is any one else playing Assaultcube what settings are you finding optimize the RK3399?

 

Seasalt.

Share this post


Link to post
Share on other sites
11 hours ago, Seasalt said:

Is this because the bots are limited to a single CPU thread? and would therefore work better on larger Intel single or dual chips?

  

Is any one else playing Assaultcube what settings are you finding optimize the RK3399?



Hi. I haven`t tried assault cube. I suppose it would need gl drivers, and be recompiled for it to run in 1080p without a hitch.
I am slowly gathering info on gaming on the rk3399 on Linux. I thought about it to open a threat here for that. Now I don`t need to anymore :)
It should be very able, but we need the right persons for that to do some work.

I can say that DosBox works great, so thousands of games there. With RetroArch the 8-bit and 16-bit consoles run perfect. No good N64, playstation, psp... Here again we need drivers and cores made for the RK3399.
Many of the Linux games work ok, but they all need optimization. You can even play most on the Odroid C2, a lot better than now on the RK3399. That`s a lot less poweful board, but better optimized games.

If the Odroid N1 would have been sold, then the situation would have been a lot better. They`ve got Meveric who does an amazing job optimizing games for the Odroids. If he would do that for the RK3399...

On Android you can play playstation and n64, and many more games that run perfect. But I`m allergic to Android.

If anyone has more info on what works well, and how to improve things. Please all share it here.
 

Share this post


Link to post
Share on other sites

@JMCC  Hi. I'm trying to make some Linux games to work well on the NanoPi M4. 
I've tried that tool `glrun`. But I'm not having the best results. I get the message OpenGL: OpenGL version is too old!
So I'm trying supertuxkart. Here's the output without glrun

[verbose  ] translation: Env var LANGUAGE = 'en_US.UTF-8'.
[verbose  ] translation: Language 'English (United States)'.
Adding language fallback en
Irrlicht Engine version 1.8.0
Linux 4.4.178-rk3399 #2 SMP Tue Apr 9 22:41:35 CEST 2019 aarch64
libGL error: unable to load driver: rockchip_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: rockchip
[info   ] IrrDriver: OpenGL version: 3.3
[info   ] IrrDriver: OpenGL vendor: VMware, Inc.
[info   ] IrrDriver: OpenGL renderer: llvmpipe (LLVM 7.0, 128 bits)
[info   ] IrrDriver: OpenGL version string: 3.3 (Core Profile) Mesa 18.2.8
[info   ] GLDriver: AMD Vertex Shader Layer Present
[info   ] GLDriver: ARB Buffer Storage Present
[info   ] GLDriver: ARB Base Instance Present
[info   ] GLDriver: ARB Draw Indirect Present
[info   ] GLDriver: ARB Arrays of Arrays Present
[info   ] GLDriver: ARB Texture Storage Present
[info   ] GLDriver: ARB Texture View Present
[info   ] GLDriver: ARB Multi Draw Indirect Present
[info   ] GLDriver: EXT Texture Compression S3TC Present
[info   ] GLDriver: ARB Texture Compression RGTC Present
[info   ] GLDriver: ARB Uniform Buffer Object Present
[info   ] GLDriver: ARB Explicit Attrib Location Present
[info   ] GLDriver: Geometry Shaders Present
[info   ] GLDriver: ARB Texture Swizzle Present
[info   ] GLDriver: ARB Pixel Buffer Object Present
[info   ] GLDriver: ARB framebuffer sRGB Present
[info   ] ShaderBasedRenderer: Preloading shaders...
[info   ] SharedGPUObjects: Hardware Skinning enabled, method: TBO, max bones: 1024

Most important will be : libGL error: unable to load driver: rockchip_dri.so

Here's the output when using glrun supertuxkart

[verbose  ] translation: Env var LANGUAGE = 'en_US.UTF-8'.
[verbose  ] translation: Language 'English (United States)'.
Adding language fallback en
Irrlicht Engine version 1.8.0
Linux 4.4.178-rk3399 #2 SMP Tue Apr 9 22:41:35 CEST 2019 aarch64
[info   ] IrrDriver: OpenGL version: 2.0
[info   ] IrrDriver: OpenGL vendor: ptitSeb
[info   ] IrrDriver: OpenGL renderer: GL4ES wrapper
[info   ] IrrDriver: OpenGL version string: 2.0 gl4es wrapper 1.1.1
[warn   ] Graphics: Can not find version for '2.0 gl4es wrapper 1.1.1' 'GL4ES wrapper' - ignored.
[warn   ] irr_driver: Using the fixed pipeline (old GPU, or shaders disabled in options)
[info   ] HTTPRequest: Downloading http://addons.supertuxkart.net/dl/xml/news.xml
[info   ] addons: Using cached addons.xml.
[info   ] HTTPRequest: Downloading http://addons.supertuxkart.net/dl/images/32999604857af930517f49.png
[info   ] GrandPrixManager: Loading Grand Prix files from /usr/share/games/supertuxkart/data/grandprix/
[info   ] GrandPrixManager: Loading Grand Prix files from /home/nicod/.local/share/supertuxkart/grandprix/
[warn   ] OpenGL: OpenGL version is too old!

Here's what it looks like with glrun, everything's scrabled.

 

1201202629_glrunsupertuxkart.thumb.png.52dd286df438d5c8018b91c8e58b408d.png

Next month I'll make a video about the RK3399's with desktop use with your media script. And I'd like to be able to play extremetuxracer and supertuxkart if possible. 
Cheers.

Share this post


Link to post
Share on other sites
31 minutes ago, NicoD said:

[info ] IrrDriver: OpenGL version: 3.3 [info ] IrrDriver: OpenGL vendor: VMware, Inc. [info ] IrrDriver: OpenGL renderer: llvmpipe (LLVM 7.0, 128 bits)

This means it is not using the GL4ES wrapper, but the Mesa software emulation. First of all, check that  OpenGL-ES is working, by running "glmark2-es2" or "es2gears".

 

You should get a message saying it is using the Mali driver, and not the VMware emulation.

Share this post


Link to post
Share on other sites
51 minutes ago, JMCC said:

You should get a message saying it is using the Mali driver, and not the VMware emulation.

It runs well.
Here's the output glmark2-es2.
 

    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-T860
    GL_VERSION:    OpenGL ES 3.2 v1.r14p0-01rel0-git(966ed26).f44c85cb3d2ceb87e8be88e7592755c3

Here's es2gears.
 

nicod@nanopim4:~$ es2gears
EGL_VERSION = 1.4 Midgard-"r14p0-01rel0"
vertex shader info: 
fragment shader info: 
info: 
1061 frames in 5.0 seconds = 212.158 FPS
1067 frames in 5.0 seconds = 213.400 FPS

 

Share this post


Link to post
Share on other sites

Hi,NicoD,

 

What ROM do you use? Armbian or FriendlyDesktop and version? And what & how games do you test? Thank you

Share this post


Link to post
Share on other sites
57 minutes ago, mindee said:

What ROM do you use? Armbian or FriendlyDesktop and version? And what & how games do you test? Thank you

Hi Mindee. I'm using Armbian Bionic (5.78) with the Media Script of @jmcc.
I will give FriendlyDesktop a try. Thank you.

Share this post


Link to post
Share on other sites
3 hours ago, NicoD said:

It runs well

Yes, it seems like it is working. Can you re-run the script, selecting only gl4es, and post the install.log

Share this post


Link to post
Share on other sites
15 minutes ago, JMCC said:

Yes, it seems like it is working. Can you re-run the script, selecting only gl4es, and post the install.log

Hit:1 http://ports.ubuntu.com bionic InRelease
Get:2 http://ports.ubuntu.com bionic-security InRelease [88.7 kB]
Get:4 http://ports.ubuntu.com bionic-updates InRelease [88.7 kB]
Hit:5 http://ports.ubuntu.com bionic-backports InRelease
Hit:3 https://apt.armbian.com bionic InRelease
Get:6 http://ports.ubuntu.com bionic-security/main armhf Packages [227 kB]
Get:7 http://ports.ubuntu.com bionic-security/main arm64 Packages [248 kB]
Get:8 http://ports.ubuntu.com bionic-security/universe arm64 Packages [244 kB]
Get:9 http://ports.ubuntu.com bionic-security/universe armhf Packages [240 kB]
Get:10 http://ports.ubuntu.com bionic-updates/main armhf Packages [462 kB]
Get:11 http://ports.ubuntu.com bionic-updates/main arm64 Packages [480 kB]
Get:12 http://ports.ubuntu.com bionic-updates/universe armhf Packages [717 kB]
Get:13 http://ports.ubuntu.com bionic-updates/universe arm64 Packages [754 kB]
Fetched 3550 kB in 2s (2165 kB/s)
Reading package lists...
*************************************************** 
*             Installing GL4ES wrapper            *
***************************************************
opt/
opt/gl4es/
opt/gl4es/libGL.so
opt/gl4es/libGL.so.1
usr/
usr/bin/
usr/bin/glrun
Finished.

 

Share this post


Link to post
Share on other sites

And some games give this output when I use glrun

nicod@nanopim4:~$ glrun extremetuxracer
/usr/bin/glrun: line 2: extremetuxracer: command not found

 

I've got this too when I do sudo glrun supertuxkart
But "glrun supertuxkart" starts, but badly as shown before.
-------
It's a problem with extremetuxracer. It's installed but doesn't run, so not glrun.

nicod@nanopim4:~$ glrun extremetuxracer
/usr/bin/glrun: line 2: extremetuxracer: command not found
nicod@nanopim4:~$ extremetuxracer
extremetuxracer: command not found
nicod@nanopim4:~$ sudo apt install extremetuxracer
Reading package lists... Done
Building dependency tree       
Reading state information... Done
extremetuxracer is already the newest version (0.7.4-1).
0 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
nicod@nanopim4:~$ sudo extremetuxracer
sudo: extremetuxracer: command not found

It did work a few days ago with low framerate. Don't know what's happened.

Edit.
I've got to open extremetuxracer with  'etr' instead.

Share this post


Link to post
Share on other sites

Here the output of glrun etr (extremetuxracer)
It seems to run better, but you can see through tux. So it's not perfect.
 

nicod@nanopim4:~$ glrun etr
LIBGL: Initialising gl4es
LIBGL: v1.1.1 built on Jan  5 2019 21:28:35
LIBGL: Using GLES 2.0 backend
LIBGL: loaded: libGLESv2.so
LIBGL: loaded: libEGL.so
LIBGL: Using GLES 2.0 backend
LIBGL: Hardware Full NPOT detected and used
LIBGL: Extension GL_EXT_blend_minmax detected and used
LIBGL: FBO are in core, and so used
LIBGL: PointSprite are in core, and so used
LIBGL: CubeMap are in core, and so used
LIBGL: BlendColor is in core, and so used
LIBGL: Blend Substract is in core, and so used
LIBGL: Blend Function and Equation Separation is in core, and so used
LIBGL: Texture Mirrored Repeat is in core, and so used
LIBGL: Extension GL_OES_mapbuffer detected
LIBGL: Extension GL_OES_element_index_uint detected and used
LIBGL: Extension GL_OES_packed_depth_stencil detected and used
LIBGL: Extension GL_OES_depth24 detected and used
LIBGL: Extension GL_OES_rgb8_rgba8 detected and used
LIBGL: Extension GL_EXT_texture_format_BGRA8888 detected and used
LIBGL: Extension GL_OES_depth_texture detected and used
LIBGL: Extension GL_EXT_texture_rg detected and used
LIBGL: Extension GL_EXT_color_buffer_float detected and used
LIBGL: Extension GL_EXT_color_buffer_half_float detected and used
LIBGL: high precision float in fragment shader available and used
LIBGL: Max vertex attrib: 16
LIBGL: Extension GL_OES_standard_derivatives detected and used
LIBGL: Max texture size: 8192
LIBGL: Max Varying Vector: 15
LIBGL: Texture Units: 8(8), Max lights: 8, Max planes: 6
LIBGL: Hardware vendor is ARM
LIBGL: sRGB surface supported
LIBGL: Targeting OpenGL 2.0
LIBGL: glXMakeCurrent FBO workaround enabled
LIBGL: FBO workaround for using binded texture enabled
LIBGL: glX Will try to recycle EGL Surface
LIBGL: Current folder is:/home/nicod

----------- Extreme Tux Racer 0.7.4 ----------------
----------- (C) 2010-2016 Extreme Tuxracer Team  --------

Warning: The created OpenGL context does not fully meet the settings that were requested
Requested: version = 1.2 ; depth bits = 24 ; stencil bits = 8 ; AA level = 0 ; core = false ; debug = false ; sRGB = false
Created: version = 2.0 ; depth bits = 16 ; stencil bits = 8 ; AA level = 0 ; core = false ; debug = false ; sRGB = false
/usr/bin/glrun: line 2: 29297 Segmentation fault      LIBGL_COPY=1 LD_LIBRARY_PATH=/opt/gl4es "$@"

"Warning: The created OpenGL context does not fully meet the settings that were requested"
 

Share this post


Link to post
Share on other sites

@mindee I tried FriendlyDesktop 20190308 and it also doesn't work. 
First boot I had the same output as with armbian with glmark2 and es2gears. After reboot those didn't work anymore. Don't know what happened. I just updated, installed supertuxkart and extremetuxracer and manually changed keyboard settings(ain't no app for that?)
I rebooted so my keyboard settings would be right. 
After reboot I get this
 

Spoiler

pi@NanoPi-M4:~$ glmark2-es2 
Error: eglInitialize() failed with error: 0x3001
Error: eglInitialize() failed with error: 0x3001
Error: main: Could not initialize canvas
pi@NanoPi-M4:~$ es2gears
EGLUT: failed to initialize EGL display
pi@NanoPi-M4:~$ supertuxkart
[verbose  ] main: Error messages and other text output will be logged to /home/pi/.config/supertuxkart/0.8.2/stdout.log.
[info   ] [FileManager]: Data files will be fetched from: '/usr/share/games/supertuxkart/data/'
[info   ] [FileManager]: User directory is '/home/pi/.config/supertuxkart/0.8.2/'.
[info   ] [FileManager]: Addons files will be stored in '/home/pi/.local/share/supertuxkart/addons/'.
[info   ] [FileManager]: Screenshots will be stored in '/home/pi/.local/share/supertuxkart/screenshots/'.
[info   ] [FileManager]: User-defined grand prix will be stored in '/home/pi/.local/share/supertuxkart/grandprix/'.
[info   ] [FileManager]: Asset 0 will be loaded from '/usr/share/games/supertuxkart/data/challenges/'.
[info   ] [FileManager]: Asset 1 will be loaded from '/usr/share/games/supertuxkart/data/gfx/'.
[info   ] [FileManager]: Asset 2 will be loaded from '/usr/share/games/supertuxkart/data/grandprix/'.
[info   ] [FileManager]: Asset 3 will be loaded from '/usr/share/games/supertuxkart/data/gui/'.
[info   ] [FileManager]: Asset 4 will be loaded from '/usr/share/games/supertuxkart/data/library/'.
[info   ] [FileManager]: Asset 5 will be loaded from '/usr/share/games/supertuxkart/data/models/'.
[info   ] [FileManager]: Asset 6 will be loaded from '/usr/share/games/supertuxkart/data/music/'.
[info   ] [FileManager]: Asset 7 will be loaded from '/usr/share/games/supertuxkart/data/replay/'.
[info   ] [FileManager]: Asset 8 will be loaded from '/usr/share/games/supertuxkart/data/tracks/'.
[info   ] [FileManager]: Asset 9 will be loaded from '/usr/share/games/supertuxkart/data/sfx/'.
[info   ] [FileManager]: Asset 10 will be loaded from '/usr/share/games/supertuxkart/data/shaders/'.
[info   ] [FileManager]: Asset 11 will be loaded from '/usr/share/games/supertuxkart/data/skins/'.
[info   ] [FileManager]: Asset 12 will be loaded from '/usr/share/games/supertuxkart/data/textures/'.
[info   ] [FileManager]: Asset 13 will be loaded from '/usr/share/games/supertuxkart/data/ttf/'.
[info   ] [FileManager]: Asset 14 will be loaded from '/usr/share/games/supertuxkart/data/po/'.
[verbose  ] translation: Env var LANGUAGE = 'en_US'.
[verbose  ] translation: Language 'English (United States)'.
Adding language fallback en
Irrlicht Engine version 1.8.0
Linux 4.4.154 #1 SMP Thu Mar 7 18:30:53 CST 2019 aarch64
Segmentation fault (core dumped)

Before reboot I got another output of supertuxkart. 
Here it is.
 

Spoiler

Adding language fallback en
Irrlicht Engine version 1.8.0
Linux 4.4.154 #1 SMP Thu Mar 7 18:30:53 CST 2019 aarch64
libGL error: unable to load driver: rockchip_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: rockchip
libGL error: unable to load driver: rockchip_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: rockchip
Segmentation fault (core dumped)
 

 

Share this post


Link to post
Share on other sites
22 minutes ago, NicoD said:

I just updated

That's the reason. It updates to new libEGL and breaks the symlink to libmali. If for some reason the new lib is installed you have to manually re-create the symlinks, or just don't update.

Share this post


Link to post
Share on other sites
4 minutes ago, @lex said:

That's the reason. It updates to new libEGL and breaks the symlink to libmali. If for some reason the new lib is installed you have to manually re-create the symlinks, or just don't update.

I didn't update this time. I did update the message above with the output of non updated FriendlyDesktop+supertuxkart. All libGL error's.
I'll try more stuff I guess(with Armbian).

Share this post


Link to post
Share on other sites

Maybe when you install the games it updates the libGl or libEGL. I think this would happen to all distro but you could try to freeze (somehow) the libs on Armbian which has symlink to libmali.

As a suggestion, you could install symlinks and find the libs and its symlink.

 

Try on the first install:

 

symlinks /lib/aarch64-linux-gnu

Take notes and then do it again after reboot.

Share this post


Link to post
Share on other sites

Normally the media script should provide the EGL/OpenGL ES proprietary libraries as substitutes for mesa EGL/OpenGL ES implementation, so once you install the media script you won't be bothered with updates anymore. This at least happens with the media script for RK3288, which I am happily using.

Of course if you install the Mali libs manually, they will be overwritten by updates with software mesa implementation.

 

BTW, gl4es works fine: I'm playing various AAA old titles (Quake, Quake 2, Quake III, Jedi Outcast, Jedi Academy) on RK3288 and games are running very well with Mali proprietary blobs.

Share this post


Link to post
Share on other sites
20 hours ago, NicoD said:

Here the output of glrun etr (extremetuxracer)

The output now shows that gl4es wrapper and mali drivers are being used. Now, since it is just a wrapper, it's possible that some functions are not implemented, or do not exist at all in the GLES 2 API.

 

Another option to play that game could be using this fork for GLES: https://github.com/meveric/extremetuxracer

Share this post


Link to post
Share on other sites
1 hour ago, JMCC said:

Another option to play that game could be using this fork for GLES: https://github.com/meveric/extremetuxracer

I get the error GL/gl.h: No such file or directory
I did install the dev libraries.
I've searched for it, it should be in libgstreamer-plugins-base1.0-dev and mesa-common-dev. I've just received 3 x 32GB eMMC modules for the M4(gotten from a viewer :D), so I've got to reinstall anyway. I installed them, that broke dpkg. (I didn't expect anything else)
I'll start again without the script and see what the standard drivers can do, and I'll try to find out what everything does. I know nothing of this, but I can learn.
Thanks for the support ;)

Share this post


Link to post
Share on other sites
14 minutes ago, NicoD said:

I'll start again without the script

You'll need the script to run the game. Just install it making sure that the development libraries are not marked for installation, that should avoid the conflict with mesa-common-dev

Share this post


Link to post
Share on other sites
1 minute ago, JMCC said:

You'll need the script to run the game. Just install it making sure that the development libraries are not marked for installation, that should avoid the conflict with mesa-common-dev 

Thanks. I'll try that. I'm building a new bionic image for the M4(just because). It'll take some time. I want an Atomic Pi to build my images. Guess I'll order me one.
 

Share this post


Link to post
Share on other sites
2 hours ago, NicoD said:

Thanks. I'll try that. I'm building a new bionic image for the M4(just because). It'll take some time. I want an Atomic Pi to build my images. Guess I'll order me one.
 

Hi Nico, do you build a distro or just a kernel ?

Share this post


Link to post
Share on other sites
7 minutes ago, pkfox said:

Hi Nico, do you build a distro or just a kernel ?

I build complete distro. Now built Armbian Bionic 5.83 with default kernel for the M4.

Share this post


Link to post
Share on other sites
3 hours ago, NicoD said:

I build complete distro. Now built Armbian Bionic 5.83 with default kernel for the M4.

Have you any instructions on how to do this ?

 

Share this post


Link to post
Share on other sites
59 minutes ago, pkfox said:

Have you any instructions on how to do this ?

Run a virtual machine with Ubuntu Bionic 18.04 on VirtualBox on a x86 machine.
In that virtual machine, do this to download the buildscript :

sudo apt-get -y -qq install git
git clone --depth 1 https://github.com/armbian/build
cd build

To start the build

sudo ./compile.sh

It's very simple. Just follow the instructions.


Here the link to the docs
https://docs.armbian.com/Developer-Guide_Build-Preparation/
I was always distracted by the list "what do I need" because of the bullet points. But it's just very simple.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
4 4