Ultra96/Ultra96-V2 向け Debian GNU/Linux で X Window を動かす(glmark2 編)

# はじめに


筆者は Ultra96/Ultra96-V2(ZynqMP) 向けに Debian GNU/Linux を提供しています[1]。提供している Debian GNU/Linux は CUI ベースですが、今回 GUI に対応するために X Window Systemを Ultra96/Ultra96-V2 で動くようにしました。

そこで Ultra96/Ultra96-V2 で X Window System を動かすための手順を幾つかのパートに分けて説明します。

  * [概要編]
  * [Video Driver 編]
  * [Mali Driver 編]
  * [LibMali 編]
  * [fbdev 編]
  * glmark2 編 (この記事)

この記事では Video Driver(xserver-xorg-video-armsoc-xilinx) + GPU(Mali-400) に対応した X Window System 上で OpenGL のベンチマークソフト(glmark2) を走らせた結果を示します。

# 準備

## glmark2 のダウンロード

<details>
<summary>git clone https://github.com/glmark2/glmark2.git</summary>
<div>

```console
shell$ git clone https://github.com/glmark2/glmark2.git
Cloning into 'glmark2'...
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 6049 (delta 5), reused 4 (delta 2), pack-reused 6036
Receiving objects: 100% (6049/6049), 12.95 MiB | 670.00 KiB/s, done.
Resolving deltas: 100% (3749/3749), done.
```

</div>
</details>

## libx11-dev libjpeg-dev libpng-dev のインストール

```console
shell$ sudo apt install libx11-dev libjpeg-dev libpng-dev
  :
  後略
```

## OpenGLESv2 のインストール

glmark2 は OpenGLESv2 を使います。もしまだ OpenGLESv2 をインストールしていないならば、Ultra96/Ultra96-V2 用の OpenGLESv2 パッケージをインストールしておきます。このパッケージの詳細は [LibMali 編] を参照してください。

<details>
<summary>dpkg -i libgles2-zynqmp_1.7-0_arm64.deb</summary>
<div>

```console
shell# dpkg -i libgles2-zynqmp_1.7-0_arm64.deb
Selecting previously unselected package libgles2-zynqmp:arm64.
(Reading database ... 85081 files and directories currently installed.)
Preparing to unpack libgles2-zynqmp_1.7-0_arm64.deb ...
Unpacking libgles2-zynqmp:arm64 (1.7-0) ...
Setting up libgles2-zynqmp:arm64 (1.7-0) ...
```

</div>
</details>

## LibMali 開発パッケージのインストール

<details>
<summary>dpkg -i libmali-zynqmp-dev_1.7-0_arm64.deb</summary>
<div>

```console
shell# dpkg -i libmali-zynqmp-dev_1.7-0_arm64.deb 
Selecting previously unselected package libmali-zynqmp-dev:arm64.
(Reading database ... 85097 files and directories currently installed.)
Preparing to unpack libmali-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libmali-zynqmp-dev:arm64 (1.7-0) ...
Setting up libmali-zynqmp-dev:arm64 (1.7-0) ...
```

</div>
</details>


<details>
<summary>dpkg -i libegl1-zynqmp-dev_1.7-0_arm64.deb</summary>
<div>

```console
shell# dpkg -i libegl1-zynqmp-dev_1.7-0_arm64.deb 
Selecting previously unselected package libegl1-zynqmp-dev:arm64.
(Reading database ... 85101 files and directories currently installed.)
Preparing to unpack libegl1-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libegl1-zynqmp-dev:arm64 (1.7-0) ...
Setting up libegl1-zynqmp-dev:arm64 (1.7-0) ...
```

</div>
</details>

<details>
<summary>dpkg -i libgles2-zynqmp-dev_1.7-0_arm64.deb</summary>
<div>

```console
shell# dpkg -i libgles2-zynqmp-dev_1.7-0_arm64.deb 
Selecting previously unselected package libgles2-zynqmp-dev:arm64.
(Reading database ... 85110 files and directories currently installed.)
Preparing to unpack libgles2-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libgles2-zynqmp-dev:arm64 (1.7-0) ...
Setting up libgles2-zynqmp-dev:arm64 (1.7-0) ...
```

