Revert of Explicit control in tools of ANGLE frontend and backend (patchset #6 id...
authorbsalomon <bsalomon@google.com>
Thu, 29 Sep 2016 17:07:22 +0000 (10:07 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 29 Sep 2016 17:07:22 +0000 (10:07 -0700)
Reason for revert:
Broke bots

Original issue's description:
> Explicit control in tools of ANGLE frontend and backend
>
> Update the ANGLE test GL context, GrContextFactory, and config parsing to allow explicit control of ANGLE front/backend.
>
> This will allow us to explicitly test ES2 vs ES3 interfaces to ANGLE as well as D3D9, D3D11, and OpenGL backends.
>
> Also makes the angle api types valid in all builds (but will just fail when SK_ANGLE=1 or not on windows for the d3d backends).
>
> BUG=skia:5804
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381033002
>
> Committed: https://skia.googlesource.com/skia/+/50094fb489543655df026be4e4f99e09e57a1f49

TBR=brianosman@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:5804

Review-Url: https://codereview.chromium.org/2384483003

25 files changed:
infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android.json
infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android.json
infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android.json
infra/bots/recipes/swarm_perf.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android.json
infra/bots/recipes/swarm_perf.expected/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN.json
infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN.json
infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind.json
infra/bots/recipes/swarm_perf.expected/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench.json
infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug.json
infra/bots/recipes/swarm_perf.expected/Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release.json
infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json [deleted file]
infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json
infra/bots/recipes/swarm_perf.expected/Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug.json
infra/bots/recipes/swarm_perf.expected/big_issue_number.json
infra/bots/recipes/swarm_perf.expected/recipe_with_gerrit_patch.json
infra/bots/recipes/swarm_perf.py
infra/bots/recipes/swarm_test.expected/Test-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE.json
infra/bots/recipes/swarm_test.py
tests/TestConfigParsing.cpp
tools/flags/SkCommonFlagsConfig.cpp
tools/flags/SkCommonFlagsConfig.h
tools/gpu/GrContextFactory.cpp
tools/gpu/GrContextFactory.h
tools/gpu/gl/angle/GLTestContext_angle.cpp
tools/gpu/gl/angle/GLTestContext_angle.h

index a3d7c8bf55c18be90f32e9bd62eb036045f49ed0..0ecdd40c2fe881d8112b2ebc3373659b48390ed0 100644 (file)
       "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 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 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",
       "[SLAVE_BUILD]/tmp/nanobench.sh"
     ],
     "name": "write nanobench.sh"
index 02071babf4e395ec2a7d4577659299826dee0d92..6fe42c9de4ff0daa50f881070a54d04dca38ff01 100644 (file)
       "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 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 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",
       "[SLAVE_BUILD]/tmp/nanobench.sh"
     ],
     "name": "write nanobench.sh"
index 7adc031ae526522bbd439fb3d6c25b12835c4bd1..5afb62cfd62fa7580b79c457e81bc5e595bcc594 100644 (file)
       "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 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 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",
       "[SLAVE_BUILD]/tmp/nanobench.sh"
     ],
     "name": "write nanobench.sh"
index a31ad42eb1377994766ff8118ffcb6ae603c11c7..45c64d362df270c822785416c2259c6ef4308120 100644 (file)
       "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 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 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",
       "[SLAVE_BUILD]/tmp/nanobench.sh"
     ],
     "name": "write nanobench.sh"
index f081e8a7a3fe2e39fdb80735a00160a67b5075be..3731a892fac307c7a475623970e533f4eeca87cd 100644 (file)
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index ff65fe1b37717999a294b128f4a891a030587c59..bdd4ae3eabe70258aea0bfb513299b1d22d40012 100644 (file)
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index 5e7b7d6d0e5cb1fba74dda8cdc5c6f6e14c71666..b01ae39514fde185970e3fd800019a2c344dedcf 100644 (file)
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index 44c5735d26558cea7ad6b059eab86a2dff1cd70b..14bbf305e9691fef541f3807b3383c45d3b84d89 100644 (file)
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index 081f0a4a183c27c3520767715db71582a6f539db..a2d86e034ca16f9f779d755bb71f3485ff51619e 100644 (file)
@@ -80,6 +80,7 @@
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index 740635c01e34a3758e7cdf85f20d70032fc08ad8..08cb4c8f1ae8cccc96cf01e5c944635933fe6da2 100644 (file)
       "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
