1dEQP README
2===========
3
4This repository contains a GPU testing suite called dEQP (drawElements Quality Program).
5dEQP contains tests for several graphics APIs, including OpenGL ES, EGL, and Vulkan.
6
7Documentation
8-------------
9
10Up-to-date documentation for the dEQP is available at
11[Android Open Source Project site](http://source.android.com/devices/graphics/testing.html).
12
13The .qpa logs generated by the conformance tests may contain embedded png images of the results.
14These can be viewed with the [Cherry](https://android.googlesource.com/platform/external/cherry/+/master)
15tool.
16
17Khronos Vulkan Conformance Tests
18--------------------------------
19
20This repository includes Khronos Vulkan CTS under `external/vulkancts` directory.
21For more information see [Vulkan CTS README](external/vulkancts/README.md).
22
23Khronos OpenGL / OpenGL ES Conformance Tests
24--------------------------------
25
26This repository includes Khronos OpenGL / OpenGL ES CTS under `external/openglcts` directory.
27For more information see [OpenGL / OpenGL ES CTS README](external/openglcts/README.md).
28
29ANGLE for Android
30--------------------------------
31
32ANGLE can be built for Android by following the instructions
33[here](https://chromium.googlesource.com/angle/angle.git/+/HEAD/doc/DevSetup.md#building-angle-for-android).
34
35The resulting ANGLE shared object libraries can be linked against and embedded into `dEQP.apk` with
36the `--angle-path` option.   This will cause `dEQP.apk` to use the ANGLE libraries for OpenGL ES
37calls, rather than the native drivers.
38
39An ABI must be specified and the directory structure containing the ANGLE shared objects must match
40it so the build system can find the correct `*.so` files.
41
42Assuming ANGLE shared objects are generated into `~/chromium/src/out/Release/` and `dEQP.apk` will
43be generated with `--abis arm64-v8a`, issue the following commands:
44
45	cd ~/chromium/src/out/Release/
46	mkdir arm64-v8a && cd arm64-v8a
47	cp ../lib*_angle.so .
48
49The `--angle-path ~/chromium/src/out/Release/` option can then be used to link against and embed the
50ANGLE shared object files.   The full command would be:
51
52	python scripts/android/build_apk.py --sdk <path to Android SDK> --ndk <path to Android NDK> --abis arm64-v8a --angle-path ~/chromium/src/out/Release/