aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android.json2
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android.json2
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android.json2
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android.json2
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN.json1
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN.json1
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind.json2
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench.json1
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug.json1
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release.json1
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json130
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json1
-rw-r--r--infra/bots/recipes/swarm_perf.expected/Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug.json1
-rw-r--r--infra/bots/recipes/swarm_perf.expected/big_issue_number.json1
-rw-r--r--infra/bots/recipes/swarm_perf.expected/recipe_with_gerrit_patch.json2
-rw-r--r--infra/bots/recipes/swarm_perf.py6
-rw-r--r--infra/bots/recipes/swarm_test.expected/Test-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json2
-rw-r--r--infra/bots/recipes/swarm_test.py3
-rw-r--r--tests/TestConfigParsing.cpp63
-rw-r--r--tools/flags/SkCommonFlagsConfig.cpp126
-rw-r--r--tools/flags/SkCommonFlagsConfig.h2
-rw-r--r--tools/gpu/GrContextFactory.cpp23
-rw-r--r--tools/gpu/GrContextFactory.h44
-rw-r--r--tools/gpu/gl/angle/GLTestContext_angle.cpp93
-rw-r--r--tools/gpu/gl/angle/GLTestContext_angle.h22
25 files changed, 306 insertions, 228 deletions
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android.json b/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android.json
index 0ecdd40c2f..a3d7c8bf55 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android.json
@@ -363,7 +363,7 @@
"python",
"-u",
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
- "set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --svgs /sdcard/revenge_of_the_skiabot/svgs --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering angle hwui f16 srgb msaa4 nvpr4 nvprdit4 --match ~blurroundrect ~patch_grid ~desk_carsvg ~keymobi_shop_mobileweb_ebay_com.skp ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp; echo $? >/data/local/tmp/rc",
+ "set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --svgs /sdcard/revenge_of_the_skiabot/svgs --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb msaa4 nvpr4 nvprdit4 --match ~blurroundrect ~patch_grid ~desk_carsvg ~keymobi_shop_mobileweb_ebay_com.skp ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp; echo $? >/data/local/tmp/rc",
"[SLAVE_BUILD]/tmp/nanobench.sh"
],
"name": "write nanobench.sh"
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android.json b/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android.json
index 6fe42c9de4..02071babf4 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android.json
@@ -385,7 +385,7 @@
"python",
"-u",
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
- "set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --svgs /sdcard/revenge_of_the_skiabot/svgs --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering angle hwui f16 srgb msaa4 nvpr4 nvprdit4 esinst --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337018001.json --properties gitHash abc123 build_number 5 --key arch arm compiler Clang cpu_or_gpu GPU cpu_or_gpu_value Adreno420 extra_config GN_Android model Nexus6 os Android; echo $? >/data/local/tmp/rc",
+ "set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --svgs /sdcard/revenge_of_the_skiabot/svgs --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb msaa4 nvpr4 nvprdit4 esinst --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337018001.json --properties gitHash abc123 build_number 5 --key arch arm compiler Clang cpu_or_gpu GPU cpu_or_gpu_value Adreno420 extra_config GN_Android model Nexus6 os Android; echo $? >/data/local/tmp/rc",
"[SLAVE_BUILD]/tmp/nanobench.sh"
],
"name": "write nanobench.sh"
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android.json b/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android.json
index 5afb62cfd6..7adc031ae5 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android.json
@@ -385,7 +385,7 @@
"python",
"-u",
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
- "set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --svgs /sdcard/revenge_of_the_skiabot/svgs --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering angle hwui f16 srgb msaa4 nvpr4 nvprdit4 --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337018001.json --properties gitHash abc123 build_number 5 --key arch arm compiler Clang cpu_or_gpu GPU cpu_or_gpu_value Tegra3 extra_config GN_Android model Nexus7 os Android; echo $? >/data/local/tmp/rc",
+ "set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --svgs /sdcard/revenge_of_the_skiabot/svgs --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb msaa4 nvpr4 nvprdit4 --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337018001.json --properties gitHash abc123 build_number 5 --key arch arm compiler Clang cpu_or_gpu GPU cpu_or_gpu_value Tegra3 extra_config GN_Android model Nexus7 os Android; echo $? >/data/local/tmp/rc",
"[SLAVE_BUILD]/tmp/nanobench.sh"
],
"name": "write nanobench.sh"
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android.json b/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android.json
index 45c64d362d..a31ad42eb1 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android.json
@@ -385,7 +385,7 @@
"python",
"-u",
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
- "set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --svgs /sdcard/revenge_of_the_skiabot/svgs --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering angle hwui f16 srgb --match ~blurroundrect ~patch_grid ~desk_carsvg ~desk_unicodetable ~interlaced1.png ~interlaced2.png ~interlaced3.png ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337018001.json --properties gitHash abc123 build_number 5 --key arch x86 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value PowerVR extra_config GN_Android model NexusPlayer os Android; echo $? >/data/local/tmp/rc",
+ "set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --svgs /sdcard/revenge_of_the_skiabot/svgs --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb --match ~blurroundrect ~patch_grid ~desk_carsvg ~desk_unicodetable ~interlaced1.png ~interlaced2.png ~interlaced3.png ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337018001.json --properties gitHash abc123 build_number 5 --key arch x86 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value PowerVR extra_config GN_Android model NexusPlayer os Android; echo $? >/data/local/tmp/rc",
"[SLAVE_BUILD]/tmp/nanobench.sh"
],
"name": "write nanobench.sh"
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN.json b/infra/bots/recipes/swarm_perf.expected/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN.json
index 3731a892fa..f081e8a7a3 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN.json
@@ -124,7 +124,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN.json b/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN.json
index bdd4ae3eab..ff65fe1b37 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN.json
@@ -125,7 +125,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind.json b/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind.json
index b01ae39514..5e7b7d6d0e 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind.json
@@ -134,7 +134,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
@@ -231,7 +230,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench.json b/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench.json
index 14bbf305e9..44c5735d26 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench.json
@@ -128,7 +128,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug.json b/infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug.json
index a2d86e034c..081f0a4a18 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug.json
@@ -80,7 +80,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release.json b/infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release.json
index 08cb4c8f1a..740635c01e 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release.json
@@ -124,7 +124,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json b/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json
new file mode 100644
index 0000000000..500d64596b
--- /dev/null
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json
@@ -0,0 +1,130 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+ "[SLAVE_BUILD]\\skia\\infra\\bots\\assets\\skp\\VERSION",
+ "/path/to/tmp/"
+ ],
+ "name": "Get downloaded SKP VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+ "42",
+ "[SLAVE_BUILD]\\tmp\\SKP_VERSION"
+ ],
+ "name": "write SKP_VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+ "[SLAVE_BUILD]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
+ "/path/to/tmp/"
+ ],
+ "name": "Get downloaded skimage VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+ "42",
+ "[SLAVE_BUILD]\\tmp\\SK_IMAGE_VERSION"
+ ],
+ "name": "write SK_IMAGE_VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+ "[SLAVE_BUILD]\\skia\\infra\\bots\\assets\\svg\\VERSION",
+ "/path/to/tmp/"
+ ],
+ "name": "Get downloaded SVG VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+ "42",
+ "[SLAVE_BUILD]\\tmp\\SVG_VERSION"
+ ],
+ "name": "write SVG_VERSION"
+ },
+ {
+ "cmd": [
+ "[SLAVE_BUILD]\\out\\Debug_x64\\nanobench",
+ "--undefok",
+ "-i",
+ "[SLAVE_BUILD]\\skia\\resources",
+ "--skps",
+ "[SLAVE_BUILD]\\skp",
+ "--svgs",
+ "[SLAVE_BUILD]\\svg",
+ "--images",
+ "[SLAVE_BUILD]\\skimage\\nanobench",
+ "--nocpu",
+ "--pre_log",
+ "--images",
+ "--gpuStatsDump",
+ "true",
+ "--scales",
+ "1.0",
+ "1.1",
+ "--config",
+ "8888",
+ "gpu",
+ "nonrendering",
+ "hwui",
+ "f16",
+ "srgb",
+ "msaa16",
+ "nvpr16",
+ "nvprdit16",
+ "angle_gl_es2",
+ "angle_d3d11_es2",
+ "--match",
+ "~interlaced1.png",
+ "~interlaced2.png",
+ "~interlaced3.png",
+ "~inc0.gif",
+ "~inc1.gif",
+ "~incInterlaced.gif",
+ "~inc0.jpg",
+ "~incGray.jpg",
+ "~inc0.wbmp",
+ "~inc1.wbmp",
+ "~inc0.webp",
+ "~inc1.webp",
+ "~inc0.ico",
+ "~inc1.ico",
+ "~inc0.png",
+ "~inc1.png",
+ "~inc2.png",
+ "~inc12.png",
+ "~inc13.png",
+ "~inc14.png",
+ "~inc0.webp",
+ "~inc1.webp"
+ ],
+ "env": {
+ "BUILDTYPE": "Debug_x64",
+ "CHROME_HEADLESS": "1",
+ "SKIA_OUT": "[SLAVE_BUILD]\\out"
+ },
+ "name": "nanobench"
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json b/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json
index d2949f0d0f..c6c9c52bff 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json
@@ -127,7 +127,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug.json b/infra/bots/recipes/swarm_perf.expected/Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug.json
index cf95f97e7a..93fe29340b 100644
--- a/infra/bots/recipes/swarm_perf.expected/Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug.json
+++ b/infra/bots/recipes/swarm_perf.expected/Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug.json
@@ -355,7 +355,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/big_issue_number.json b/infra/bots/recipes/swarm_perf.expected/big_issue_number.json
index ca8799361f..b3812dc21e 100644
--- a/infra/bots/recipes/swarm_perf.expected/big_issue_number.json
+++ b/infra/bots/recipes/swarm_perf.expected/big_issue_number.json
@@ -127,7 +127,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.expected/recipe_with_gerrit_patch.json b/infra/bots/recipes/swarm_perf.expected/recipe_with_gerrit_patch.json
index 1686597576..e562f87e22 100644
--- a/infra/bots/recipes/swarm_perf.expected/recipe_with_gerrit_patch.json
+++ b/infra/bots/recipes/swarm_perf.expected/recipe_with_gerrit_patch.json
@@ -156,7 +156,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
@@ -259,7 +258,6 @@
"8888",
"gpu",
"nonrendering",
- "angle",
"hwui",
"f16",
"srgb",
diff --git a/infra/bots/recipes/swarm_perf.py b/infra/bots/recipes/swarm_perf.py
index fb8838c047..a7148b06d8 100644
--- a/infra/bots/recipes/swarm_perf.py
+++ b/infra/bots/recipes/swarm_perf.py
@@ -38,6 +38,7 @@ TEST_BUILDERS = {
'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug',
'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release',
'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot',
+ 'Perf-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE',
'Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug',
],
},
@@ -62,7 +63,7 @@ def nanobench_flags(bot):
if 'iOS' in bot:
args.extend(['--skps', 'ignore_skps'])
- config = ['8888', 'gpu', 'nonrendering', 'angle', 'hwui' ]
+ config = ['8888', 'gpu', 'nonrendering', 'hwui' ]
if 'AndroidOne' not in bot:
config += [ 'f16', 'srgb' ]
if '-GCE-' in bot:
@@ -95,6 +96,9 @@ def nanobench_flags(bot):
if 'Vulkan' in bot:
config = ['vk']
+ if 'ANGLE' in bot:
+ config.extend(['angle_gl_es2', 'angle_d3d11_es2'])
+
args.append('--config')
args.extend(config)
diff --git a/infra/bots/recipes/swarm_test.expected/Test-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json b/infra/bots/recipes/swarm_test.expected/Test-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json
index d382fe0ee0..311d43f74b 100644
--- a/infra/bots/recipes/swarm_test.expected/Test-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json
+++ b/infra/bots/recipes/swarm_test.expected/Test-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json
@@ -225,6 +225,8 @@
"gpusrgb",
"pdf",
"msaa16",
+ "angle_gl_es2",
+ "angle_d3d11_es2",
"serialize-8888",
"tiles_rt-8888",
"pic-8888",
diff --git a/infra/bots/recipes/swarm_test.py b/infra/bots/recipes/swarm_test.py
index 9876f84627..760c9d5236 100644
--- a/infra/bots/recipes/swarm_test.py
+++ b/infra/bots/recipes/swarm_test.py
@@ -70,6 +70,9 @@ def dm_flags(bot):
else:
configs.append('msaa16')
+ if 'ANGLE' in bot:
+ configs.extend(['angle_gl_es2', 'angle_d3d11_es2'])
+
# With msaa, the S4 crashes and the NP produces a long error stream when we
# run with MSAA. The Tegra2 and Tegra3 just don't support it. No record of
# why we're not running msaa on iOS, probably started with gpu config and just
diff --git a/tests/TestConfigParsing.cpp b/tests/TestConfigParsing.cpp
index 8435b99ce5..4d7e5cad0e 100644
--- a/tests/TestConfigParsing.cpp
+++ b/tests/TestConfigParsing.cpp
@@ -77,9 +77,9 @@ DEF_TEST(ParseConfigs_DefaultConfigs, reporter) {
SkCommandLineFlags::StringArray config1 = make_string_array({
"565", "8888", "debug", "gpu", "gpudebug", "gpudft", "gpunull", "msaa16", "msaa4",
"nonrendering", "null", "nullgpu", "nvpr16", "nvpr4", "nvprdit16", "nvprdit4", "pdf", "skp",
- "svg", "xps", "angle", "angle-gl", "commandbuffer", "mesa", "hwui", "gpuf16", "gpusrgb",
- "gl", "glnvpr4", "glnvprdit4", "glsrgb", "glmsaa4", "vk", "glinst", "glinst4", "glinstdit4",
- "glinst16", "glinstdit16", "esinst", "esinst4", "esinstdit4", "glwide"
+ "svg", "xps", "angle_d3d11_es2", "angle_gl_es2", "commandbuffer", "mesa", "hwui", "gpuf16",
+ "gpusrgb", "gl", "glnvpr4", "glnvprdit4", "glsrgb", "glmsaa4", "vk", "glinst", "glinst4",
+ "glinstdit4", "glinst16", "glinstdit16", "esinst", "esinst4", "esinstdit4", "glwide"
});
SkCommandLineConfigArray configs;
@@ -167,18 +167,8 @@ DEF_TEST(ParseConfigs_DefaultConfigs, reporter) {
REPORTER_ASSERT(reporter, configs[40]->asConfigGpu()->getUseInstanced());
REPORTER_ASSERT(reporter, configs[40]->asConfigGpu()->getUseDIText());
REPORTER_ASSERT(reporter, configs[40]->asConfigGpu()->getSamples() == 4);
-
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
REPORTER_ASSERT(reporter, configs[20]->asConfigGpu());
-#else
- REPORTER_ASSERT(reporter, !configs[20]->asConfigGpu());
-#endif
REPORTER_ASSERT(reporter, configs[21]->asConfigGpu());
-#else
- REPORTER_ASSERT(reporter, !configs[20]->asConfigGpu());
- REPORTER_ASSERT(reporter, !configs[21]->asConfigGpu());
-#endif
REPORTER_ASSERT(reporter, configs[22]->asConfigGpu());
#if SK_MESA
REPORTER_ASSERT(reporter, configs[23]->asConfigGpu());
@@ -207,8 +197,8 @@ DEF_TEST(ParseConfigs_DefaultConfigs, reporter) {
DEF_TEST(ParseConfigs_ExtendedGpuConfigsCorrect, reporter) {
SkCommandLineFlags::StringArray config1 = make_string_array({
"gpu[nvpr=true,dit=false]",
- "gpu[api=angle]",
- "gpu[api=angle-gl]",
+ "gpu[api=angle_d3d9_es2]",
+ "gpu[api=angle_gl_es3]",
"gpu[api=mesa,samples=77]",
"gpu[dit=true,api=commandbuffer]",
"gpu[]",
@@ -229,19 +219,12 @@ DEF_TEST(ParseConfigs_ExtendedGpuConfigsCorrect, reporter) {
REPORTER_ASSERT(reporter, configs[0]->asConfigGpu()->getUseNVPR());
REPORTER_ASSERT(reporter, !configs[0]->asConfigGpu()->getUseDIText());
REPORTER_ASSERT(reporter, configs[0]->asConfigGpu()->getSamples() == 0);
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
REPORTER_ASSERT(reporter, configs[1]->asConfigGpu()->getContextType() ==
- GrContextFactory::kANGLE_ContextType);
-#else
- REPORTER_ASSERT(reporter, !configs[1]->asConfigGpu());
-#endif
+ GrContextFactory::kANGLE_D3D9_ES2_ContextType);
+ REPORTER_ASSERT(reporter, configs[1]->asConfigGpu());
REPORTER_ASSERT(reporter, configs[2]->asConfigGpu()->getContextType() ==
- GrContextFactory::kANGLE_GL_ContextType);
-#else
- REPORTER_ASSERT(reporter, !configs[1]->asConfigGpu());
- REPORTER_ASSERT(reporter, !configs[2]->asConfigGpu());
-#endif
+ GrContextFactory::kANGLE_GL_ES3_ContextType);
+ REPORTER_ASSERT(reporter, configs[2]->asConfigGpu());
#if SK_MESA
REPORTER_ASSERT(reporter, configs[3]->asConfigGpu()->getContextType() ==
GrContextFactory::kMESA_ContextType);
@@ -280,7 +263,7 @@ DEF_TEST(ParseConfigs_ExtendedGpuConfigsIncorrect, reporter) {
SkCommandLineFlags::StringArray config1 = make_string_array({
"gpu[nvpr=1]", // Number as bool.
"gpu[api=gl,]", // Trailing in comma.
- "gpu[api=angle-glu]", // Unknown api.
+ "gpu[api=angle_glu]", // Unknown api.
"gpu[api=,samples=0]", // Empty api.
"gpu[samples=true]", // Value true as a number.
"gpu[samples=0,samples=0]", // Duplicate option key.
@@ -329,7 +312,7 @@ DEF_TEST(ParseConfigs_ViaParsing, reporter) {
SkCommandLineFlags::StringArray config1 = make_string_array({
"a-b-c-8888",
"zz-qq-gpu",
- "a-angle-gl"
+ "a-angle_gl_es2"
});
SkCommandLineConfigArray configs;
@@ -340,12 +323,7 @@ DEF_TEST(ParseConfigs_ViaParsing, reporter) {
} expectedConfigs[] = {
{"8888", {"a", "b", "c"}},
{"gpu", {"zz", "qq", nullptr}},
-#if SK_ANGLE
- { "gpu",{ "a", nullptr, nullptr } } // With SK_ANGLE, angle-gl becomes gpu(api=angle-gl)
-#else
- { "angle-gl",{ "a", nullptr, nullptr } } // The angle-gl tag is only tag that contains
- // hyphen.
-#endif
+ {"gpu", { "a", nullptr, nullptr }}
};
for (int i = 0; i < config1.count(); ++i) {
REPORTER_ASSERT(reporter, configs[i]->getTag().equals(config1[i]));
@@ -364,8 +342,9 @@ DEF_TEST(ParseConfigs_ViaParsing, reporter) {
DEF_TEST(ParseConfigs_ViaParsingExtendedForm, reporter) {
SkCommandLineFlags::StringArray config1 = make_string_array({
"zz-qq-gpu[api=gles]",
+ "abc-nbc-cbs-gpu[api=angle_d3d9_es2,samples=1]",
"a-gpu[samples=1",
- "abc-def-angle-gl[samples=1]",
+ "abc-def-angle_gl_es2[samples=1]",
});
SkCommandLineConfigArray configs;
@@ -376,13 +355,16 @@ DEF_TEST(ParseConfigs_ViaParsingExtendedForm, reporter) {
} expectedConfigs[] = {
#if SK_SUPPORT_GPU
{"gpu", {"zz", "qq", nullptr}},
+ {"gpu", {"abc", "nbc", "cbs"}},
#else
{"gpu[api=gles]", {"zz", "qq", nullptr}},
+ {"gpu[api=angle_d3d9_es2,samples=1]", {"abc", "nbc", "cbs"}},
#endif
- {"gpu[samples=1", {"a", nullptr, nullptr}}, // This is not extended form, but via still
- // works as expected.
- {"gl[samples=1]", {"abc", "def", "angle"}} // This is not extended form. Also
- // angle-gl is not a "backend" in this case.
+ {"gpu[samples=1", {"a", nullptr, nullptr}}, // Missing bracket makes this is not extended
+ // form but via still works as expected.
+ {"angle_gl_es2[samples=1]", {"abc", "def", nullptr}} // This is not extended form.
+ // angle_gl_es2 is an api type not a
+ // backend.
};
for (int i = 0; i < config1.count(); ++i) {
REPORTER_ASSERT(reporter, configs[i]->getTag().equals(config1[i]));
@@ -399,7 +381,8 @@ DEF_TEST(ParseConfigs_ViaParsingExtendedForm, reporter) {
}
#if SK_SUPPORT_GPU
REPORTER_ASSERT(reporter, configs[0]->asConfigGpu());
- REPORTER_ASSERT(reporter, !configs[1]->asConfigGpu());
+ REPORTER_ASSERT(reporter, configs[1]->asConfigGpu());
REPORTER_ASSERT(reporter, !configs[2]->asConfigGpu());
+ REPORTER_ASSERT(reporter, !configs[3]->asConfigGpu());
#endif
}
diff --git a/tools/flags/SkCommonFlagsConfig.cpp b/tools/flags/SkCommonFlagsConfig.cpp
index 14084ce0e0..808b2bf2cb 100644
--- a/tools/flags/SkCommonFlagsConfig.cpp
+++ b/tools/flags/SkCommonFlagsConfig.cpp
@@ -16,10 +16,8 @@ using sk_gpu_test::GrContextFactory;
static const char defaultConfigs[] =
"8888 gpu nonrendering"
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- " angle"
-#endif
+#if defined(SK_BUILD_FOR_WIN)
+ " angle_d3d11_es2"
#endif
#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
" hwui"
@@ -32,50 +30,46 @@ static const struct {
const char* options;
} gPredefinedConfigs[] ={
#if SK_SUPPORT_GPU
- { "gpu", "gpu", "" },
- { "gl", "gpu", "api=gl" },
- { "msaa4", "gpu", "samples=4" },
- { "glmsaa4", "gpu", "api=gl,samples=4" },
- { "msaa16", "gpu", "samples=16" },
- { "nvpr4", "gpu", "nvpr=true,samples=4" },
- { "glnvpr4", "gpu", "api=gl,nvpr=true,samples=4" },
- { "nvpr16", "gpu", "nvpr=true,samples=16" },
- { "nvprdit4", "gpu", "nvpr=true,samples=4,dit=true" },
- { "glnvprdit4", "gpu", "api=gl,nvpr=true,samples=4,dit=true" },
- { "nvprdit16", "gpu", "nvpr=true,samples=16,dit=true" },
- { "glinst", "gpu", "api=gl,inst=true" },
- { "glinst4", "gpu", "api=gl,inst=true,samples=4" },
- { "glinstdit4", "gpu", "api=gl,inst=true,samples=4,dit=true" },
- { "glinst16", "gpu", "api=gl,inst=true,samples=16" },
- { "glinstdit16", "gpu", "api=gl,inst=true,samples=16,dit=true" },
- { "esinst", "gpu", "api=gles,inst=true" },
- { "esinst4", "gpu", "api=gles,inst=true,samples=4" },
- { "esinstdit4", "gpu", "api=gles,inst=true,samples=4,dit=true" },
- { "gpuf16", "gpu", "color=f16" },
- { "gpusrgb", "gpu", "color=srgb" },
- { "glsrgb", "gpu", "api=gl,color=srgb" },
- { "glwide", "gpu", "api=gl,color=f16_wide" },
- { "gpudft", "gpu", "dit=true" },
- { "gpudebug", "gpu", "api=debug" },
- { "gpunull", "gpu", "api=null" },
- { "debug", "gpu", "api=debug" },
- { "nullgpu", "gpu", "api=null" }
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- ,{ "angle", "gpu", "api=angle" }
-#endif
- ,{ "angle-gl", "gpu", "api=angle-gl" }
-#endif
- ,{ "commandbuffer", "gpu", "api=commandbuffer" }
+ { "gpu", "gpu", "" },
+ { "gl", "gpu", "api=gl" },
+ { "msaa4", "gpu", "samples=4" },
+ { "glmsaa4", "gpu", "api=gl,samples=4" },
+ { "msaa16", "gpu", "samples=16" },
+ { "nvpr4", "gpu", "nvpr=true,samples=4" },
+ { "glnvpr4", "gpu", "api=gl,nvpr=true,samples=4" },
+ { "nvpr16", "gpu", "nvpr=true,samples=16" },
+ { "nvprdit4", "gpu", "nvpr=true,samples=4,dit=true" },
+ { "glnvprdit4", "gpu", "api=gl,nvpr=true,samples=4,dit=true" },
+ { "nvprdit16", "gpu", "nvpr=true,samples=16,dit=true" },
+ { "glinst", "gpu", "api=gl,inst=true" },
+ { "glinst4", "gpu", "api=gl,inst=true,samples=4" },
+ { "glinstdit4", "gpu", "api=gl,inst=true,samples=4,dit=true" },
+ { "glinst16", "gpu", "api=gl,inst=true,samples=16" },
+ { "glinstdit16", "gpu", "api=gl,inst=true,samples=16,dit=true" },
+ { "esinst", "gpu", "api=gles,inst=true" },
+ { "esinst4", "gpu", "api=gles,inst=true,samples=4" },
+ { "esinstdit4", "gpu", "api=gles,inst=true,samples=4,dit=true" },
+ { "gpuf16", "gpu", "color=f16" },
+ { "gpusrgb", "gpu", "color=srgb" },
+ { "glsrgb", "gpu", "api=gl,color=srgb" },
+ { "glwide", "gpu", "api=gl,color=f16_wide" },
+ { "gpudft", "gpu", "dit=true" },
+ { "gpudebug", "gpu", "api=debug" },
+ { "gpunull", "gpu", "api=null" },
+ { "debug", "gpu", "api=debug" },
+ { "nullgpu", "gpu", "api=null" },
+ { "angle_d3d11_es2", "gpu", "api=angle_d3d11_es2" },
+ { "angle_gl_es2", "gpu", "api=angle_gl_es2" },
+ { "commandbuffer", "gpu", "api=commandbuffer" }
#if SK_MESA
- ,{ "mesa", "gpu", "api=mesa" }
+ ,{ "mesa", "gpu", "api=mesa" }
#endif
#ifdef SK_VULKAN
- ,{ "vk", "gpu", "api=vulkan" }
- ,{ "vksrgb", "gpu", "api=vulkan,color=srgb" }
- ,{ "vkwide", "gpu", "api=vulkan,color=f16_wide" }
- ,{ "vkmsaa4", "gpu", "api=vulkan,samples=4" }
- ,{ "vkmsaa16", "gpu", "api=vulkan,samples=16" }
+ ,{ "vk", "gpu", "api=vulkan" }
+ ,{ "vksrgb", "gpu", "api=vulkan,color=srgb" }
+ ,{ "vkwide", "gpu", "api=vulkan,color=f16_wide" }
+ ,{ "vkmsaa4", "gpu", "api=vulkan,samples=4" }
+ ,{ "vkmsaa16", "gpu", "api=vulkan,samples=16" }
#endif
#else
@@ -114,12 +108,11 @@ static const char configExtendedHelp[] =
"\t\tgles \t\t\tUse OpenGL ES.\n"
"\t\tdebug \t\t\tUse debug OpenGL.\n"
"\t\tnull \t\t\tUse null OpenGL.\n"
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- "\t\tangle\t\t\tUse ANGLE DirectX.\n"
-#endif
- "\t\tangle-gl\t\t\tUse ANGLE OpenGL.\n"
-#endif
+ "\t\tangle_d3d9_es2\t\t\tUse OpenGL ES2 on the ANGLE Direct3D9 backend.\n"
+ "\t\tangle_d3d11_es2\t\t\tUse OpenGL ES2 on the ANGLE Direct3D11 backend.\n"
+ "\t\tangle_d3d11_es3\t\t\tUse OpenGL ES3 on the ANGLE Direct3D11 backend.\n"
+ "\t\tangle_gl_es2\t\t\tUse OpenGL ES2 on the ANGLE OpenGL backend.\n"
+ "\t\tangle_gl_es3\t\t\tUse OpenGL ES3 on the ANGLE OpenGL backend.\n"
"\t\tcommandbuffer\t\tUse command buffer.\n"
#if SK_MESA
"\t\tmesa\t\t\tUse MESA.\n"
@@ -233,18 +226,26 @@ static bool parse_option_gpu_api(const SkString& value,
*outContextType = GrContextFactory::kNullGL_ContextType;
return true;
}
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- if (value.equals("angle")) {
- *outContextType = GrContextFactory::kANGLE_ContextType;
+ if (value.equals("angle_d3d9_es2")) {
+ *outContextType = GrContextFactory::kANGLE_D3D9_ES2_ContextType;
return true;
}
-#endif
- if (value.equals("angle-gl")) {
- *outContextType = GrContextFactory::kANGLE_GL_ContextType;
+ if (value.equals("angle_d3d11_es2")) {
+ *outContextType = GrContextFactory::kANGLE_D3D11_ES2_ContextType;
+ return true;
+ }
+ if (value.equals("angle_d3d11_es3")) {
+ *outContextType = GrContextFactory::kANGLE_D3D11_ES3_ContextType;
+ return true;
+ }
+ if (value.equals("angle_gl_es2")) {
+ *outContextType = GrContextFactory::kANGLE_GL_ES2_ContextType;
+ return true;
+ }
+ if (value.equals("angle_gl_es3")) {
+ *outContextType = GrContextFactory::kANGLE_GL_ES3_ContextType;
return true;
}
-#endif
if (value.equals("commandbuffer")) {
*outContextType = GrContextFactory::kCommandBuffer_ContextType;
return true;
@@ -406,13 +407,6 @@ void ParseConfigs(const SkCommandLineFlags::StringArray& configs,
simpleBackend = vias[vias.count() - 1];
vias.pop_back();
}
- // Note: no #if SK_ANGLE: this is a special rule in the via-tag grammar.
- if (vias.count() && simpleBackend.equals("gl") &&
- vias[vias.count() - 1].equals("angle")) {
- simpleBackend = "angle-gl";
- vias.pop_back();
- }
-
for (auto& predefinedConfig : gPredefinedConfigs) {
if (simpleBackend.equals(predefinedConfig.predefinedConfig)) {
extendedBackend = predefinedConfig.backend;
diff --git a/tools/flags/SkCommonFlagsConfig.h b/tools/flags/SkCommonFlagsConfig.h
index e817339c6e..9abf4cb5df 100644
--- a/tools/flags/SkCommonFlagsConfig.h
+++ b/tools/flags/SkCommonFlagsConfig.h
@@ -24,7 +24,7 @@ class SkCommandLineConfigGpu;
// The string has following form:
// tag:
// [via-]*backend
-// where 'backend' consists of chars excluding hyphen or "angle-gl"
+// where 'backend' consists of chars excluding hyphen
// and each 'via' consists of chars excluding hyphen.
class SkCommandLineConfig {
public:
diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp
index 5e6494f778..4f189942bd 100644
--- a/tools/gpu/GrContextFactory.cpp
+++ b/tools/gpu/GrContextFactory.cpp
@@ -117,13 +117,24 @@ ContextInfo GrContextFactory::getContextInfo(ContextType type, ContextOptions op
glCtx = CreatePlatformGLTestContext(kGLES_GrGLStandard);
break;
#if SK_ANGLE
-# ifdef SK_BUILD_FOR_WIN
- case kANGLE_ContextType:
- glCtx = CreateANGLEDirect3DGLTestContext();
+ case kANGLE_D3D9_ES2_ContextType:
+ glCtx = CreateANGLETestContext(ANGLEBackend::kD3D9, ANGLEContextVersion::kES2);
break;
-# endif
- case kANGLE_GL_ContextType:
- glCtx = CreateANGLEOpenGLGLTestContext();
+ case kANGLE_D3D11_ES2_ContextType:
+ glCtx = CreateANGLETestContext(ANGLEBackend::kD3D11,
+ ANGLEContextVersion::kES2);
+ break;
+ case kANGLE_D3D11_ES3_ContextType:
+ glCtx = CreateANGLETestContext(ANGLEBackend::kD3D11,
+ ANGLEContextVersion::kES3);
+ break;
+ case kANGLE_GL_ES2_ContextType:
+ glCtx = CreateANGLETestContext(ANGLEBackend::kOpenGL,
+ ANGLEContextVersion::kES2);
+ break;
+ case kANGLE_GL_ES3_ContextType:
+ glCtx = CreateANGLETestContext(ANGLEBackend::kOpenGL,
+ ANGLEContextVersion::kES3);
break;
#endif
case kCommandBuffer_ContextType:
diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h
index a822ac7868..d6baffc0ea 100644
--- a/tools/gpu/GrContextFactory.h
+++ b/tools/gpu/GrContextFactory.h
@@ -68,15 +68,18 @@ public:
// The availability of context types is subject to platform and build configuration
// restrictions.
enum ContextType {
- kGL_ContextType, //! OpenGL context.
- kGLES_ContextType, //! OpenGL ES context.
- kANGLE_ContextType, //! ANGLE on DirectX OpenGL ES context.
- kANGLE_GL_ContextType, //! ANGLE on OpenGL OpenGL ES context.
- kCommandBuffer_ContextType, //! Chromium command buffer OpenGL ES context.
- kMESA_ContextType, //! MESA OpenGL context
- kNullGL_ContextType, //! Non-rendering OpenGL mock context.
- kDebugGL_ContextType, //! Non-rendering, state verifying OpenGL context.
- kVulkan_ContextType, //! Vulkan
+ kGL_ContextType, //! OpenGL context.
+ kGLES_ContextType, //! OpenGL ES context.
+ kANGLE_D3D9_ES2_ContextType, //! ANGLE on Direct3D9 OpenGL ES 2 context.
+ kANGLE_D3D11_ES2_ContextType,//! ANGLE on Direct3D11 OpenGL ES 2 context.
+ kANGLE_D3D11_ES3_ContextType,//! ANGLE on Direct3D11 OpenGL ES 3 context.
+ kANGLE_GL_ES2_ContextType, //! ANGLE on OpenGL OpenGL ES 2 context.
+ kANGLE_GL_ES3_ContextType, //! ANGLE on OpenGL OpenGL ES 3 context.
+ kCommandBuffer_ContextType, //! Chromium command buffer OpenGL ES context.
+ kMESA_ContextType, //! MESA OpenGL context
+ kNullGL_ContextType, //! Non-rendering OpenGL mock context.
+ kDebugGL_ContextType, //! Non-rendering, state verifying OpenGL context.
+ kVulkan_ContextType, //! Vulkan
kLastContextType = kVulkan_ContextType
};
@@ -127,29 +130,6 @@ public:
}
}
- static const char* ContextTypeName(ContextType type) {
- switch (type) {
- case kGL_ContextType:
- return "gl";
- case kGLES_ContextType:
- return "gles";
- case kANGLE_ContextType:
- return "angle";
- case kANGLE_GL_ContextType:
- return "angle-gl";
- case kCommandBuffer_ContextType:
- return "commandbuffer";
- case kMESA_ContextType:
- return "mesa";
- case kNullGL_ContextType:
- return "nullgl";
- case kDebugGL_ContextType:
- return "debuggl";
- case kVulkan_ContextType:
- return "vulkan";
- }
- }
-
explicit GrContextFactory(const GrContextOptions& opts);
GrContextFactory();
diff --git a/tools/gpu/gl/angle/GLTestContext_angle.cpp b/tools/gpu/gl/angle/GLTestContext_angle.cpp
index 8cc6f99c9f..186e70e054 100644
--- a/tools/gpu/gl/angle/GLTestContext_angle.cpp
+++ b/tools/gpu/gl/angle/GLTestContext_angle.cpp
@@ -26,6 +26,9 @@
#define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208
#define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320D
+using sk_gpu_test::ANGLEBackend;
+using sk_gpu_test::ANGLEContextVersion;
+
namespace {
struct Libs {
void* fGLLib;
@@ -45,7 +48,7 @@ static GrGLFuncPtr angle_get_gl_proc(void* ctx, const char name[]) {
return eglGetProcAddress(name);
}
-void* get_angle_egl_display(void* nativeDisplay, bool useGLBackend) {
+void* get_angle_egl_display(void* nativeDisplay, ANGLEBackend type) {
PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT;
eglGetPlatformDisplayEXT =
(PFNEGLGETPLATFORMDISPLAYEXTPROC)eglGetProcAddress("eglGetPlatformDisplayEXT");
@@ -55,38 +58,25 @@ void* get_angle_egl_display(void* nativeDisplay, bool useGLBackend) {
return EGL_NO_DISPLAY;
}
- EGLDisplay display = EGL_NO_DISPLAY;
- if (useGLBackend) {
- EGLint attribs[3] = {
- EGL_PLATFORM_ANGLE_TYPE_ANGLE,
- EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE,
- EGL_NONE
- };
- display = eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE, nativeDisplay, attribs);
- } else {
- // Try for an ANGLE D3D11 context, fall back to D3D9.
- EGLint attribs[3][3] = {
- {
- EGL_PLATFORM_ANGLE_TYPE_ANGLE,
- EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
- EGL_NONE
- },
- {
- EGL_PLATFORM_ANGLE_TYPE_ANGLE,
- EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE,
- EGL_NONE
- },
- };
- for (int i = 0; i < 3 && display == EGL_NO_DISPLAY; ++i) {
- display = eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE,nativeDisplay, attribs[i]);
- }
+ EGLint typeNum;
+ switch (type) {
+ case ANGLEBackend::kD3D9:
+ typeNum = EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE;
+ break;
+ case ANGLEBackend::kD3D11:
+ typeNum = EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE;
+ break;
+ case ANGLEBackend::kOpenGL:
+ typeNum = EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE;
+ break;
}
- return display;
+ const EGLint attribs[] = { EGL_PLATFORM_ANGLE_TYPE_ANGLE, typeNum, EGL_NONE };
+ return eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE, nativeDisplay, attribs);
}
class ANGLEGLContext : public sk_gpu_test::GLTestContext {
public:
- ANGLEGLContext(bool preferGLBackend);
+ ANGLEGLContext(ANGLEBackend, ANGLEContextVersion);
~ANGLEGLContext() override;
GrEGLImage texture2DToEGLImage(GrGLuint texID) const override;
@@ -101,16 +91,19 @@ private:
void onPlatformSwapBuffers() const override;
GrGLFuncPtr onPlatformGetProcAddress(const char* name) const override;
- void* fContext;
- void* fDisplay;
- void* fSurface;
- bool fIsGLBackend;
+ void* fContext;
+ void* fDisplay;
+ void* fSurface;
+ ANGLEBackend fType;
+ ANGLEContextVersion fVersion;
};
-ANGLEGLContext::ANGLEGLContext(bool useGLBackend)
+ANGLEGLContext::ANGLEGLContext(ANGLEBackend type, ANGLEContextVersion version)
: fContext(EGL_NO_CONTEXT)
, fDisplay(EGL_NO_DISPLAY)
- , fSurface(EGL_NO_SURFACE) {
+ , fSurface(EGL_NO_SURFACE)
+ , fType(type)
+ , fVersion(version) {
EGLint numConfigs;
static const EGLint configAttribs[] = {
@@ -123,8 +116,7 @@ ANGLEGLContext::ANGLEGLContext(bool useGLBackend)
EGL_NONE
};
- fIsGLBackend = useGLBackend;
- fDisplay = get_angle_egl_display(EGL_DEFAULT_DISPLAY, useGLBackend);
+ fDisplay = get_angle_egl_display(EGL_DEFAULT_DISPLAY, type);
if (EGL_NO_DISPLAY == fDisplay) {
SkDebugf("Could not create EGL display!");
return;
@@ -137,8 +129,9 @@ ANGLEGLContext::ANGLEGLContext(bool useGLBackend)
EGLConfig surfaceConfig;
eglChooseConfig(fDisplay, configAttribs, &surfaceConfig, 1, &numConfigs);
- static const EGLint contextAttribs[] = {
- EGL_CONTEXT_CLIENT_VERSION, 2,
+ int versionNum = ANGLEContextVersion::kES2 == version ? 2 : 3;
+ const EGLint contextAttribs[] = {
+ EGL_CONTEXT_CLIENT_VERSION, versionNum,
EGL_NONE
};
fContext = eglCreateContext(fDisplay, surfaceConfig, nullptr, contextAttribs);
@@ -224,13 +217,7 @@ GrGLuint ANGLEGLContext::eglImageToExternalTexture(GrEGLImage image) const {
}
sk_gpu_test::GLTestContext* ANGLEGLContext::createNew() const {
-#ifdef SK_BUILD_FOR_WIN
- sk_gpu_test::GLTestContext* ctx = fIsGLBackend
- ? sk_gpu_test::CreateANGLEOpenGLGLTestContext()
- : sk_gpu_test::CreateANGLEDirect3DGLTestContext();
-#else
- sk_gpu_test::GLTestContext* ctx = sk_gpu_test::CreateANGLEOpenGLGLTestContext();
-#endif
+ sk_gpu_test::GLTestContext* ctx = sk_gpu_test::CreateANGLETestContext(fType, fVersion);
if (ctx) {
ctx->makeCurrent();
}
@@ -299,19 +286,9 @@ const GrGLInterface* CreateANGLEGLInterface() {
return GrGLAssembleGLESInterface(&gLibs, angle_get_gl_proc);
}
-#ifdef SK_BUILD_FOR_WIN
-GLTestContext* CreateANGLEDirect3DGLTestContext() {
- ANGLEGLContext* ctx = new ANGLEGLContext(false);
- if (!ctx->isValid()) {
- delete ctx;
- return NULL;
- }
- return ctx;
- }
-#endif
-
-GLTestContext* CreateANGLEOpenGLGLTestContext() {
- ANGLEGLContext* ctx = new ANGLEGLContext(true);
+GLTestContext* CreateANGLETestContext(ANGLEBackend type,
+ ANGLEContextVersion version) {
+ ANGLEGLContext* ctx = new ANGLEGLContext(type, version);
if (!ctx->isValid()) {
delete ctx;
return NULL;
diff --git a/tools/gpu/gl/angle/GLTestContext_angle.h b/tools/gpu/gl/angle/GLTestContext_angle.h
index 0140477a54..0da747f30f 100644
--- a/tools/gpu/gl/angle/GLTestContext_angle.h
+++ b/tools/gpu/gl/angle/GLTestContext_angle.h
@@ -13,18 +13,24 @@
namespace sk_gpu_test {
/**
- * Creates a GrGLInterface for the currently ANGLE GL context currently bound in ANGLE's EGL
- * implementation.
+ * Creates a GrGLInterface for the current ANGLE GLES Context. Here current means bound in ANGLE's
+ * implementation of EGL.
*/
const GrGLInterface* CreateANGLEGLInterface();
-#ifdef SK_BUILD_FOR_WIN
-/** Creates a GLTestContext backed by ANGLE's Direct3D backend. */
-GLTestContext* CreateANGLEDirect3DGLTestContext();
-#endif
+enum class ANGLEBackend {
+ kD3D9,
+ kD3D11,
+ kOpenGL
+};
+
+enum class ANGLEContextVersion {
+ kES2,
+ kES3
+};
-/** Creates a GLTestContext backed by ANGLE's OpenGL backend. */
-GLTestContext* CreateANGLEOpenGLGLTestContext();
+/** Creates a GLTestContext backed by ANGLE. */
+GLTestContext* CreateANGLETestContext(ANGLEBackend, ANGLEContextVersion);
} // namespace sk_gpu_test
#endif