はじめに
Lima とは Mali-400/450 用のオープンソースなグラフィックドライバです。筆者は Lima を ZynqMP 向け Ubuntu 22.04 で試験的に動かしてみました。動かすのに少々苦労したので、その方法を何回かに分けて説明します。
- 概要編
- DRM Lima 編
- DRI Lima 編
- 共有バッファ編
- ストライド問題編
- GEM キャッシュ編
- インストール編
- glmark2編(この記事)
この記事では Ultra96-V2/KV260 + Lima + Ubuntu 22.04 OpenGL のベンチマークソフト(glmark2) を走らせた結果を示します。
準備
Ubuntu22.04 がパッケージとして提供している glmark2 だと何故か Segmentation fault が発生して動きませんでした。
Ubuntu22.04 glmark2 error log
fpga@ubuntu-fpga:~$ sudo apt install glmark2
Reading package lists... Done
Building dependency tree... Done
Reading state information... DoneThe following additional packages will be installed:
glmark2-data
The following NEW packages will be installed:
glmark2 glmark2-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 6015 kB of archives.
After this operation, 10.1 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 glmark2-data all 2021.02-0ubuntu1 [5837kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 glmark2 arm64 2021.02-0ubuntu1 [178 kB] Fetched 6015 kB in 3s (1724 kB/s)
Selecting previously unselected package glmark2-data.
(Reading database ... 83202 files and directories currently installed.)
Preparing to unpack .../glmark2-data_2021.02-0ubuntu1_all.deb ...
Unpacking glmark2-data (2021.02-0ubuntu1) ...
Selecting previously unselected package glmark2.
Preparing to unpack .../glmark2_2021.02-0ubuntu1_arm64.deb ...
Unpacking glmark2 (2021.02-0ubuntu1) ...
Setting up glmark2-data (2021.02-0ubuntu1) ...
Setting up glmark2 (2021.02-0ubuntu1) ...
Processing triggers for man-db (2.10.2-1) ...
fpga@ubuntu-fpga:~$ /usr/bin/glmark2
=======================================================
glmark2 2021.02
=======================================================
OpenGL Information
GL_VENDOR: lima
GL_RENDERER: Mali400
GL_VERSION: 2.1 Mesa 22.0.5 (git-d88d2f3687)
=======================================================
[build] use-vbo=false: FPS: 325 FrameTime: 3.077 ms
[build] use-vbo=true: FPS: 364 FrameTime: 2.747 ms
[texture] texture-filter=nearest: FPS: 258 FrameTime: 3.876 ms
[texture] texture-filter=linear: FPS: 252 FrameTime: 3.968 ms
Segmentation fault
そこで、glmark2 をソースからビルドしてインストールします。
glmark2 の ダウンロード
fpga@ubuntu-fpga:~$ git clone https://github.com/glmark2/glmark2.git
Cloning into 'glmark2'...
remote: Enumerating objects: 6631, done.
remote: Counting objects: 100% (328/328), done.
remote: Compressing objects: 100% (148/148), done.
remote: Total 6631 (delta 177), reused 304 (delta 165), pack-reused 6303
Receiving objects: 100% (6631/6631), 14.04 MiB | 11.81 MiB/s, done.
Resolving deltas: 100% (4059/4059), done.
ビルドの準備
fpga@ubuntu-fpga:~$ cd glmark2
fpga@ubuntu-fpga:~/glmark2$ sudo apt install libjpeg-dev libx11-dev libpng-dev libdrm-dev libgbm-dev libudev-dev
ビルド
fpga@ubuntu-fpga:~/glmark2$ fpga@ubuntu-fpga:~/glmark2$ ./waf configure --with-flavors=x11-gl
Setting top to : /home/fpga/glmark2
Setting out to : /home/fpga/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 stdint.h : yes
Checking for header stdio.h : yes
Checking for header dlfcn.h : yes
Checking for header unistd.h : yes
Checking for header jpeglib.h : yes
Checking for header math.h : yes
Checking for header string.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' : not found
Checking for 'libpng15' : not found
Checking for 'libpng16' : yes
Checking for 'x11' : yes
Checking for 'libdrm' : yes
Checking for 'gbm' : yes
Checking for 'libudev' : yes
Checking for 'mirclient' : not found
Checking for 'wayland-client' : not found
Checking for 'wayland-cursor' : not found
Checking for 'wayland-egl' : not found
Prefix : /usr/local
Data path : /usr/local/share/glmark2
Including extras : No
Building flavors : ['x11-gl']
'configure' finished successfully (5.083s)
fpga@ubuntu-fpga:~/glmark2$ fpga@ubuntu-fpga:~/glmark2$ ./waf
Waf: Entering directory `/home/fpga/glmark2/build'
[ 1/70] Compiling src/main.cpp
[ 2/70] Compiling src/canvas-generic.cpp
[ 3/70] Compiling src/native-state-x11.cpp
[ 4/70] Compiling src/gl-state-glx.cpp
[ 5/70] Compiling src/glad/src/glx.c
[ 6/70] Compiling src/glad/src/gl.c
:
(中略)
:
[67/70] Compiling doc/glmark2.1.in
[68/70] Linking build/src/libmatrix-gl.a
[69/70] Linking build/src/libcommon-gl.a
[70/70] Linking build/src/glmark2
Waf: Leaving directory `/home/fpga/glmark2/build'
'build' finished successfully (2m24.584s)
インストール
fpga@ubuntu-fpga:~/glmark2$ fpga@ubuntu-fpga:~/glmark2$ sudo ./waf install
Waf: Entering directory `/home/fpga/glmark2/build'
:
(中略)
:
Waf: Leaving directory `/home/fpga/glmark2/build'
'install' finished successfully (1.169s)
実行
Ultra96-V2 および KV260 で実行します。Lima を有効にしなかった場合、Lima を有効にしたけど CPU キャッシュがオフになっていた場合、Lima を有効にしてかつ CPU キャッシュをオンにした場合の実行結果を示します。ついでに --off-screen オプションで画像を表示しなかった場合も示します。
Ultra96-V2 Lima 無し
u96v2-lima-none.log
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: Mesa/X.org
GL_RENDERER: llvmpipe (LLVM 13.0.1, 128 bits)
GL_VERSION: 4.5 (Compatibility Profile) Mesa 22.0.5
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0
Surface Size: 800x600 windowed
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false: FPS: 27 FrameTime: 37.037 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=true: FPS: 26 FrameTime: 38.462 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=nearest: FPS: 34 FrameTime: 29.412 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=linear: FPS: 34 FrameTime: 29.412 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=mipmap: FPS: 30 FrameTime: 33.333 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=gouraud: FPS: 21 FrameTime: 47.619 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=blinn-phong-inf: FPS: 20 FrameTime: 50.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=phong: FPS: 19 FrameTime: 52.632 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=cel: FPS: 19 FrameTime: 52.632 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=high-poly: FPS: 11 FrameTime: 90.909 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=normals: FPS: 38 FrameTime: 26.316 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=height: FPS: 36 FrameTime: 27.778 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 22 FrameTime: 45.455 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 19 FrameTime: 52.632 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[pulsar] light=false:quads=5:texture=false: FPS: 32 FrameTime: 31.250 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 8 FrameTime: 125.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] effect=shadow:windows=4: FPS: 13 FrameTime: 76.923 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 16 FrameTime: 62.500 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 16 FrameTime: 62.500 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 17 FrameTime: 58.824 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[ideas] speed=duration: FPS: 23 FrameTime: 43.478 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[jellyfish] <default>: FPS: 14 FrameTime: 71.429 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[terrain] <default>: FPS: 1 FrameTime: 1000.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shadow] <default>: FPS: 15 FrameTime: 66.667 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[refract] <default>: FPS: 2 FrameTime: 500.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 25 FrameTime: 40.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 24 FrameTime: 41.667 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 26 FrameTime: 38.462 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=low:fragment-steps=5: FPS: 24 FrameTime: 41.667 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=medium:fragment-steps=5: FPS: 23 FrameTime: 43.478 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 24 FrameTime: 41.667 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 24 FrameTime: 41.667 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 24 FrameTime: 41.667 ms
=======================================================
glmark2 Score: 21
=======================================================
Ultra96-V2 Lima 有り CPU キャッシュオフ
u96v2-lima-cacheoff.log
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: lima
GL_RENDERER: Mali400
GL_VERSION: 2.1 Mesa 22.0.5 (git-d88d2f3687)
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 22 FrameTime: 45.455 ms
[build] use-vbo=true: FPS: 23 FrameTime: 43.478 ms
[texture] texture-filter=nearest: FPS: 22 FrameTime: 45.455 ms
[texture] texture-filter=linear: FPS: 23 FrameTime: 43.478 ms
[texture] texture-filter=mipmap: FPS: 23 FrameTime: 43.478 ms
[shading] shading=gouraud: FPS: 22 FrameTime: 45.455 ms
[shading] shading=blinn-phong-inf: FPS: 22 FrameTime: 45.455 ms
[shading] shading=phong: FPS: 22 FrameTime: 45.455 ms
[shading] shading=cel: FPS: 22 FrameTime: 45.455 ms
[bump] bump-render=high-poly: FPS: 20 FrameTime: 50.000 ms
[bump] bump-render=normals: FPS: 23 FrameTime: 43.478 ms
[bump] bump-render=height: FPS: 23 FrameTime: 43.478 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 23 FrameTime: 43.478 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 23 FrameTime: 43.478 ms
[pulsar] light=false:quads=5:texture=false: FPS: 23 FrameTime: 43.478 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 20 FrameTime: 50.000 ms
[desktop] effect=shadow:windows=4: FPS: 22 FrameTime: 45.455 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 21 FrameTime: 47.619 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 21 FrameTime: 47.619 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 21 FrameTime: 47.619 ms
[ideas] speed=duration: FPS: 22 FrameTime: 45.455 ms
[jellyfish] <default>: FPS: 22 FrameTime: 45.455 ms
[terrain] <default>: Unsupported
[shadow] <default>: FPS: 20 FrameTime: 50.000 ms
[refract] <default>: FPS: 12 FrameTime: 83.333 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 23 FrameTime: 43.478 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 23 FrameTime: 43.478 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 23 FrameTime: 43.478 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 23 FrameTime: 43.478 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 23 FrameTime: 43.478 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 23 FrameTime: 43.478 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 23 FrameTime: 43.478 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 23 FrameTime: 43.478 ms
=======================================================
glmark2 Score: 21
=======================================================
Ultra96-V2 Lima 有り CPU キャッシュオン
u96v2-lima-cacheon.log
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: lima
GL_RENDERER: Mali400
GL_VERSION: 2.1 Mesa 22.0.5 (git-d88d2f3687)
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 130 FrameTime: 7.692 ms
[build] use-vbo=true: FPS: 153 FrameTime: 6.536 ms
[texture] texture-filter=nearest: FPS: 146 FrameTime: 6.849 ms
[texture] texture-filter=linear: FPS: 145 FrameTime: 6.897 ms
[texture] texture-filter=mipmap: FPS: 151 FrameTime: 6.623 ms
[shading] shading=gouraud: FPS: 129 FrameTime: 7.752 ms
[shading] shading=blinn-phong-inf: FPS: 75 FrameTime: 13.333 ms
[shading] shading=phong: FPS: 70 FrameTime: 14.286 ms
[shading] shading=cel: FPS: 47 FrameTime: 21.277 ms
[bump] bump-render=high-poly: FPS: 66 FrameTime: 15.152 ms
[bump] bump-render=normals: FPS: 131 FrameTime: 7.634 ms
[bump] bump-render=height: FPS: 84 FrameTime: 11.905 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 42 FrameTime: 23.810 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 19 FrameTime: 52.632 ms
[pulsar] light=false:quads=5:texture=false: FPS: 170 FrameTime: 5.882 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 30 FrameTime: 33.333 ms
[desktop] effect=shadow:windows=4: FPS: 97 FrameTime: 10.309 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 60 FrameTime: 16.667 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 60 FrameTime: 16.667 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 80 FrameTime: 12.500 ms
[ideas] speed=duration: FPS: 71 FrameTime: 14.085 ms
[jellyfish] <default>: FPS: 45 FrameTime: 22.222 ms
Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
[terrain] <default>: Unsupported
[shadow] <default>: FPS: 59 FrameTime: 16.949 ms
[refract] <default>: FPS: 11 FrameTime: 90.909 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 135 FrameTime: 7.407 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 72 FrameTime: 13.889 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 135 FrameTime: 7.407 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 79 FrameTime: 12.658 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: 67 FrameTime: 14.925 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 65 FrameTime: 15.385 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 42 FrameTime: 23.810 ms
=======================================================
glmark2 Score: 85
=======================================================
Ultra96-V2 オフスクリーン
u96v2-off-screen.log
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: lima
GL_RENDERER: Mali400
GL_VERSION: 2.1 Mesa 22.0.5 (git-d88d2f3687)
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 290 FrameTime: 3.448 ms
[build] use-vbo=true: FPS: 312 FrameTime: 3.205 ms
[texture] texture-filter=nearest: FPS: 320 FrameTime: 3.125 ms
[texture] texture-filter=linear: FPS: 311 FrameTime: 3.215 ms
[texture] texture-filter=mipmap: FPS: 321 FrameTime: 3.115 ms
[shading] shading=gouraud: FPS: 208 FrameTime: 4.808 ms
[shading] shading=blinn-phong-inf: FPS: 146 FrameTime: 6.849 ms
[shading] shading=phong: FPS: 103 FrameTime: 9.709 ms
[shading] shading=cel: FPS: 77 FrameTime: 12.987 ms
[bump] bump-render=high-poly: FPS: 74 FrameTime: 13.514 ms
[bump] bump-render=normals: FPS: 251 FrameTime: 3.984 ms
[bump] bump-render=height: FPS: 207 FrameTime: 4.831 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 75 FrameTime: 13.333 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 24 FrameTime: 41.667 ms
[pulsar] light=false:quads=5:texture=false: FPS: 473 FrameTime: 2.114 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 41 FrameTime: 24.390 ms
[desktop] effect=shadow:windows=4: FPS: 145 FrameTime: 6.897 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 77 FrameTime: 12.987 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 78 FrameTime: 12.821 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 95 FrameTime: 10.526 ms
[ideas] speed=duration: FPS: 111 FrameTime: 9.009 ms
[jellyfish] <default>: FPS: 78 FrameTime: 12.821 ms
Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
[terrain] <default>: Unsupported
[shadow] <default>: FPS: 102 FrameTime: 9.804 ms
[refract] <default>: FPS: 12 FrameTime: 83.333 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 256 FrameTime: 3.906 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 141 FrameTime: 7.092 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 245 FrameTime: 4.082 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 183 FrameTime: 5.464 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 97 FrameTime: 10.309 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 159 FrameTime: 6.289 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 159 FrameTime: 6.289 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 70 FrameTime: 14.286 ms
=======================================================
glmark2 Score: 163
=======================================================
KV260 Lima 無し
kv260-lima-none.log
libGL error: failed to create dri screen
libGL error: failed to load driver: xlnx
libGL error: failed to create dri screen
libGL error: failed to load driver: xlnx
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: Mesa/X.org
GL_RENDERER: llvmpipe (LLVM 13.0.1, 128 bits)
GL_VERSION: 4.5 (Compatibility Profile) Mesa 22.0.5
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0
Surface Size: 800x600 windowed
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false: FPS: 43 FrameTime: 23.256 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=true: FPS: 42 FrameTime: 23.810 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=nearest: FPS: 56 FrameTime: 17.857 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=linear: FPS: 52 FrameTime: 19.231 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=mipmap: FPS: 44 FrameTime: 22.727 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=gouraud: FPS: 29 FrameTime: 34.483 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=blinn-phong-inf: FPS: 27 FrameTime: 37.037 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=phong: FPS: 25 FrameTime: 40.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=cel: FPS: 25 FrameTime: 40.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=high-poly: FPS: 14 FrameTime: 71.429 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=normals: FPS: 62 FrameTime: 16.129 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=height: FPS: 56 FrameTime: 17.857 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 32 FrameTime: 31.250 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 27 FrameTime: 37.037 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[pulsar] light=false:quads=5:texture=false: FPS: 44 FrameTime: 22.727 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 8 FrameTime: 125.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] effect=shadow:windows=4: FPS: 19 FrameTime: 52.632 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 21 FrameTime: 47.619 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 22 FrameTime: 45.455 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** 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: 23 FrameTime: 43.478 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[ideas] speed=duration: FPS: 17 FrameTime: 58.824 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[jellyfish] <default>: FPS: 15 FrameTime: 66.667 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[terrain] <default>: FPS: 0 FrameTime: inf ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shadow] <default>: FPS: 19 FrameTime: 52.632 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[refract] <default>: FPS: 2 FrameTime: 500.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 36 FrameTime: 27.778 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 35 FrameTime: 28.571 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 37 FrameTime: 27.027 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=low:fragment-steps=5: FPS: 34 FrameTime: 29.412 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=medium:fragment-steps=5: FPS: 33 FrameTime: 30.303 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 35 FrameTime: 28.571 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 35 FrameTime: 28.571 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 34 FrameTime: 29.412 ms
=======================================================
glmark2 Score: 30
=======================================================
KV260 Lima 有り CPUキャッシュオフ
kv260-lima-cacheoff.log
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: lima
GL_RENDERER: Mali400
GL_VERSION: 2.1 Mesa 22.0.5 (git-d88d2f3687)
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 51 FrameTime: 19.608 ms
[build] use-vbo=true: FPS: 51 FrameTime: 19.608 ms
[texture] texture-filter=nearest: FPS: 50 FrameTime: 20.000 ms
[texture] texture-filter=linear: FPS: 54 FrameTime: 18.519 ms
[texture] texture-filter=mipmap: FPS: 53 FrameTime: 18.868 ms
[shading] shading=gouraud: FPS: 52 FrameTime: 19.231 ms
[shading] shading=blinn-phong-inf: FPS: 52 FrameTime: 19.231 ms
[shading] shading=phong: FPS: 52 FrameTime: 19.231 ms
[shading] shading=cel: FPS: 51 FrameTime: 19.608 ms
[bump] bump-render=high-poly: FPS: 46 FrameTime: 21.739 ms
[bump] bump-render=normals: FPS: 53 FrameTime: 18.868 ms
[bump] bump-render=height: FPS: 54 FrameTime: 18.519 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 54 FrameTime: 18.519 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 21 FrameTime: 47.619 ms
[pulsar] light=false:quads=5:texture=false: FPS: 51 FrameTime: 19.608 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 44 FrameTime: 22.727 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: 47 FrameTime: 21.277 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 49 FrameTime: 20.408 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 50 FrameTime: 20.000 ms
[ideas] speed=duration: FPS: 52 FrameTime: 19.231 ms
[jellyfish] <default>: FPS: 53 FrameTime: 18.868 ms
Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
[terrain] <default>: Unsupported
[shadow] <default>: FPS: 50 FrameTime: 20.000 ms
[refract] <default>: FPS: 15 FrameTime: 66.667 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 53 FrameTime: 18.868 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 53 FrameTime: 18.868 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 54 FrameTime: 18.519 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 54 FrameTime: 18.519 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 53 FrameTime: 18.868 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 54 FrameTime: 18.519 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 54 FrameTime: 18.519 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 54 FrameTime: 18.519 ms
=======================================================
glmark2 Score: 49
=======================================================
KV260 Lima 有り CPUキャッシュオン
kv260-lima-cacheon.log
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: lima
GL_RENDERER: Mali400
GL_VERSION: 2.1 Mesa 22.0.5 (git-d88d2f3687)
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 325 FrameTime: 3.077 ms
[build] use-vbo=true: FPS: 369 FrameTime: 2.710 ms
[texture] texture-filter=nearest: FPS: 260 FrameTime: 3.846 ms
[texture] texture-filter=linear: FPS: 254 FrameTime: 3.937 ms
[texture] texture-filter=mipmap: FPS: 249 FrameTime: 4.016 ms
[shading] shading=gouraud: FPS: 236 FrameTime: 4.237 ms
[shading] shading=blinn-phong-inf: FPS: 152 FrameTime: 6.579 ms
[shading] shading=phong: FPS: 100 FrameTime: 10.000 ms
[shading] shading=cel: FPS: 64 FrameTime: 15.625 ms
[bump] bump-render=high-poly: FPS: 109 FrameTime: 9.174 ms
[bump] bump-render=normals: FPS: 181 FrameTime: 5.525 ms
[bump] bump-render=height: FPS: 150 FrameTime: 6.667 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 52 FrameTime: 19.231 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 21 FrameTime: 47.619 ms
[pulsar] light=false:quads=5:texture=false: FPS: 380 FrameTime: 2.632 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 37 FrameTime: 27.027 ms
[desktop] effect=shadow:windows=4: FPS: 128 FrameTime: 7.812 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 119 FrameTime: 8.403 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 118 FrameTime: 8.475 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 137 FrameTime: 7.299 ms
[ideas] speed=duration: FPS: 123 FrameTime: 8.130 ms
[jellyfish] <default>: FPS: 56 FrameTime: 17.857 ms
Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
[terrain] <default>: Unsupported
[shadow] <default>: FPS: 92 FrameTime: 10.870 ms
[refract] <default>: FPS: 15 FrameTime: 66.667 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 178 FrameTime: 5.618 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 92 FrameTime: 10.870 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 179 FrameTime: 5.587 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 123 FrameTime: 8.130 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 62 FrameTime: 16.129 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 122 FrameTime: 8.197 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 123 FrameTime: 8.130 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 50 FrameTime: 20.000 ms
=======================================================
glmark2 Score: 145
=======================================================
KV260 オフスクリーン
kv260-off-screen.log
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: lima
GL_RENDERER: Mali400
GL_VERSION: 2.1 Mesa 22.0.5 (git-d88d2f3687)
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 364 FrameTime: 2.747 ms
[build] use-vbo=true: FPS: 383 FrameTime: 2.611 ms
[texture] texture-filter=nearest: FPS: 437 FrameTime: 2.288 ms
[texture] texture-filter=linear: FPS: 427 FrameTime: 2.342 ms
[texture] texture-filter=mipmap: FPS: 417 FrameTime: 2.398 ms
[shading] shading=gouraud: FPS: 241 FrameTime: 4.149 ms
[shading] shading=blinn-phong-inf: FPS: 171 FrameTime: 5.848 ms
[shading] shading=phong: FPS: 111 FrameTime: 9.009 ms
[shading] shading=cel: FPS: 81 FrameTime: 12.346 ms
[bump] bump-render=high-poly: FPS: 95 FrameTime: 10.526 ms
[bump] bump-render=normals: FPS: 295 FrameTime: 3.390 ms
[bump] bump-render=height: FPS: 239 FrameTime: 4.184 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 77 FrameTime: 12.987 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 24 FrameTime: 41.667 ms
[pulsar] light=false:quads=5:texture=false: FPS: 563 FrameTime: 1.776 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 49 FrameTime: 20.408 ms
[desktop] effect=shadow:windows=4: FPS: 183 FrameTime: 5.464 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 101 FrameTime: 9.901 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 101 FrameTime: 9.901 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 118 FrameTime: 8.475 ms
[ideas] speed=duration: FPS: 135 FrameTime: 7.407 ms
[jellyfish] <default>: FPS: 82 FrameTime: 12.195 ms
Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
[terrain] <default>: Unsupported
[shadow] <default>: FPS: 139 FrameTime: 7.194 ms
[refract] <default>: FPS: 15 FrameTime: 66.667 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 275 FrameTime: 3.636 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 146 FrameTime: 6.849 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 259 FrameTime: 3.861 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 190 FrameTime: 5.263 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 99 FrameTime: 10.101 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 165 FrameTime: 6.061 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 165 FrameTime: 6.061 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 71 FrameTime: 14.085 ms
=======================================================
glmark2 Score: 194
=======================================================
結果
下の表に glmark2 のベンチマーク結果を示します。
Case | glmark2 | ||||
Machine | Screen | Lima | Cache | Surface Size | Score |
Ultra96-V2 | on | none | - | 800x600 | 21 |
on | valid | off | 21 | ||
on | valid | on | 85 | ||
off | valid | on | 163 | ||
KV260 | on | none | - | 800x600 | 30 |
on | valid | off | 49 | ||
on | valid | on | 145 | ||
off | valid | on | 194 |
参考
ブートイメージ
以下の URL にLima に対応した Ultra96/Ultra96-V2/KV260 向け Ubuntu22.04 のブートイメージを提供しています。使ってみたい人は注意事項を確認のうえインストールしてみてください。
その他
- Lima web (https://gitlab.freedesktop.org/lima/web)
- Mesa 3D and Direct Rendering Infrastructure wiki (https://dri.freedesktop.org/wiki)