</div>
</details>

<details>
<summary>dpkg -i libgbm-zynqmp-dev_1.7-0_arm64.deb</summary>
<div>

```console
shell# dpkg -i libgbm-zynqmp-dev_1.7-0_arm64.deb 
Selecting previously unselected package libgbm-zynqmp-dev:arm64.
(Reading database ... 85119 files and directories currently installed.)
Preparing to unpack libgbm-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libgbm-zynqmp-dev:arm64 (1.7-0) ...
Setting up libgbm-zynqmp-dev:arm64 (1.7-0) ...
```

</div>
</details>


## ビルド

OpenGLESv2 用にビルドします。

<details>
<summary>./waf configure --with-flavors=x11-glesv2</summary>
<div>

```
shell$ ./waf configure --with-flavors=x11-glesv2
Setting top to                           : /home/fpga/work/glmark2
Setting out to                           : /home/fpga/work/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-egl'               : not found
Prefix                                   : /usr/local
Data path                                : /usr/local/share/glmark2
Including extras                         : No
Building flavors                         : ['x11-glesv2']
'configure' finished successfully (4.685s)
```

</div>
</details>

<details>
<summary>./waf</summary>
<div>

```console
shell$ ./waf
Waf: Entering directory `/home/fpga/work/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-egl.cpp
[ 5/70] Compiling src/glad/src/egl.c
[ 6/70] Compiling src/glad/src/gles2.c
[ 7/70] Compiling src/libmatrix/log.cc
[ 8/70] Compiling src/libmatrix/mat.cc
[ 9/70] Compiling src/libmatrix/program.cc
[10/70] Compiling src/libmatrix/shader-source.cc
[11/70] Compiling src/libmatrix/util.cc
[12/70] Compiling src/benchmark-collection.cpp
[13/70] Compiling src/benchmark.cpp
[14/70] Compiling src/gl-headers.cpp
[15/70] Compiling src/gl-visual-config.cpp
[16/70] Compiling src/image-reader.cpp
[17/70] Compiling src/main-loop.cpp
[18/70] Compiling src/mesh.cpp
[19/70] Compiling src/model.cpp
[20/70] Compiling src/options.cpp
[21/70] Compiling src/scene-buffer.cpp
[22/70] Compiling src/scene-build.cpp
[23/70] Compiling src/scene-bump.cpp
[24/70] Compiling src/scene-clear.cpp
[25/70] Compiling src/scene-conditionals.cpp
[26/70] Compiling src/scene-default-options.cpp
[27/70] Compiling src/scene-desktop.cpp
[28/70] Compiling src/scene-effect-2d.cpp
[29/70] Compiling src/scene-function.cpp
[30/70] Compiling src/scene-grid.cpp
[31/70] Compiling src/scene-ideas/a.cc
[32/70] Compiling src/scene-ideas/d.cc
[33/70] Compiling src/scene-ideas/e.cc
[34/70] Compiling src/scene-ideas/i.cc
[35/70] Compiling src/scene-ideas/lamp.cc
[36/70] Compiling src/scene-ideas/logo.cc
[37/70] Compiling src/scene-ideas/m.cc
[38/70] Compiling src/scene-ideas/n.cc
[39/70] Compiling src/scene-ideas/o.cc
[40/70] Compiling src/scene-ideas/s.cc
[41/70] Compiling src/scene-ideas/splines.cc
[42/70] Compiling src/scene-ideas/t.cc
[43/70] Compiling src/scene-ideas/table.cc
[44/70] Compiling src/scene-ideas.cpp
[45/70] Compiling src/scene-jellyfish.cpp
[46/70] Compiling src/scene-loop.cpp
[47/70] Compiling src/scene-pulsar.cpp
[48/70] Compiling src/scene-refract.cpp
[49/70] Compiling src/scene-shading.cpp
[50/70] Compiling src/scene-shadow.cpp
[51/70] Compiling src/scene-terrain/base-renderer.cpp
[52/70] Compiling src/scene-terrain/blur-renderer.cpp
[53/70] Compiling src/scene-terrain/copy-renderer.cpp
[54/70] Compiling src/scene-terrain/luminance-renderer.cpp
[55/70] Compiling src/scene-terrain/normal-from-height-renderer.cpp
[56/70] Compiling src/scene-terrain/overlay-renderer.cpp
[57/70] Compiling src/scene-terrain/renderer-chain.cpp
[58/70] Compiling src/scene-terrain/simplex-noise-renderer.cpp
[59/70] Compiling src/scene-terrain/terrain-renderer.cpp
[60/70] Compiling src/scene-terrain/texture-renderer.cpp
[61/70] Compiling src/scene-terrain.cpp
[62/70] Compiling src/scene-texture.cpp
[63/70] Compiling src/scene.cpp
[64/70] Compiling src/shared-library.cpp
[65/70] Compiling src/text-renderer.cpp
[66/70] Compiling src/texture.cpp
[67/70] Compiling doc/glmark2.1.in
[68/70] Linking build/src/libmatrix-glesv2.a
[69/70] Linking build/src/libcommon-glesv2.a
[70/70] Linking build/src/glmark2-es2
Waf: Leaving directory `/home/fpga/work/glmark2/build'
'build' finished successfully (3m17.619s)
```