deleted file mode 100644 (file)
index 500d645..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-[
-  {
-    "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
index c6c9c52bff40b090b9a1f65325de5c419cfa1db6..d2949f0d0f5d31b9ee15b46a5f6c0417b961b7e0 100644 (file)
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index 93fe29340b9c864d271cc8259eacd892479aeaee..cf95f97e7af0c301bfd79c4c9435045a3305692e 100644 (file)
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index b3812dc21e37d0522cabef58391f7ef67789822d..ca8799361f6c6c1ba563464c173b4a5f2b889c7d 100644 (file)
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index e562f87e22ca4c8c4ed13142d973ae0c595d0f59..16865975769adcd5e6423c32fa6350c172deefbd 100644 (file)
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
       "8888",
       "gpu",
       "nonrendering",
+      "angle",
       "hwui",
       "f16",
       "srgb",
index a7148b06d81353d17f3dbb202f52729b132967c7..fb8838c047f227a86730b2f43e0dc4b913a31d83 100644 (file)
@@ -38,7 +38,6 @@ 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',
     ],
   },
@@ -63,7 +62,7 @@ def nanobench_flags(bot):
   if 'iOS' in bot:
     args.extend(['--skps', 'ignore_skps'])
 
-  config = ['8888', 'gpu', 'nonrendering', 'hwui' ]
+  config = ['8888', 'gpu', 'nonrendering', 'angle', 'hwui' ]
   if 'AndroidOne' not in bot:
     config += [ 'f16', 'srgb' ]
   if '-GCE-' in bot:
@@ -96,9 +95,6 @@ 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)
 
index 311d43f74ba73b528d310e900bfe247ec12f41ad..d382fe0ee0044473b5a26ca13e1c5d19947de4fa 100644 (file)
       "gpusrgb",
       "pdf",
       "msaa16",
-      "angle_gl_es2",
-      "angle_d3d11_es2",
       "serialize-8888",
       "tiles_rt-8888",
       "pic-8888",
index 760c9d5236849de6619f941f3c25967e8ecd9cca..9876f84627eab1a9c25598f4ffb72bcbd5c2fc3b 100644 (file)
@@ -70,9 +70,6 @@ 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
index 4d7e5cad0e527f91480648019d8c9325a4d8d709..8435b99ce56153a02e85c3a9fe9817a4e33fbd93 100644 (file)
@@ -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_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"
+        "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"
     });
 
     SkCommandLineConfigArray configs;
@@ -167,8 +167,18 @@ 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());
@@ -197,8 +207,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_d3d9_es2]",
-        "gpu[api=angle_gl_es3]",
+        "gpu[api=angle]",
+        "gpu[api=angle-gl]",
         "gpu[api=mesa,samples=77]",
         "gpu[dit=true,api=commandbuffer]",
         "gpu[]",
@@ -219,12 +229,19 @@ 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_D3D9_ES2_ContextType);
-    REPORTER_ASSERT(reporter, configs[1]->asConfigGpu());
+                    GrContextFactory::kANGLE_ContextType);
+#else
+    REPORTER_ASSERT(reporter, !configs[1]->asConfigGpu());
+#endif
     REPORTER_ASSERT(reporter, configs[2]->asConfigGpu()->getContextType() ==
-                    GrContextFactory::kANGLE_GL_ES3_ContextType);
-    REPORTER_ASSERT(reporter, configs[2]->asConfigGpu());
+                    GrContextFactory::kANGLE_GL_ContextType);
+#else
+    REPORTER_ASSERT(reporter, !configs[1]->asConfigGpu());
+    REPORTER_ASSERT(reporter, !configs[2]->asConfigGpu());
+#endif
 #if SK_MESA
     REPORTER_ASSERT(reporter, configs[3]->asConfigGpu()->getContextType() ==
                     GrContextFactory::kMESA_ContextType);
