aboutsummaryrefslogtreecommitdiffhomepage
path: root/dm/DM.cpp
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2017-10-05 01:02:18 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-10-05 17:54:13 +0000
commit454818b80ae57edfa410f884de3ed31db1e7ea9c (patch)
tree5e8e7fe42fe31e42e6f7d27693579430b9059455 /dm/DM.cpp
parenta2fd62ac78aa6e961809ada994e9ae46ebf57c7d (diff)
Attempt both GL and GLES for GPU unit tests
The hardcoded logic was not all inclusive and caused Chromebooks to not run GPU unit tests. Bug: skia: Change-Id: I7688adab314d12234ee03363609a1c4bf8f2edb5 Reviewed-on: https://skia-review.googlesource.com/55561 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'dm/DM.cpp')
-rw-r--r--dm/DM.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/dm/DM.cpp b/dm/DM.cpp
index ea8ec2742e..b4f52a04b4 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -1466,38 +1466,37 @@ bool IsNullGLContextType(int) { return false; }
void RunWithGPUTestContexts(GrContextTestFn* test, GrContextTypeFilterFn* contextTypeFilter,
Reporter* reporter, GrContextFactory* factory) {
#if SK_SUPPORT_GPU
-
-#if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC)
- static constexpr auto kNativeGLType = GrContextFactory::kGL_ContextType;
-#else
- static constexpr auto kNativeGLType = GrContextFactory::kGLES_ContextType;
-#endif
+ // Make sure we try OpenGL before OpenGL ES. GLES tests on desktop do not account for not fixing
+ // http://skbug.com/2809
+ GR_STATIC_ASSERT(GrContextFactory::kGL_ContextType < GrContextFactory::kGLES_ContextType);
+ bool didTestGL = false;
for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) {
GrContextFactory::ContextType contextType = (GrContextFactory::ContextType) typeInt;
- // Use "native" instead of explicitly trying OpenGL and OpenGL ES. Do not use GLES on
- // desktop since tests do not account for not fixing http://skbug.com/2809
- if (contextType == GrContextFactory::kGL_ContextType ||
- contextType == GrContextFactory::kGLES_ContextType) {
- if (contextType != kNativeGLType) {
- continue;
- }
- }
ContextInfo ctxInfo = factory->getContextInfo(contextType,
GrContextFactory::ContextOverrides::kDisableNVPR);
if (contextTypeFilter && !(*contextTypeFilter)(contextType)) {
continue;
}
+ bool isGL = contextType == GrContextFactory::kGL_ContextType ||
+ contextType == GrContextFactory::kGLES_ContextType;
+ if (isGL && didTestGL) {
+ continue;
+ }
ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType)));
if (ctxInfo.grContext()) {
(*test)(reporter, ctxInfo);
ctxInfo.grContext()->flush();
+ if (isGL) {
+ didTestGL = true;
+ }
}
ctxInfo = factory->getContextInfo(contextType,
GrContextFactory::ContextOverrides::kRequireNVPRSupport);
if (ctxInfo.grContext()) {
(*test)(reporter, ctxInfo);
ctxInfo.grContext()->flush();
+ SkASSERT(!isGL || didTestGL); // Null context also has nvpr.
}
}
#endif