aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/flags/SkCommonFlagsConfig.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon <bsalomon@google.com>2016-10-14 08:13:48 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-10-14 08:13:48 -0700
commit11abd8d6cb2887bf66711863fb2dfe47da86d979 (patch)
tree6f828174fe46c7b694345a9cf46288f1c2e88996 /tools/flags/SkCommonFlagsConfig.cpp
parent777b5633f599f2a99e2035fdb7ab600779ab95ac (diff)
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 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot Review-Url: https://codereview.chromium.org/2381033002
Diffstat (limited to 'tools/flags/SkCommonFlagsConfig.cpp')
-rw-r--r--tools/flags/SkCommonFlagsConfig.cpp126
1 files changed, 60 insertions, 66 deletions
diff --git a/tools/flags/SkCommonFlagsConfig.cpp b/tools/flags/SkCommonFlagsConfig.cpp
index 3fd8a97b4b..0e911402fb 100644
--- a/tools/flags/SkCommonFlagsConfig.cpp
+++ b/tools/flags/SkCommonFlagsConfig.cpp
@@ -17,10 +17,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"
@@ -33,50 +31,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
@@ -115,12 +109,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"
@@ -234,18 +227,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;
@@ -407,13 +408,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;