@@ -263,7 +280,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.
@@ -312,7 +329,7 @@ DEF_TEST(ParseConfigs_ViaParsing, reporter) {
     SkCommandLineFlags::StringArray config1 = make_string_array({
         "a-b-c-8888",
         "zz-qq-gpu",
-        "a-angle_gl_es2"
+        "a-angle-gl"
     });
 
     SkCommandLineConfigArray configs;
@@ -323,7 +340,12 @@ DEF_TEST(ParseConfigs_ViaParsing, reporter) {
     } expectedConfigs[] = {
         {"8888", {"a", "b", "c"}},
         {"gpu", {"zz", "qq", nullptr}},
-        {"gpu", { "a", nullptr, 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
     };
     for (int i = 0; i < config1.count(); ++i) {
         REPORTER_ASSERT(reporter, configs[i]->getTag().equals(config1[i]));
@@ -342,9 +364,8 @@ 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_es2[samples=1]",
+        "abc-def-angle-gl[samples=1]",
     });
 
     SkCommandLineConfigArray configs;
@@ -355,16 +376,13 @@ 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}}, // 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.
+        {"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.
     };
     for (int i = 0; i < config1.count(); ++i) {
         REPORTER_ASSERT(reporter, configs[i]->getTag().equals(config1[i]));
@@ -381,8 +399,7 @@ 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
 }
index 808b2bf2cb388a837988befd3400424d2af3ee61..14084ce0e0f7d07eab46c0396c751dad4279d25d 100644 (file)
@@ -16,8 +16,10 @@ using sk_gpu_test::GrContextFactory;
 
 static const char defaultConfigs[] =
     "8888 gpu nonrendering"
-#if defined(SK_BUILD_FOR_WIN)
-    " angle_d3d11_es2"
+#if SK_ANGLE
+#ifdef SK_BUILD_FOR_WIN
+    " angle"
+#endif
 #endif
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
     " hwui"
