2 2
Konstantin Gontarenko

GPU driver?

Recommended Posts

On 4.11.2017 at 12:24 PM, Myy said:

./waf configure --with-flavors=drm-glesv2

 

Checking for header jpeglib.h            : not found 
The configuration failed
(complete log in /home/tido/glmark/glmark2/build/config.log)

Paket: libjpeg-turbo8-dev

 

Checking for program 'pkg-config'        : not found 
Checking for program 'pkg-config'        : not found 
Checking for program 'pkg-config'        : not found 
You need to install a supported version of libpng: (('libpng12', '1.2'), ('libpng15', '1.5'), ('libpng16', '1.6'))
(complete log in /home/tido/glmark/glmark2/build/config.log)

apt-get install libpng12-dev

apt-get install libpng16-dev

oh gosh, do I have to compile  PNG reference library: libpng    https://ubuntuforums.org/showthread.php?t=2138623          --> https://sourceforge.net/projects/libpng/?source=navbar

Share this post


Link to post
Share on other sites

I remember that I compiled it with only doing something like :

apt install libjpeg-dev libpng-dev libdrm-dev libgbm-dev libudev-dev libegl1-mesa-dev libgles2-mesa-dev

The error message is incorrect. The project only needs libpng 1.2 OR 1.5 OR 1.6. Not all at once.

 

Anyway, no need to compile the required libraries. You should be able to grab them through apt and standard Debian/Ubuntu repositories.

Just try to be as generic as possible when searching for the development headers.

Share this post


Link to post
Share on other sites
(edited)

 

Spoiler

 


root@tinkerboard:~# dpkg -l libjpeg-dev libpng-dev libdrm-dev libgbm-dev libudev-dev libegl1-mesa-dev libgles2-mesa-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version        Architecture   Description
+++-===================-==============-==============-===========================================
un  libjpeg-dev         <none>         <none>         (no description available)
dpkg-query: no packages found matching libpng-dev
dpkg-query: no packages found matching libdrm-dev
dpkg-query: no packages found matching libgbm-dev
dpkg-query: no packages found matching libudev-dev
dpkg-query: no packages found matching libegl1-mesa-dev
dpkg-query: no packages found matching libgles2-mesa-dev

 

Let's give it a try with your command:

Spoiler

 


Suggested packages:
  libxcb-doc libxext-doc
Recommended packages:
  libx11-doc
The following packages will be REMOVED:
  libpng16-dev libpng16-devtools

The following NEW packages will be installed:
  libdrm-dev libdrm-exynos1 libdrm-omap1 libdrm-tegra0 libegl1-mesa-dev libgbm-dev
  libgles2-mesa-dev libjpeg-dev libjpeg8-dev libmirclient-dev libmircommon-dev libmircookie-dev
  libmircookie2 libmircore-dev libpng12-dev libprotobuf-dev libprotobuf9v5 libpthread-stubs0-dev
  libudev-dev libwayland-bin libwayland-dev libx11-dev libx11-xcb-dev libxau-dev libxcb-dri2-0-dev
  libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev libxcb-randr0 libxcb-randr0-dev
  libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev
  libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxkbcommon-dev libxshmfence-dev
  libxxf86vm-dev x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev
  x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev x11proto-xf86vidmode-dev
  xorg-sgml-doctools xtrans-dev
0 upgraded, 53 newly installed, 2 to remove and 7 not upgraded.
Need to get 3457 kB/3631 kB of archives.

 

and finally:

Spoiler

 


root@tinkerboard:~# dpkg -l libjpeg-dev libpng-dev libdrm-dev libgbm-dev libudev-dev libegl1-mesa-dev libgles2-mesa-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version        Architecture   Description
+++-===================-==============-==============-===========================================
ii  libdrm-dev:armhf    2.4.76-1~ubunt armhf          Userspace interface to kernel DRM services 
ii  libegl1-mesa-dev:ar 17.0.7-0ubuntu armhf          free implementation of the EGL API -- devel
ii  libgbm-dev:armhf    17.0.7-0ubuntu armhf          generic buffer management API -- developmen
ii  libgles2-mesa-dev:a 17.0.7-0ubuntu armhf          free implementation of the OpenGL|ES 2.x AP
ii  libjpeg-dev:armhf   8c-2ubuntu8    armhf          Independent JPEG Group's JPEG runtime libra
un  libpng-dev          <none>         <none>         (no description available)
ii  libudev-dev:armhf   229-4ubuntu21  armhf          libudev development files

 

