Seasalt Posted December 9, 2018 Posted December 9, 2018 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.
NicoD Posted December 9, 2018 Posted December 9, 2018 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.
NicoD Posted April 29, 2019 Posted April 29, 2019 @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. 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. 1
JMCC Posted April 29, 2019 Posted April 29, 2019 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.
NicoD Posted April 29, 2019 Posted April 29, 2019 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
mindee Posted April 29, 2019 Posted April 29, 2019 Hi,NicoD, What ROM do you use? Armbian or FriendlyDesktop and version? And what & how games do you test? Thank you
NicoD Posted April 29, 2019 Posted April 29, 2019 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.
JMCC Posted April 29, 2019 Posted April 29, 2019 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
NicoD Posted April 29, 2019 Posted April 29, 2019 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.
NicoD Posted April 29, 2019 Posted April 29, 2019 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.
NicoD Posted April 29, 2019 Posted April 29, 2019 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"
NicoD Posted April 29, 2019 Posted April 29, 2019 @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)
@lex Posted April 29, 2019 Posted April 29, 2019 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. 1
NicoD Posted April 29, 2019 Posted April 29, 2019 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).
@lex Posted April 29, 2019 Posted April 29, 2019 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.
jock Posted April 30, 2019 Posted April 30, 2019 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.
JMCC Posted April 30, 2019 Posted April 30, 2019 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 1
NicoD Posted April 30, 2019 Posted April 30, 2019 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 ), 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
JMCC Posted April 30, 2019 Posted April 30, 2019 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
NicoD Posted April 30, 2019 Posted April 30, 2019 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.
pkfox Posted April 30, 2019 Posted April 30, 2019 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 ?
NicoD Posted April 30, 2019 Posted April 30, 2019 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.
pkfox Posted April 30, 2019 Posted April 30, 2019 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 ?
NicoD Posted April 30, 2019 Posted April 30, 2019 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 docshttps://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.
Recommended Posts