aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorShahbaz Youssefi <syoussefi@chromium.org>2019-02-01 16:36:09 -0500
committerCommit Bot <commit-bot@chromium.org>2019-02-04 15:45:57 +0000
commit9544002ee1722f0cd78258a71f81ec46ec85f9dd (patch)
tree444636962c88c8741aae2267254ebe5869c1d457 /doc
parentd94af1736d9836b83576e2475f7c38d3e3191046 (diff)
downloadangle-9544002ee1722f0cd78258a71f81ec46ec85f9dd.tar.gz
Add instructions on how to run glmark2+ANGLE on Linux
Bug: angleproject:3125 Change-Id: I70d295d7ec1dbafc74add068165c5fbcadb48560 Reviewed-on: https://chromium-review.googlesource.com/c/1450222 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/ExternalBenchmarks.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/doc/ExternalBenchmarks.md b/doc/ExternalBenchmarks.md
new file mode 100644
index 0000000000..c969c1dc7b
--- /dev/null
+++ b/doc/ExternalBenchmarks.md
@@ -0,0 +1,63 @@
+# Using External Benchmarks with ANGLE
+
+This document contains instructions on how to run external benchmarks on ANGLE as the GLES renderer.
+There is a section for each benchmark with subsections for each platform. The general theme is to
+make the benchmark application pick ANGLE's `libGLESv2.so` and `libEGL.so` files instead of the
+system ones.
+
+On Linux, this is generally achieved with setting `LD_LIBRARY_PATH`. On Windows, ANGLE dlls may
+need to be copied to the benchmark's executable directory.
+
+## glmark2
+
+This benchmark can be found on [github](https://github.com/glmark2/glmark2). It's written against
+GLES 2.0 and supports Linux and Android. It performs tens of tests and reports the framerate for
+each test.
+
+### glmark2 on Linux
+
+To build glmark2 on Linux:
+
+```
+$ git clone https://github.com/glmark2/glmark2.git
+$ cd glmark2
+$ ./waf configure --with-flavors=x11-glesv2 --data-path=$PWD/data/
+$ ./waf
+```
+
+To run glmark2 using the native implementation of GLES:
+
+```
+$ cd build/src
+$ ./glmark2-es2
+```
+
+To run glmark2 using ANGLE, we need to first create a few links in the build directory of ANGLE:
+
+```
+$ cd /path/to/angle/out/release
+$ ln -s libEGL.so libEGL.so.1
+$ ln -s libGLESv2.so libGLESv2.so.2
+```
+
+Back in glmark2, we need to make sure these shared objects are picked up:
+
+```
+$ cd /path/to/glmark2/build/src
+$ LD_LIBRARY_PATH=/path/to/angle/out/release/ ldd ./glmark2-es2
+```
+
+With `ldd`, you can verify that `libEGL.so.1` and `libGLESv2.so.2` are correctly picked up from
+ANGLE's build directory.
+
+To run glmark2 on the default back-end of ANGLE:
+
+```
+$ LD_LIBRARY_PATH=/path/to/angle/out/release/ ./glmark2-es2
+```
+
+To run glmark2 on a specific back-end of ANGLE:
+
+```
+$ ANGLE_DEFAULT_PLATFORM=vulkan LD_LIBRARY_PATH=/path/to/angle/out/release/ ./glmark2-es2
+```