</div>
</details>

## インストール

<details>
<summary>./waf install</summary>
<div>

```console
shell$ sudo ./waf install
Waf: Entering directory `/home/fpga/work/glmark2/build'
+ install /usr/local/share/glmark2/models/asteroid-high.3ds (from data/models/asteroid-high.3ds)
+ install /usr/local/share/glmark2/models/asteroid-low.3ds (from data/models/asteroid-low.3ds)
+ install /usr/local/share/glmark2/models/bunny.obj (from data/models/bunny.obj)
+ install /usr/local/share/glmark2/shaders/README.shaders (from data/shaders/README.shaders)
+ install /usr/local/share/glmark2/shaders/buffer-wireframe.frag (from data/shaders/buffer-wireframe.frag)
+ install /usr/local/share/glmark2/shaders/buffer-wireframe.vert (from data/shaders/buffer-wireframe.vert)
+ install /usr/local/share/glmark2/shaders/bump-height.frag (from data/shaders/bump-height.frag)
+ install /usr/local/share/glmark2/shaders/bump-height.vert (from data/shaders/bump-height.vert)
+ install /usr/local/share/glmark2/shaders/bump-normals-tangent.frag (from data/shaders/bump-normals-tangent.frag)
+ install /usr/local/share/glmark2/shaders/bump-normals-tangent.vert (from data/shaders/bump-normals-tangent.vert)
+ install /usr/local/share/glmark2/shaders/bump-normals.frag (from data/shaders/bump-normals.frag)
+ install /usr/local/share/glmark2/shaders/bump-normals.vert (from data/shaders/bump-normals.vert)
+ install /usr/local/share/glmark2/shaders/bump-poly.frag (from data/shaders/bump-poly.frag)
+ install /usr/local/share/glmark2/shaders/bump-poly.vert (from data/shaders/bump-poly.vert)
+ install /usr/local/share/glmark2/shaders/conditionals-step-conditional.all (from data/shaders/conditionals-step-conditional.all)
+ install /usr/local/share/glmark2/shaders/conditionals-step-simple.all (from data/shaders/conditionals-step-simple.all)
+ install /usr/local/share/glmark2/shaders/conditionals.frag (from data/shaders/conditionals.frag)
+ install /usr/local/share/glmark2/shaders/conditionals.vert (from data/shaders/conditionals.vert)
+ install /usr/local/share/glmark2/shaders/depth.frag (from data/shaders/depth.frag)
+ install /usr/local/share/glmark2/shaders/depth.vert (from data/shaders/depth.vert)
+ install /usr/local/share/glmark2/shaders/desktop-blur.frag (from data/shaders/desktop-blur.frag)
+ install /usr/local/share/glmark2/shaders/desktop.frag (from data/shaders/desktop.frag)
+ install /usr/local/share/glmark2/shaders/desktop.vert (from data/shaders/desktop.vert)
+ install /usr/local/share/glmark2/shaders/effect-2d-convolution.frag (from data/shaders/effect-2d-convolution.frag)
+ install /usr/local/share/glmark2/shaders/effect-2d.vert (from data/shaders/effect-2d.vert)
+ install /usr/local/share/glmark2/models/cat.3ds (from data/models/cat.3ds)
+ install /usr/local/share/glmark2/shaders/function-call.all (from data/shaders/function-call.all)
+ install /usr/local/share/glmark2/shaders/function-step-low.all (from data/shaders/function-step-low.all)
+ install /usr/local/share/glmark2/shaders/function-step-medium.all (from data/shaders/function-step-medium.all)
+ install /usr/local/share/glmark2/models/cube.3ds (from data/models/cube.3ds)
+ install /usr/local/share/glmark2/shaders/function.frag (from data/shaders/function.frag)
+ install /usr/local/share/glmark2/shaders/function.vert (from data/shaders/function.vert)
+ install /usr/local/share/glmark2/models/horse.3ds (from data/models/horse.3ds)
+ install /usr/local/share/glmark2/shaders/gradient.frag (from data/shaders/gradient.frag)
+ install /usr/local/share/glmark2/shaders/gradient.vert (from data/shaders/gradient.vert)
+ install /usr/local/share/glmark2/models/jellyfish.jobj (from data/models/jellyfish.jobj)
+ install /usr/local/share/glmark2/shaders/ideas-lamp-lit.frag (from data/shaders/ideas-lamp-lit.frag)
+ install /usr/local/share/glmark2/shaders/ideas-lamp-lit.vert (from data/shaders/ideas-lamp-lit.vert)
+ install /usr/local/share/glmark2/shaders/ideas-lamp-unlit.frag (from data/shaders/ideas-lamp-unlit.frag)
+ install /usr/local/share/glmark2/shaders/ideas-lamp-unlit.vert (from data/shaders/ideas-lamp-unlit.vert)
+ install /usr/local/share/glmark2/shaders/ideas-logo-flat.frag (from data/shaders/ideas-logo-flat.frag)
+ install /usr/local/share/glmark2/shaders/ideas-logo-flat.vert (from data/shaders/ideas-logo-flat.vert)
+ install /usr/local/share/glmark2/shaders/ideas-logo-shadow.frag (from data/shaders/ideas-logo-shadow.frag)
+ install /usr/local/share/glmark2/shaders/ideas-logo-shadow.vert (from data/shaders/ideas-logo-shadow.vert)
+ install /usr/local/share/glmark2/shaders/ideas-logo.frag (from data/shaders/ideas-logo.frag)
+ install /usr/local/share/glmark2/shaders/ideas-logo.vert (from data/shaders/ideas-logo.vert)
+ install /usr/local/share/glmark2/shaders/ideas-paper.frag (from data/shaders/ideas-paper.frag)
+ install /usr/local/share/glmark2/shaders/ideas-paper.vert (from data/shaders/ideas-paper.vert)
+ install /usr/local/share/glmark2/shaders/ideas-table.frag (from data/shaders/ideas-table.frag)
+ install /usr/local/share/glmark2/shaders/ideas-table.vert (from data/shaders/ideas-table.vert)
+ install /usr/local/share/glmark2/shaders/ideas-text.frag (from data/shaders/ideas-text.frag)
+ install /usr/local/share/glmark2/shaders/ideas-text.vert (from data/shaders/ideas-text.vert)
+ install /usr/local/share/glmark2/shaders/ideas-under-table.frag (from data/shaders/ideas-under-table.frag)
+ install /usr/local/share/glmark2/shaders/ideas-under-table.vert (from data/shaders/ideas-under-table.vert)
+ install /usr/local/share/glmark2/shaders/jellyfish.frag (from data/shaders/jellyfish.frag)
+ install /usr/local/share/glmark2/shaders/jellyfish.vert (from data/shaders/jellyfish.vert)
+ install /usr/local/share/glmark2/shaders/light-advanced.frag (from data/shaders/light-advanced.frag)
+ install /usr/local/share/man/man1/glmark2-es2.1 (from build/doc/glmark2-es2.1)
+ install /usr/local/share/glmark2/shaders/light-advanced.vert (from data/shaders/light-advanced.vert)
+ install /usr/local/share/glmark2/textures/asteroid-height-map.png (from data/textures/asteroid-height-map.png)
+ install /usr/local/share/glmark2/shaders/light-basic-tex-bilinear.frag (from data/shaders/light-basic-tex-bilinear.frag)
+ install /usr/local/share/glmark2/shaders/light-basic-tex.frag (from data/shaders/light-basic-tex.frag)
+ install /usr/local/share/glmark2/shaders/light-basic-texgen.vert (from data/shaders/light-basic-texgen.vert)
+ install /usr/local/share/glmark2/shaders/light-basic.frag (from data/shaders/light-basic.frag)
+ install /usr/local/share/glmark2/textures/asteroid-normal-map-tangent.png (from data/textures/asteroid-normal-map-tangent.png)
+ install /usr/local/share/glmark2/shaders/light-basic.vert (from data/shaders/light-basic.vert)
+ install /usr/local/share/glmark2/shaders/light-cel.frag (from data/shaders/light-cel.frag)
+ install /usr/local/share/glmark2/shaders/light-phong.frag (from data/shaders/light-phong.frag)
+ install /usr/local/share/glmark2/shaders/light-phong.vert (from data/shaders/light-phong.vert)
+ install /usr/local/share/glmark2/textures/asteroid-normal-map.png (from data/textures/asteroid-normal-map.png)
+ install /usr/local/share/glmark2/shaders/light-refract.frag (from data/shaders/light-refract.frag)
+ install /usr/local/share/glmark2/shaders/light-refract.vert (from data/shaders/light-refract.vert)
+ install /usr/local/share/glmark2/shaders/loop-step-loop.all (from data/shaders/loop-step-loop.all)
+ install /usr/local/share/glmark2/shaders/loop-step-simple.all (from data/shaders/loop-step-simple.all)
+ install /usr/local/share/glmark2/shaders/loop.frag (from data/shaders/loop.frag)
+ install /usr/local/share/glmark2/shaders/loop.vert (from data/shaders/loop.vert)
+ install /usr/local/share/glmark2/textures/crate-base.png (from data/textures/crate-base.png)
+ install /usr/local/share/glmark2/shaders/pulsar-light.vert (from data/shaders/pulsar-light.vert)
+ install /usr/local/share/glmark2/shaders/pulsar.vert (from data/shaders/pulsar.vert)
+ install /usr/local/share/glmark2/shaders/shadow.frag (from data/shaders/shadow.frag)
+ install /usr/local/share/glmark2/shaders/shadow.vert (from data/shaders/shadow.vert)
+ install /usr/local/share/glmark2/textures/desktop-shadow-corner.png (from data/textures/desktop-shadow-corner.png)
+ install /usr/local/share/glmark2/shaders/terrain-blur.frag (from data/shaders/terrain-blur.frag)
+ install /usr/local/share/glmark2/textures/desktop-shadow.png (from data/textures/desktop-shadow.png)
+ install /usr/local/share/glmark2/shaders/terrain-luminance.frag (from data/shaders/terrain-luminance.frag)
+ install /usr/local/share/glmark2/textures/desktop-window.png (from data/textures/desktop-window.png)
+ install /usr/local/share/glmark2/shaders/terrain-noise.frag (from data/shaders/terrain-noise.frag)
+ install /usr/local/share/glmark2/shaders/terrain-normalmap.frag (from data/shaders/terrain-normalmap.frag)
+ install /usr/local/share/glmark2/textures/effect-2d.png (from data/textures/effect-2d.png)
+ install /usr/local/share/glmark2/shaders/terrain-overlay.frag (from data/shaders/terrain-overlay.frag)
+ install /usr/local/share/glmark2/textures/glyph-atlas.png (from data/textures/glyph-atlas.png)
+ install /usr/local/share/glmark2/shaders/terrain-texture.vert (from data/shaders/terrain-texture.vert)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-01.png (from data/textures/jellyfish-caustics-01.png)
+ install /usr/local/share/glmark2/shaders/terrain.frag (from data/shaders/terrain.frag)
+ install /usr/local/share/glmark2/shaders/terrain.vert (from data/shaders/terrain.vert)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-02.png (from data/textures/jellyfish-caustics-02.png)
+ install /usr/local/share/glmark2/shaders/text-renderer.frag (from data/shaders/text-renderer.frag)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-03.png (from data/textures/jellyfish-caustics-03.png)
+ install /usr/local/share/glmark2/shaders/text-renderer.vert (from data/shaders/text-renderer.vert)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-04.png (from data/textures/jellyfish-caustics-04.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-05.png (from data/textures/jellyfish-caustics-05.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-06.png (from data/textures/jellyfish-caustics-06.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-07.png (from data/textures/jellyfish-caustics-07.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-08.png (from data/textures/jellyfish-caustics-08.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-09.png (from data/textures/jellyfish-caustics-09.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-10.png (from data/textures/jellyfish-caustics-10.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-11.png (from data/textures/jellyfish-caustics-11.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-12.png (from data/textures/jellyfish-caustics-12.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-13.png (from data/textures/jellyfish-caustics-13.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-14.png (from data/textures/jellyfish-caustics-14.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-15.png (from data/textures/jellyfish-caustics-15.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-16.png (from data/textures/jellyfish-caustics-16.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-17.png (from data/textures/jellyfish-caustics-17.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-18.png (from data/textures/jellyfish-caustics-18.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-19.png (from data/textures/jellyfish-caustics-19.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-20.png (from data/textures/jellyfish-caustics-20.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-21.png (from data/textures/jellyfish-caustics-21.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-22.png (from data/textures/jellyfish-caustics-22.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-23.png (from data/textures/jellyfish-caustics-23.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-24.png (from data/textures/jellyfish-caustics-24.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-25.png (from data/textures/jellyfish-caustics-25.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-26.png (from data/textures/jellyfish-caustics-26.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-27.png (from data/textures/jellyfish-caustics-27.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-28.png (from data/textures/jellyfish-caustics-28.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-29.png (from data/textures/jellyfish-caustics-29.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-30.png (from data/textures/jellyfish-caustics-30.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-31.png (from data/textures/jellyfish-caustics-31.png)
+ install /usr/local/share/glmark2/textures/jellyfish-caustics-32.png (from data/textures/jellyfish-caustics-32.png)
+ install /usr/local/share/glmark2/textures/jellyfish256.png (from data/textures/jellyfish256.png)
+ install /usr/local/share/glmark2/textures/nasa1.png (from data/textures/nasa1.png)
+ install /usr/local/share/glmark2/textures/nasa2.png (from data/textures/nasa2.png)
+ install /usr/local/share/glmark2/textures/nasa3.png (from data/textures/nasa3.png)
+ install /usr/local/share/glmark2/textures/terrain-backgrounddetailed6.jpg (from data/textures/terrain-backgrounddetailed6.jpg)
+ install /usr/local/share/glmark2/textures/terrain-grasslight-512-nm.jpg (from data/textures/terrain-grasslight-512-nm.jpg)
+ install /usr/local/share/glmark2/textures/terrain-grasslight-512.jpg (from data/textures/terrain-grasslight-512.jpg)
+ install /usr/local/bin/glmark2-es2 (from build/src/glmark2-es2)
Waf: Leaving directory `/home/fpga/work/glmark2/build'
'install' finished successfully (1.843s)
```

</div>
</details>

# 実行

```log:glmark2-es2
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-400 MP
    GL_VERSION:    OpenGL ES 2.0 "6378cce"
=======================================================
[build] use-vbo=false: FPS: 28 FrameTime: 35.714 ms
[build] use-vbo=true: FPS: 28 FrameTime: 35.714 ms
[texture] texture-filter=nearest: FPS: 29 FrameTime: 34.483 ms
[texture] texture-filter=linear: FPS: 29 FrameTime: 34.483 ms
[texture] texture-filter=mipmap: FPS: 29 FrameTime: 34.483 ms
[shading] shading=gouraud: FPS: 27 FrameTime: 37.037 ms
[shading] shading=blinn-phong-inf: FPS: 27 FrameTime: 37.037 ms
[shading] shading=phong: FPS: 26 FrameTime: 38.462 ms
[shading] shading=cel: FPS: 26 FrameTime: 38.462 ms
[bump] bump-render=high-poly: FPS: 23 FrameTime: 43.478 ms
[bump] bump-render=normals: FPS: 29 FrameTime: 34.483 ms
[bump] bump-render=height: FPS: 28 FrameTime: 35.714 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 26 FrameTime: 38.462 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: 30 FrameTime: 33.333 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 19 FrameTime: 52.632 ms
[desktop] effect=shadow:windows=4: FPS: 27 FrameTime: 37.037 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 15 FrameTime: 66.667 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 20 FrameTime: 50.000 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 16 FrameTime: 62.500 ms
[ideas] speed=duration: FPS: 27 FrameTime: 37.037 ms
[jellyfish] <default>: FPS: 26 FrameTime: 38.462 ms
[terrain] <default>: Unsupported
[shadow] <default>: FPS: 26 FrameTime: 38.462 ms
[refract] <default>: FPS: 12 FrameTime: 83.333 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 29 FrameTime: 34.483 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 27 FrameTime: 37.037 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 29 FrameTime: 34.483 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 28 FrameTime: 35.714 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 26 FrameTime: 38.462 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 28 FrameTime: 35.714 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 28 FrameTime: 35.714 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 28 FrameTime: 35.714 ms
=======================================================
                                  glmark2 Score: 25 
=======================================================
```

# まとめ

う〜ん。なんか遅くない？ 本当に GPU 動いているのかな〜(イマサラ)


[概要編]: https://qiita.com/ikwzm/items/fdec04519268b3fb9a50 "『Ultra96/Ultra96-V2 向け Debian GNU/Linux で X Window を動かす(概要編)』@Qiita"
[Video Driver 編]: https://qiita.com/ikwzm/items/2a0fbfd2938a893e57d4 "『Ultra96/Ultra96-V2 向け Debian GNU/Linux で X Window を動かす(Video Driver 編)』@Qiita"
[Mali Driver 編]: https://qiita.com/ikwzm/items/8c96d75e03cdcb91e5b2 "『Ultra96/Ultra96-V2 向け Debian GNU/Linux で X Window を動かす(Mali Driver 編)』@Qiita"
[LibMali 編]: https://qiita.com/ikwzm/items/85fa889def8eb07a9e94 "『Ultra96/Ultra96-V2 向け Debian GNU/Linux で X Window を動かす(libMali 編)』@Qiita"
[fbdev 編]: https://qiita.com/ikwzm/items/f922f7e17aa2382d5c76 "『Ultra96/Ultra96-V2 向け Debian GNU/Linux で X Window を動かす(fbdev 編)』@Qiita"
[glmark2 編]: https://qiita.com/ikwzm/items/5065fb0b6c01ea706571 "『Ultra96/Ultra96-V2 向け Debian GNU/Linux で X Window を動かす(glmark2 編)』@Qiita"
[1]: https://qiita.com/ikwzm/items/0c6f110aa19e368af03d "『UltraZed/Ultra96/Ultra96-V2 向け Debian GNU/Linux (v2019.1版) ブートイメージの提供』@Qiita"