Still doesn't configure:

Spoiler

 


root@tinkerboard:/home/tido/glmark/glmark2# ./waf configure --with-flavors=drm-glesv2
Setting top to                           : /home/tido/glmark/glmark2 
Setting out to                           : /home/tido/glmark/glmark2/build 
Checking for 'gcc' (C compiler)          : /usr/bin/gcc 
Checking for 'g++' (C++ compiler)        : /usr/bin/g++ 
Checking for header stdlib.h             : yes 
Checking for header string.h             : yes 
Checking for header unistd.h             : yes 
Checking for header stdint.h             : yes 
Checking for header stdio.h              : yes 
Checking for header jpeglib.h            : yes 
Checking for library m                   : yes 
Checking for library jpeg                : yes 
Checking for function memset             : yes 
Checking for function sqrt               : yes 
Checking for program 'pkg-config'        : not found 
Checking for program 'pkg-config'        : not found 
Checking for program 'pkg-config'        : not found 
You need to install a supported version of libpng: (('libpng12', '1.2'), ('libpng15', '1.5'), ('libpng16', '1.6'))
(complete log in /home/tido/glmark/glmark2/build/config.log)

 

 

Maybe it is only missing:

Checking for program 'pkg-config'
not found
find program=['pkg-config'] paths=['/usr/local/sbin', '/usr/local/bin', '/usr/sbin', '/usr/bin', '/sbin', '/bin', '/usr/games', '/usr/local/games'] var='PKGCONFIG' -> None
from /home/tido/glmark/glmark2: Could not find the program ['pkg-config']

 

root@tinkerboard:/home/tido/glmark/glmark2# apt install pkg-config
Reading package lists... Done
Building dependency tree        
Reading state information... Done
The following NEW packages will be installed:
  pkg-config
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 42.2 kB of archives.

 

et voila  :-)

Spoiler

 


root@tinkerboard:/home/tido/glmark/glmark2# ./waf configure --with-flavors=drm-glesv2
Setting top to                           : /home/tido/glmark/glmark2 
Setting out to                           : /home/tido/glmark/glmark2/build 
Checking for 'gcc' (C compiler)          : /usr/bin/gcc 
Checking for 'g++' (C++ compiler)        : /usr/bin/g++ 
Checking for header stdlib.h             : yes 
Checking for header string.h             : yes 
Checking for header unistd.h             : yes 
Checking for header stdint.h             : yes 
Checking for header stdio.h              : yes 
Checking for header jpeglib.h            : yes 
Checking for library m                   : yes 
Checking for library jpeg                : yes 
Checking for function memset             : yes 
Checking for function sqrt               : yes 
Checking for program 'pkg-config'        : /usr/bin/pkg-config 
Checking for 'libpng12'                  : yes 
Checking for 'x11'                       : yes 
Checking for 'gl'                        : not found 
Checking for 'egl'                       : yes 
Checking for 'glesv2'                    : yes 
Checking for 'libdrm'                    : yes 
Checking for 'gbm'                       : yes 
Checking for 'libudev'                   : yes 
Checking for 'mirclient'                 : yes 
Checking for 'wayland-client'            : yes 
Checking for 'wayland-egl'               : yes 
Prefix                                   : /usr/local 
Data path                                : /usr/local/share/glmark2 
Including extras                         : No 
Building flavors                         : ['drm-glesv2'] 
'configure' finished successfully (2.010s)

It says for 'gl' = not found ?

 

I started compiling...

Waf: Leaving directory `/home/tido/glmark/glmark2/build'
'build' finished successfully (1m21.141s)

 

Waf: Leaving directory `/home/tido/glmark/glmark2/build'
'install' finished successfully (0.829s)

Edited by Tido
compiling

Share this post


Link to post
Share on other sites

I have the tinker board only attached to HDMI, no keyboard and tried to start it via SSH. Is this a no-go ?

Or is it just the missing driver ?

