diff options
author | Chris Dalton <csmartdalton@google.com> | 2017-10-05 01:02:18 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-10-05 17:54:13 +0000 |
commit | 454818b80ae57edfa410f884de3ed31db1e7ea9c (patch) | |
tree | 5e8e7fe42fe31e42e6f7d27693579430b9059455 /dm/DM.cpp | |
parent | a2fd62ac78aa6e961809ada994e9ae46ebf57c7d (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.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
@@ -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 |