[go: up one dir, main page]

blob: 076d9b55eb693d927cb3c36ef8fbcb005b1eed13 [file] [log] [blame] [view]
Geoff Lang13e569d2015-06-05 18:33:371# ANGLE + dEQP
Jamie Madill495d0ac2016-12-21 18:22:142
3drawElements (dEQP) is a very robust and comprehensive set of open-source
4tests for GLES2, GLES3+ and EGL. They provide a huge net of coverage for
5almost every GL API feature. ANGLE by default builds dEQP testing targets for
6testing against GLES 2, GLES 3, EGL, and GLES 3.1 (on supported platforms).
Geoff Lang13e569d2015-06-05 18:33:377
8## How to build dEQP
9
Jamie Madill495d0ac2016-12-21 18:22:1410You should have dEQP as a target if you followed the [DevSetup](DevSetup.md)
Yuly Novikov1c9ac272023-12-13 17:34:1911instructions. Some of the current targets are:
Geoff Lang13e569d2015-06-05 18:33:3712
Jamie Madill495d0ac2016-12-21 18:22:1413 * `angle_deqp_egl_tests` for EGL 1.x tests
Yuly Novikov1c9ac272023-12-13 17:34:1914 * `angle_deqp_gles2_tests` for GLES 2.0 tests
15 * `angle_deqp_gles3_tests` for GLES 3.0 tests
16 * `angle_deqp_gles31_tests` for GLES 3.1 tests
Geoff Lang13e569d2015-06-05 18:33:3717
18## How to use dEQP
19
Rahul Jaind7756842017-12-22 10:36:0920Note:
Yuly Novikov1c9ac272023-12-13 17:34:1921To run an individual test, use the `--gtest_filter` argument.
22It supports simple wildcards. For example: `--gtest_filter=dEQP-GLES2.functional.shaders.linkage.*`.
Geoff Lang13e569d2015-06-05 18:33:3723
angle-autoroll2937ee22024-01-08 20:01:4824The tests lists are sourced from the Android CTS mains in
25`third_party/VK-GL-CTS/src/android/cts/main`. See `gles2-main.txt`,
26`gles3-main.txt`, `gles31-main.txt` and `egl-main.txt`.
Geoff Lang13e569d2015-06-05 18:33:3727
Jamie Madill495d0ac2016-12-21 18:22:1428If you're running a full test suite, it might take very long time. Running in
29Debug is only useful to isolate and fix particular failures, Release will give
30a better sense of total passing rate.
Geoff Lang13e569d2015-06-05 18:33:3731
Shahbaz Youssefi25536902019-01-23 14:49:0332### Choosing a Renderer
Geoff Lang13e569d2015-06-05 18:33:3733
Shahbaz Youssefib7b46ee2024-08-05 14:22:4834By default ANGLE tests with Vulkan, except on Apple platforms where OpenGL is used.
Shahbaz Youssefi25536902019-01-23 14:49:0335To specify the exact platform for ANGLE + dEQP, use the arguments:
Geoff Lang13e569d2015-06-05 18:33:3736
Jamie Madill495d0ac2016-12-21 18:22:1437 * `--deqp-egl-display-type=angle-d3d11` for D3D11 (highest available feature level)
Geoff Lang23a22c82015-08-31 16:49:5138 * `--deqp-egl-display-type=angle-d3d9` for D3D9
39 * `--deqp-egl-display-type=angle-d3d11-fl93` for D3D11 Feature level 9_3
Jamie Madill495d0ac2016-12-21 18:22:1440 * `--deqp-egl-display-type=angle-gl` for OpenGL Desktop (OSX, Linux and Windows)
41 * `--deqp-egl-display-type=angle-gles` for OpenGL ES (Android/ChromeOS, some Windows platforms)
Jonah Ryan-Davis6e4004d2019-12-06 19:41:1742 * `--deqp-egl-display-type=angle-metal` for Metal (Mac)
Jonah Ryan-Davis5afd5ec2019-10-25 16:53:4043 * `--deqp-egl-display-type=angle-swiftshader` for Vulkan with SwiftShader as driver (Android, Linux, Mac, Windows)
Jonah Ryan-Davis6e4004d2019-12-06 19:41:1744 * `--deqp-egl-display-type=angle-vulkan` for Vulkan (Android, Linux, Windows)
Geoff Lang13e569d2015-06-05 18:33:3745
Shahbaz Youssefi25536902019-01-23 14:49:0346The flag `--use-angle=X` has the same effect as `--deqp-egl-display-type=angle-X`.
47
Geoff Lang13e569d2015-06-05 18:33:3748### Check your results
49
Jamie Madill495d0ac2016-12-21 18:22:1450If run from Visual Studio 2015, dEQP generates a test log to
Frank Henigman3c613c02017-11-17 04:45:3451`out/sln/obj/src/tests/TestResults.qpa`. To view the test log information, you'll need to
Jamie Madill495d0ac2016-12-21 18:22:1452use the open-source GUI
53[Cherry](https://android.googlesource.com/platform/external/cherry). ANGLE
54checks out a copy of Cherry to `angle/third_party/cherry` when you sync with
55gclient. Note, if you are using ninja or another build system, the qpa file
56will be located in your working directory.
Geoff Lang13e569d2015-06-05 18:33:3757
Frank Henigmanc6777952017-11-27 05:15:5458See the [official Cherry README](https://android.googlesource.com/platform/external/cherry/+/master/README)
59for instructions on how to run Cherry on Linux or Windows.
Jamie Madill5798c0f2015-08-27 21:18:5760
61### GoogleTest, ANGLE and dEQP
62
Jamie Madill495d0ac2016-12-21 18:22:1463ANGLE also supports the same set of targets built with GoogleTest, for running
64on the bots. We don't currently recommend using these for local debugging, but
Ian Elliott61dc7692021-09-28 21:07:2065we do maintain lists of test expectations in `src/tests/deqp_support` (see
Ian Elliott7c1622c2021-10-01 22:42:2966[Handling Test Failures](TestingAndProcesses.md)). When
Jamie Madill495d0ac2016-12-21 18:22:1467you fix tests, please remove the suppression(s) from the relevant files!
Cody Northrop1cd52d22020-02-18 22:28:2968
69### Running dEQP on Android
70
Roman Lavrovcd4cce32022-05-17 22:35:3671When you only need to run a few tests with `--gtest_filter` you can use Android wrappers such as `angle_deqp_egl_tests` directly but beware that Android test runner wipes data by default (try `--skip-clear-data`).
72
73Running the tests not using the test runner is tricky, but is necessary in order to get a complete TestResults.qpa from the dEQP tests when running many tests (since the runner shards the tests, only the results of the last shard will be available when using the test runner). First, use the runner to install the APK, test data and test expectations on the device. After the tests start running, the test runner can be stopped with Ctrl+C. Then, run
Cody Northrop1cd52d22020-02-18 22:28:2974```
75adb shell am start -a android.intent.action.MAIN -n org.chromium.native_test/.NativeUnitTestNativeActivity -e org.chromium.native_test.NativeTest.StdoutFile /sdcard/chromium_tests_root/out.txt
76```
Roman Lavrovcd4cce32022-05-17 22:35:3677After the tests finish, get the results with (requires `adb root`)
Cody Northrop1cd52d22020-02-18 22:28:2978```
Roman Lavrov41adabc2022-04-29 19:04:2779adb pull /data/data/com.android.angle.test/TestResults.qpa .
Cody Northrop1cd52d22020-02-18 22:28:2980```
81Note: this location might change, one can double-check with `adb logcat -d | grep qpa`.