Revert of Make NVPR a GL context option instead of a GL context (patchset #2 id:20001 of https://codereview.chromium.org/1448883002/ )
Reason for revert:
BUG=skia:4609
skbug.com/4609
Seems like GrContextFactory needs to fail when the NVPR option is requested but the driver version isn't sufficiently high.
Original issue's description:
> Make NVPR a GL context option instead of a GL context
>
> Make NVPR a GL context option instead of a GL context.
> This may enable NVPR to be run with command buffer
> interface.
>
> No functionality change in DM or nanobench. NVPR can
> only be run with normal GL APIs.
>
> BUG=skia:2992
>
> Committed: https://skia.googlesource.com/skia/+/eeebdb538d476c1bfc8b63a946094ca1b505ecd1
TBR=mtklein@google.com,jvanverth@google.com,kkinnunen@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992
Review URL: https://codereview.chromium.org/1486153002
diff --git a/tests/GLInterfaceValidationTest.cpp b/tests/GLInterfaceValidationTest.cpp
index b890b44..5736e2d 100755
--- a/tests/GLInterfaceValidationTest.cpp
+++ b/tests/GLInterfaceValidationTest.cpp
@@ -12,33 +12,28 @@
#include "GrContextFactory.h"
-DEF_GPUTEST(GLInterfaceValidation, reporter, /*factory*/) {
- GrContextFactory testFactory;
+DEF_GPUTEST(GLInterfaceValidation, reporter, factory) {
+ for (int i = 0; i <= GrContextFactory::kLastGLContextType; ++i) {
+ GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType)i;
+ // this forces the factory to make the context if it hasn't yet
+ GrContextFactory::ContextInfo* contextInfo = factory->getContextInfo(glCtxType);
+ SkGLContext* glCtx = contextInfo ? contextInfo->fGLContext : nullptr;
- // Test that if we do not have NV_path_rendering -related GL extensions,
- // GrContextFactory::get(.., kEnableNVPR_GLContextOptions) always returns nullptr.
- for (int i = 0; i < GrContextFactory::kGLContextTypeCnt; ++i) {
- GrContextFactory::GLContextType glCtxType = static_cast<GrContextFactory::GLContextType>(i);
- GrContextFactory::ContextInfo* context =
- testFactory.getContextInfo(glCtxType, kNone_GrGLStandard,
- GrContextFactory::kNone_GLContextOptions);
- if (!context) {
+ // We're supposed to fail the NVPR context type when we the native context that does not
+ // support the NVPR extension.
+ if (GrContextFactory::kNVPR_GLContextType == glCtxType &&
+ factory->getContextInfo(GrContextFactory::kNative_GLContextType) &&
+ !factory->getContextInfo(GrContextFactory::kNative_GLContextType)->fGLContext->gl()->hasExtension("GL_NV_path_rendering")) {
+ REPORTER_ASSERT(reporter, nullptr == glCtx);
continue;
}
- SkGLContext* glContext = context->fGLContext;
- REPORTER_ASSERT(reporter, glContext->gl()->validate());
-
- if (!(glContext->gl()->hasExtension("GL_NV_path_rendering") ||
- glContext->gl()->hasExtension("GL_CHROMIUM_path_rendering"))) {
- REPORTER_ASSERT(reporter,
- nullptr == testFactory.getContextInfo(
- glCtxType,
- kNone_GrGLStandard,
- GrContextFactory::kEnableNVPR_GLContextOptions));
+ REPORTER_ASSERT(reporter, glCtx);
+ if (glCtx) {
+ const GrGLInterface* interface = glCtx->gl();
+ REPORTER_ASSERT(reporter, interface->validate());
}
}
-
}
#endif