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>
This commit is contained in:
parent
a2fd62ac78
commit
454818b80a
27
dm/DM.cpp
27
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
|
||||
|
Loading…
Reference in New Issue
Block a user