@@ -30,46 +32,50 @@ 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" },
-    { "angle_d3d11_es2", "gpu", "api=angle_d3d11_es2" },
-    { "angle_gl_es2",    "gpu", "api=angle_gl_es2" },
-    { "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" }
+#if SK_ANGLE
+#ifdef SK_BUILD_FOR_WIN
+    ,{ "angle",      "gpu", "api=angle" }
+#endif
+    ,{ "angle-gl",   "gpu", "api=angle-gl" }
+#endif
+    ,{ "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
@@ -108,11 +114,12 @@ 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"
-    "\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"
+#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\tcommandbuffer\t\tUse command buffer.\n"
 #if SK_MESA
     "\t\tmesa\t\t\tUse MESA.\n"
@@ -226,26 +233,18 @@ static bool parse_option_gpu_api(const SkString& value,
         *outContextType = GrContextFactory::kNullGL_ContextType;
         return true;
     }
-    if (value.equals("angle_d3d9_es2")) {
-        *outContextType = GrContextFactory::kANGLE_D3D9_ES2_ContextType;
-        return true;
-    }
-    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;
+#if SK_ANGLE
+#ifdef SK_BUILD_FOR_WIN
+    if (value.equals("angle")) {
+        *outContextType = GrContextFactory::kANGLE_ContextType;
         return true;
     }
-    if (value.equals("angle_gl_es3")) {
-        *outContextType = GrContextFactory::kANGLE_GL_ES3_ContextType;
+#endif
+    if (value.equals("angle-gl")) {
+        *outContextType = GrContextFactory::kANGLE_GL_ContextType;
         return true;
     }
+#endif
     if (value.equals("commandbuffer")) {
         *outContextType = GrContextFactory::kCommandBuffer_ContextType;
         return true;
@@ -407,6 +406,13 @@ 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;
index 9abf4cb5df3668f35b28876c0259429f0f3cb445..e817339c6e1b756ac2b731a022384884b12b4503 100644 (file)
@@ -24,7 +24,7 @@ class SkCommandLineConfigGpu;
 // The string has following form:
 // tag:
 //   [via-]*backend
-// where 'backend' consists of chars excluding hyphen
+// where 'backend' consists of chars excluding hyphen or "angle-gl"
 // and each 'via' consists of chars excluding hyphen.
 class SkCommandLineConfig {
   public:
index 4f189942bd04aba810bd76a8d55a44e727a6f413..5e6494f77866c56ead1d5d1f60f8b4a287f0ca7e 100644 (file)
@@ -117,24 +117,13 @@ ContextInfo GrContextFactory::getContextInfo(ContextType type, ContextOptions op
                     glCtx = CreatePlatformGLTestContext(kGLES_GrGLStandard);
                     break;
 #if SK_ANGLE
-                case kANGLE_D3D9_ES2_ContextType:
-                    glCtx = CreateANGLETestContext(ANGLEBackend::kD3D9, ANGLEContextVersion::kES2);
+#   ifdef SK_BUILD_FOR_WIN
+                case kANGLE_ContextType:
+                    glCtx = CreateANGLEDirect3DGLTestContext();
                     break;
-                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);
+#   endif
+                case kANGLE_GL_ContextType:
+                    glCtx = CreateANGLEOpenGLGLTestContext();
                     break;
 #endif
                 case kCommandBuffer_ContextType:
index d6baffc0ead7e93c6282cadde1a42882f6420706..a822ac786832f461248fa65b8fcad83fb11e1634 100644 (file)
@@ -68,18 +68,15 @@ 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_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
+        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
         kLastContextType = kVulkan_ContextType
     };
 
@@ -130,6 +127,29 @@ 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();
 
index 186e70e0547831c9f938daa02fe7dcffae2673b2..8cc6f99c9fde814e8989c31fb5ebfdaee42e06cf 100644 (file)
@@ -26,9 +26,6 @@
 #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;
@@ -48,7 +45,7 @@ static GrGLFuncPtr angle_get_gl_proc(void* ctx, const char name[]) {
     return eglGetProcAddress(name);
 }
 
-void* get_angle_egl_display(void* nativeDisplay, ANGLEBackend type) {
+void* get_angle_egl_display(void* nativeDisplay, bool useGLBackend) {
     PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT;
     eglGetPlatformDisplayEXT =
         (PFNEGLGETPLATFORMDISPLAYEXTPROC)eglGetProcAddress("eglGetPlatformDisplayEXT");
@@ -58,25 +55,38 @@ void* get_angle_egl_display(void* nativeDisplay, ANGLEBackend type) {
         return EGL_NO_DISPLAY;
     }
 
-    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;
+    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]);
+        }
     }
-    const EGLint attribs[] = { EGL_PLATFORM_ANGLE_TYPE_ANGLE, typeNum, EGL_NONE };
-    return eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE, nativeDisplay, attribs);
+    return display;
 }
 
 class ANGLEGLContext : public sk_gpu_test::GLTestContext {
 public:
-    ANGLEGLContext(ANGLEBackend, ANGLEContextVersion);
+    ANGLEGLContext(bool preferGLBackend);
     ~ANGLEGLContext() override;
 
     GrEGLImage texture2DToEGLImage(GrGLuint texID) const override;
@@ -91,19 +101,16 @@ private:
     void onPlatformSwapBuffers() const override;
     GrGLFuncPtr onPlatformGetProcAddress(const char* name) const override;
 
-    void*                       fContext;
-    void*                       fDisplay;
-    void*                       fSurface;
-    ANGLEBackend                fType;
-    ANGLEContextVersion         fVersion;
+    void* fContext;
+    void* fDisplay;
+    void* fSurface;
+    bool  fIsGLBackend;
 };
 