root@tinkerboard:/home/tido/glmark/glmark2# glmark2-es2-drm
gbm: failed to open any driver (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
gbm: Last dlopen error: /usr/lib/dri/rockchip_dri.so: cannot open shared object file: No such file or directory
failed to load driver: rockchip
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     VMware, Inc.
    GL_RENDERER:   Gallium 0.4 on llvmpipe (LLVM 4.0, 128 bits)
    GL_VERSION:    OpenGL ES 3.0 Mesa 17.0.7
=======================================================
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false:Error: Failed to set crtc: -13
Error: Failed to set crtc: -13
Error: Failed to set crtc: -13
Error: Failed to set crtc: -13
Segmentation fault

 

Will I have to copy your files into those folders - to get the driver ?

cp -r usr/* /usr/
cp -r lib/* /lib/

 

Share this post


Link to post
Share on other sites

No, you'll have to :

  • Reinstall the Mali drivers somehow, or get them in a folder and use the LD_LIBRARY_PATH trick.
  • If X11 is currently using the display, you'll have to type :
sudo chvt 1 # Equivalent of CTRL+ALT+F1 on a keyboard

To reattach the TTY 1, which will provide a non-locked CRTC, since the X11 CRTC, generally attached to TTY 7, is locked by the X11 process for various valid reasons.

 

The binary looks good though.

Share this post


Link to post
Share on other sites

OMG, so it was a must that it runs outside X11. Sorry,  I read about  'chvt 1'  the first time. I know how to get there.

With regard to performance: The SoC reached 75° , so it is possible that the CPU was throttling,   beside that I have this driver messages (box below).

I have never installed Mali drivers - this is a plain armbian nightly with updates:  Linux tinkerboard 4.14.0-rc7-rockchip #95 SMP PREEMPT Sun Nov 5 01:47:06 CET 2017 armv7l GNU/Linux

 on which I have tried your kernel, but didn't really work. So your kernel is the only thing I ever copied over and switched back to armbian kernel.

Spoiler

 


root@tinkerboard:~# chvt 1
root@tinkerboard:~# glmark2-es2-drm
gbm: failed to open any driver (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
gbm: Last dlopen error: /usr/lib/dri/rockchip_dri.so: cannot open shared object file: No such file or directory
failed to load driver: rockchip
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     VMware, Inc.
    GL_RENDERER:   Gallium 0.4 on llvmpipe (LLVM 4.0, 128 bits)
    GL_VERSION:    OpenGL ES 3.0 Mesa 17.0.7
=======================================================
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false: FPS: 26 FrameTime: 38.462 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=true: FPS: 27 FrameTime: 37.037 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=nearest: FPS: 27 FrameTime: 37.037 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=linear: FPS: 27 FrameTime: 37.037 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=mipmap: FPS: 25 FrameTime: 40.000 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=gouraud: FPS: 27 FrameTime: 37.037 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=blinn-phong-inf: FPS: 23 FrameTime: 43.478 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=phong: FPS: 18 FrameTime: 55.556 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=cel: FPS: 18 FrameTime: 55.556 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=high-poly: FPS: 13 FrameTime: 76.923 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=normals: FPS: 29 FrameTime: 34.483 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=height: FPS: 27 FrameTime: 37.037 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 14 FrameTime: 71.429 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 9 FrameTime: 111.111 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[pulsar] light=false:quads=5:texture=false: FPS: 17 FrameTime: 58.824 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 1 FrameTime: 1000.000 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] effect=shadow:windows=4: FPS: 3 FrameTime: 333.333 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 13 FrameTime: 76.923 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 13 FrameTime: 76.923 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 13 FrameTime: 76.923 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[ideas] speed=duration: FPS: 13 FrameTime: 76.923 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[jellyfish] <default>: FPS: 3 FrameTime: 333.333 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[terrain] <default>: FPS: 0 FrameTime: inf ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shadow] <default>: FPS: 13 FrameTime: 76.923 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[refract] <default>: FPS: 2 FrameTime: 500.000 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 24 FrameTime: 41.667 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 18 FrameTime: 55.556 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 23 FrameTime: 43.478 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=low:fragment-steps=5: FPS: 19 FrameTime: 52.632 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=medium:fragment-steps=5: FPS: 15 FrameTime: 66.667 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 20 FrameTime: 50.000 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 19 FrameTime: 52.632 ms
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 17 FrameTime: 58.824 ms
=======================================================
                                  glmark2 Score: 16 
=======================================================

 

Share this post


Link to post
Share on other sites

If you read this when running glmark2 :

GL_RENDERER: Gallium 0.4 on llvmpipe (LLVM 4.0, 128 bits)

Then you're not using the Mali user-space binary drivers. You're using CPU-bound renderer provided by Mesa.

 

Now, the user-space binary drivers are a pain in the ass tricky to install, since they require a special snowflake X server from Rockchip.

 

What I'd suggest is to :

  • Create a folder
  • Download libmali-midgard-t76x-r14p0-r0p0-wayland.so from rockchip-linux/libmali repository
  • Copy the file in the folder you created, then open a shell in this folder and type
    mv libmali-midgard-* libmali.so
    for file_to_link in libGLESv1_CM.so{,.1} libGLESv2.so{,.2} libEGL.so{,.1} libgbm.so{,.1,.1.0.0} libOpenCL.so{,.1,.1.0.0}; do ln -s libmali.so $file_to_link; done
    LD_LIBRARY_PATH=. glmark2-es2-drm

    Be sure that your user have read-write access to /dev/mali0. Else the test might also fail.

This should recreate all the necessary library file names that are searched by the OpenGL ES 2.x binary and use the instructions stored in libmali.so.

 

Aren't you glad that these drivers are so easy to install... Yeah I should create a wrapper script for that thing... seriously.

Share this post


Link to post
Share on other sites
(edited)

With your help, this sounds easy, a script(wrapper) might not work in every case.  I always login as root, so this shouldn't be a problem.

 

root@tinkerboard:/home/tido/myy-s/mali# for file_to_link in libGLESv1_CM.so{,.1} libGLESv2.so{,.2} libEGL.so{,.1} libgbm.so{,.1,.1.0.0} libOpenCL.so{,.1,.1.0.0}; do ln -s libmali.so $file_to_link; done
ln: failed to create symbolic link 'libGLESv1_CM.so': File exists
ln: failed to create symbolic link 'libGLESv1_CM.so.1': File exists
ln: failed to create symbolic link 'libGLESv2.so': File exists
ln: failed to create symbolic link 'libGLESv2.so.2': File exists
ln: failed to create symbolic link 'libEGL.so': File exists
ln: failed to create symbolic link 'libEGL.so.1': File exists
ln: failed to create symbolic link 'libgbm.so': File exists
ln: failed to create symbolic link 'libgbm.so.1': File exists
ln: failed to create symbolic link 'libgbm.so.1.0.0': File exists
ln: failed to create symbolic link 'libOpenCL.so': File exists
ln: failed to create symbolic link 'libOpenCL.so.1': File exists
ln: failed to create symbolic link 'libOpenCL.so.1.0.0': File exists

root@tinkerboard:/home/tido/myy-s/mali# LD_LIBRARY_PATH=. glmark2-es2-drm
glmark2-es2-drm: error while loading shared libraries: ./libgbm.so.1: invalid ELF header

 

and now let me try to start that beast again :unsure:

root@tinkerboard:~# chvt 1

root@tinkerboard:~# glmark2-es2-drm

 

Even a reboot and re-running of above commands didn't fix it

root@tinkerboard:/home/tido/glmark/glmark2# glmark2-es2-drm
gbm: failed to open any driver (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
gbm: Last dlopen error: /usr/lib/dri/rockchip_dri.so: cannot open shared object file: No such file or directory
failed to load driver: rockchip
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     VMware, Inc.
    GL_RENDERER:   Gallium 0.4 on llvmpipe (LLVM 4.0, 128 bits)
    GL_VERSION:    OpenGL ES 3.0 Mesa 17.0.7
=======================================================
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false:^C FPS: 25 FrameTime: 40.000 ms
=======================================================
                                  glmark2 Score: 25 
=======================================================

 

Edited by Tido
update

Share this post


Link to post
Share on other sites
(edited)

hmm, sounds wrong. Did I download a html instead of the file

 file libmali.so 
libmali.so: HTML document, UTF-8 Unicode text, with very long lines

 

hmm, I got now a 16MB file instead of the 45Kb from yesterday.

By the way, the "file" command is great. Thank you for showing this to me - I was looking for something like that last time I wanted to proof that I copied over the kernel.

I will try again and report

Edited by Tido
the right one

Share this post


Link to post
Share on other sites

This is now different:

root@tinkerboard:/home/tido/myy-s/mali# LD_LIBRARY_PATH=. glmark2-es2-drm
Error: eglGetDisplay() failed with error: 0x3000
Error: eglGetDisplay() failed with error: 0x3000
Error: main: Could not initialize canvas
Error: Failed to restore original CRTC: -13

I try after  chvt 1, et voila:

root@tinkerboard:/home/tido/myy-s/mali# LD_LIBRARY_PATH=. glmark2-es2-drm
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-T760
    GL_VERSION:    OpenGL ES 3.2 v1.r14p0-01rel0-git(966ed26).810f535757d8c9adaaa72f5da29c688e
=======================================================
[build] use-vbo=false: FPS: 55 FrameTime: 18.182 ms
[build] use-vbo=true: FPS: 55 FrameTime: 18.182 ms
[texture] texture-filter=nearest: FPS: 55 FrameTime: 18.182 ms
[texture] texture-filter=linear: FPS: 55 FrameTime: 18.182 ms
[texture] texture-filter=mipmap: FPS: 55 FrameTime: 18.182 ms
[shading] shading=gouraud: FPS: 55 FrameTime: 18.182 ms
[shading] shading=blinn-phong-inf: FPS: 55 FrameTime: 18.182 ms
[shading] shading=phong: FPS: 55 FrameTime: 18.182 ms
[shading] shading=cel: FPS: 55 FrameTime: 18.182 ms
[bump] bump-render=high-poly: FPS: 55 FrameTime: 18.182 ms
[bump] bump-render=normals: FPS: 55 FrameTime: 18.182 ms
[bump] bump-render=height: FPS: 55 FrameTime: 18.182 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 55 FrameTime: 18.182 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 50 FrameTime: 20.000 ms
[pulsar] light=false:quads=5:texture=false: FPS: 55 FrameTime: 18.182 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 27 FrameTime: 37.037 ms
[desktop] effect=shadow:windows=4: FPS: 55 FrameTime: 18.182 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 55 FrameTime: 18.182 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 55 FrameTime: 18.182 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 55 FrameTime: 18.182 ms
[ideas] speed=duration: FPS: 55 FrameTime: 18.182 ms
[jellyfish] <default>: FPS: 55 FrameTime: 18.182 ms
[terrain] <default>: FPS: 13 FrameTime: 76.923 ms
[shadow] <default>: FPS: 55 FrameTime: 18.182 ms
[refract] <default>: FPS: 27 FrameTime: 37.037 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 55 FrameTime: 18.182 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 55 FrameTime: 18.182 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 55 FrameTime: 18.182 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 55 FrameTime: 18.182 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 55 FrameTime: 18.182 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 55 FrameTime: 18.182 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 55 FrameTime: 18.182 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 55 FrameTime: 18.182 ms
=======================================================
                                  glmark2 Score: 51 
=======================================================

 

Wow, in  htop  CPU is close to Zero !

Temperature: around 50° C  steady.

It does need more RAM than before, but not more than 352

 

Share this post


Link to post
Share on other sites

I don't like to read such.

 

Andy, have u seen that Tony liked it?

 

Do u know that u can be grateful, if he does add it and if not, u r free to fix that as well.

 

Share this post


Link to post
Share on other sites

@Tido Glad you make it through. As always, ugly terrain and crystal bunny are the most GPU intensive operations.

I guess that you're screen works at 55Hz ?

 

Anyway, scripting the Mali user-space binary drivers sound nice and all until you realize that, besides wayland (weston only I'd say), DRM (used by almost nobody currently) and fbdev (used only by mediacenter-like distros), they won't be very useful. The X11 ones require a specific X Server, or you'll get a terrific crash when X starts...


Anyway, something like :

mkdir -p ~/.local/lib
cd ~/.local/lib
wget https://github.com/rockchip-linux/libmali/raw/rockchip/lib/arm-linux-gnueabihf/libmali-midgard-t76x-r14p0-r1p0-wayland.so -O libmali.so
for file_to_link in libGLESv1_CM.so{,.1} libGLESv2.so{,.2} libEGL.so{,.1} libgbm.so{,.1,.1.0.0} libOpenCL.so{,.1,.1.0.0}; do ln -s libmali.so $file_to_link; done
echo "alias mali_exec LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:`echo ~/.local/lib`" >> ~/.bashrc

Might do the trick for now. This is actually untested though. This should add a "mali_exec" command that can be used like this :

mali_exec glmark2-es2-drm

Providing a Nvidia Optimus bumblebee-like execution mechanism.

Share this post


Link to post
Share on other sites

Thank you and Thank YOU very much for your support.
It was a pleasure seeing it drawing the patterns and do this easy @ 53°C and about 7% CPU load.

 

1 hour ago, Myy said:

I guess that you're screen works at 55Hz ?

I checked, 56Hz it says when the tinker board is connected on Windows I ran that Display at 60Hz.
Does this explain the FPS maxium, I saw you reached 59 ?

 

1 hour ago, Myy said:

besides wayland, DRM and fbdev, it won't be very useful.

I guess this reflects your comment about the link I provided you here: https://forum.armbian.com/topic/5416-gpu-driver/?do=findComment&comment=42374

Which means that this test is great for KODI or other applications like a Music-Player that runs with fbdev, but for nothing else. Could it be used in conjunction with a touch-screen ?

Share this post


Link to post
Share on other sites
10 hours ago, Tido said:

I checked, 56Hz it says when the tinker board is connected on Windows I ran that Display at 60Hz.
Does this explain the FPS maxium, I saw you reached 59 ?

Indeed, the DRM tests are VSync'ed by default. So you'll get ~1 FPS/Hz .

I got 59 on a cold boot but when using a proper power supply, it stays at 60 for most of the tests, beside crystal bunny and that ugly terrain.

 

Note that the special X server can be installed more easily if you have you use Zesty or Arftul repositories. However, I really doubt that any Armbian people could help you if that patched X Server becomes broken.

 

If I have the time, I'll try, once again, to use plasma-desktop + KWin Wayland/DRM with the Mali drivers and see how it goes... It will probably fail miserably though, with no useful error messages.

Share this post


Link to post
Share on other sites

Armbian currently uses XFCE (which has the biggest lag with regard to GTK+3), which is very light. Plasma-DE is not as heavy as always repeated from some people and tinker board comes with 2GB Ram.
I am not sure if what I heard was related to NEON (KDE) but KDE has taken big steps in direction Wayland.

However, I guess with the outlook to Ubuntu 18.04, more optimization are coming automatically.

Share this post


Link to post
Share on other sites

Not to be a demanding troll, but would it be possible to go through this thread, create a tutorial, and stick it in the tutorial section?  The parts that can be implemented can be over time, in the meantime a spoon-fed version would help those that have need of it.

Share this post


Link to post
Share on other sites

All I did was getting GLMARK installed to see if it works properly. Using the   libmali-midgard-t76x-r14p0-r1p0-wayland.so   is a walk in the park.

 

The tutorial has already been written by Myy.

Download the Nightly, in my case it was: Armbian_5.34._Tinkerboard_Ubuntu_xenial_dev_4.14.0-rc6_desktop.img -  https://dl.armbian.com/tinkerboard/nightly/

and apply above tutorial... in which are the drawbacks already outlined.

Share this post


Link to post
Share on other sites

Hello

  • Just to understand a little bit can we use the binary libmali with lastest kernel with patch (Myy) or it 's necessary to start from 4.4 kernel and port mainline patches to 4.4 kernel?
    I buy an rk3328 device only because it's seem there is an kernel - not prehistoric - with gpu available but after some read i find documentation poor and community less active (in number) than sunxi linux team. I hope to be able to compile QT5 webkit  with gpu mesa dependancy but maybe it's very early to dream about it :)

    A link to Myy tutorial (RK3288) if already exist need to be under light ^^
    Tks for what is sharing here

Share this post


Link to post
Share on other sites

To my understanding, did you go/read through that thread, I am asking, because just above your post it says: 4.14.0-rc6 .

So have you taken the time to read or not ?

Share this post


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

To my understanding, did you go/read through that thread, I am asking, because just above your post it says: 4.14.0-rc6 .

So have you taken the time to read or not ?

The tutorial has already been written by Myy.

 

Well u are right, i misreading first page, sorrye
Plz share a link to the tutorial, i don't find it

 

Share this post


Link to post
Share on other sites
19 hours ago, boobypi said:

Plz share a link to the tutorial

Well, if you do all steps in this posting.. you should get this running:

=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-T760
    GL_VERSION:    OpenGL ES 3.2 v1.r14p0-01rel0-git(966ed26).810f535757d8c9adaaa72f5da29c688e
=======================================================

If this helps you - I simply don't know.

Share this post


Link to post
Share on other sites

Do you know your link with comment reference isn't working in firefox? I have to check the share button to see proposed url and find the tutorial
Maybe it's more simple to make an pdf or a quote like this :

On 11/8/2017 at 9:54 AM, Myy said:

@Tido Glad you make it through. As always, ugly terrain and crystal bunny are the most GPU intensive operations.

I guess that you're screen works at 55Hz ?

 

Anyway, scripting the Mali user-space binary drivers sound nice and all until you realize that, besides wayland (weston only I'd say), DRM (used by almost nobody currently) and fbdev (used only by mediacenter-like distros), they won't be very useful. The X11 ones require a specific X Server, or you'll get a terrific crash when X starts...


Anyway, something like :


mkdir -p ~/.local/lib
cd ~/.local/lib
wget https://github.com/rockchip-linux/libmali/raw/rockchip/lib/arm-linux-gnueabihf/libmali-midgard-t76x-r14p0-r1p0-wayland.so -O libmali.so
for file_to_link in libGLESv1_CM.so{,.1} libGLESv2.so{,.2} libEGL.so{,.1} libgbm.so{,.1,.1.0.0} libOpenCL.so{,.1,.1.0.0}; do ln -s libmali.so $file_to_link; done
echo "alias mali_exec LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:`echo ~/.local/lib`" >> ~/.bashrc

Might do the trick for now. This is actually untested though. This should add a "mali_exec" command that can be used like this :


mali_exec glmark2-es2-drm

Providing a Nvidia Optimus bumblebee-like execution mechanism.

Share this post


Link to post
Share on other sites
39 minutes ago, boobypi said:

Do you know your link with comment reference isn't working in firefox?

I know, but it does. The trick is: click on my Link.. wait, click in the addressbar - hit ENTER.  Bang !  B)

 

Share this post


Link to post
Share on other sites

@Myy, I am just reading about the new features of 4.14 release and come across this: Direct Rendering Manager (DRM)

When you wrote about it, I always thought, why does he care about Digital Rights Management :D

Share this post


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

@Myy, I am just reading about the new features of 4.14 release and come across this: Direct Rendering Manager (DRM)

When you wrote about it, I always thought, why does he care about Digital Rights Management :D

 

Yeah, I only care about the the Direct Rendering Manager system (・ω・`;)

 

Now, I understand everyone requests for a better documentation on how to install and use the Mali user-space binary drivers. This has been asked on my repository too, and I just started and untested draft in the Wiki of my repository, until I find a better way to format and distribute such documentation.

Still, I repeat, this is untested for now.

Share this post


Link to post
Share on other sites

So, since I received my microSD correctly, I've been able to test the Tinkerboard with my kernels, using an Armbian image as a basis (along with some microSD cards), and I hit one of the bugs that were reported on my Github page.

 

This bug triggers an endless stream or error messages which talk about the DRM driver trying to bind something through the MIPI output and failing. Which is perfectly normal since I didn't plug anything in MIPI (nor HDMI when the bug was triggered). Still, blocked the boot phase.
With the original boot.scr, it seemed to trigger a quick reboot continuously, but I don't know if it's because of that bug since I got no output on the serial console when that happened with that configuration (just U-boot output, booting, and U-boot output again, ...). Switching to extlinux/extlinux.conf configuration displayed the error messages, with no reboot.


Anyway, the only solution I found to sidestep the issue at the moment is to avoid adding a mipi_dsi node to the Tinkerboard DTS which... removes the MIPI DSI capabilities of the board, yeah...

So, basically, I don't apply the patch that adds the mipi_dsi node to the rk3288-tinker.dts for the moment.

 

However, if I get a touchscreen, I'll still try to see if I can enable such functionnality without triggering the same issue.

Share this post


Link to post
Share on other sites

Mainline does not support that touchscreen yet, the changes to the drm system from 4.4 to 4.14, and the "special code" used in the 4.4 made me pause before patching any changes in.  There are tons of mipi/DSI patches in the pipework, so I'll have to revisit it.  For now pulling that node is perfectly acceptable.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
2 2