-ANGLEGLContext::ANGLEGLContext(ANGLEBackend type, ANGLEContextVersion version)
+ANGLEGLContext::ANGLEGLContext(bool useGLBackend)
     : fContext(EGL_NO_CONTEXT)
     , fDisplay(EGL_NO_DISPLAY)
-    , fSurface(EGL_NO_SURFACE)
-    , fType(type)
-    , fVersion(version) {
+    , fSurface(EGL_NO_SURFACE) {
 
     EGLint numConfigs;
     static const EGLint configAttribs[] = {
@@ -116,7 +123,8 @@ ANGLEGLContext::ANGLEGLContext(ANGLEBackend type, ANGLEContextVersion version)
         EGL_NONE
     };
 
-    fDisplay = get_angle_egl_display(EGL_DEFAULT_DISPLAY, type);
+    fIsGLBackend = useGLBackend;
+    fDisplay = get_angle_egl_display(EGL_DEFAULT_DISPLAY, useGLBackend);
     if (EGL_NO_DISPLAY == fDisplay) {
         SkDebugf("Could not create EGL display!");
         return;
@@ -129,9 +137,8 @@ ANGLEGLContext::ANGLEGLContext(ANGLEBackend type, ANGLEContextVersion version)
     EGLConfig surfaceConfig;
     eglChooseConfig(fDisplay, configAttribs, &surfaceConfig, 1, &numConfigs);
 
-    int versionNum = ANGLEContextVersion::kES2 == version ? 2 : 3;
-    const EGLint contextAttribs[] = {
-        EGL_CONTEXT_CLIENT_VERSION, versionNum,
+    static const EGLint contextAttribs[] = {
+        EGL_CONTEXT_CLIENT_VERSION, 2,
         EGL_NONE
     };
     fContext = eglCreateContext(fDisplay, surfaceConfig, nullptr, contextAttribs);
@@ -217,7 +224,13 @@ GrGLuint ANGLEGLContext::eglImageToExternalTexture(GrEGLImage image) const {
 }
 
 sk_gpu_test::GLTestContext* ANGLEGLContext::createNew() const {
-    sk_gpu_test::GLTestContext* ctx = sk_gpu_test::CreateANGLETestContext(fType, fVersion);
+#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
     if (ctx) {
         ctx->makeCurrent();
     }
@@ -286,9 +299,19 @@ const GrGLInterface* CreateANGLEGLInterface() {
     return GrGLAssembleGLESInterface(&gLibs, angle_get_gl_proc);
 }
 
-GLTestContext* CreateANGLETestContext(ANGLEBackend type,
-                                      ANGLEContextVersion version) {
-    ANGLEGLContext* ctx = new ANGLEGLContext(type, version);
+#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);
     if (!ctx->isValid()) {
         delete ctx;
         return NULL;
index 0da747f30f5a237ee7721b96e7d566c2f78e535f..0140477a54db55742d459d3714ab76557c16d4b8 100644 (file)
 namespace sk_gpu_test {
 
 /**
- * Creates a GrGLInterface for the current ANGLE GLES Context. Here current means bound in ANGLE's
- * implementation of EGL.
+ * Creates a GrGLInterface for the currently ANGLE GL context currently bound in ANGLE's EGL
+ * implementation.
  */
 const GrGLInterface* CreateANGLEGLInterface();
 
-enum class ANGLEBackend {
-    kD3D9,
-    kD3D11,
-    kOpenGL
-};
-
-enum class ANGLEContextVersion {
-    kES2,
-    kES3
-};
+#ifdef SK_BUILD_FOR_WIN
+/** Creates a GLTestContext backed by ANGLE's Direct3D backend. */
+GLTestContext* CreateANGLEDirect3DGLTestContext();
+#endif
 
-/** Creates a GLTestContext backed by ANGLE. */
-GLTestContext* CreateANGLETestContext(ANGLEBackend, ANGLEContextVersion);
+/** Creates a GLTestContext backed by ANGLE's OpenGL backend. */
+GLTestContext* CreateANGLEOpenGLGLTestContext();
 
 }  // namespace sk_gpu_test
 #endif