aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar kkinnunen <kkinnunen@nvidia.com>2015-12-01 05:10:48 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-12-01 05:10:48 -0800
commiteeebdb538d476c1bfc8b63a946094ca1b505ecd1 (patch)
treed93b4fa64b8ea8e2aaed1f797bb45ea9b5bfbb7c /tests
parent1e2913e7cb8c8122151cabd0aa6c77011253e95b (diff)
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 Review URL: https://codereview.chromium.org/1448883002
Diffstat (limited to 'tests')
-rwxr-xr-xtests/GLInterfaceValidationTest.cpp39
-rw-r--r--tests/GrContextFactoryTest.cpp18
2 files changed, 39 insertions, 18 deletions
diff --git a/tests/GLInterfaceValidationTest.cpp b/tests/GLInterfaceValidationTest.cpp
index 5736e2d2d6..b890b44e5f 100755
--- a/tests/GLInterfaceValidationTest.cpp
+++ b/tests/GLInterfaceValidationTest.cpp
@@ -12,28 +12,33 @@
#include "GrContextFactory.h"
-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;
-
- // 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);
+DEF_GPUTEST(GLInterfaceValidation, reporter, /*factory*/) {
+ GrContextFactory testFactory;
+
+ // 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) {
continue;
}
- REPORTER_ASSERT(reporter, glCtx);
- if (glCtx) {
- const GrGLInterface* interface = glCtx->gl();
- REPORTER_ASSERT(reporter, interface->validate());
+ 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));
}
}
+
}
#endif
diff --git a/tests/GrContextFactoryTest.cpp b/tests/GrContextFactoryTest.cpp
index 79209c719f..ad83a344d8 100644
--- a/tests/GrContextFactoryTest.cpp
+++ b/tests/GrContextFactoryTest.cpp
@@ -10,8 +10,24 @@
#if SK_SUPPORT_GPU
#include "GrContextFactory.h"
+#include "GrCaps.h"
#include "Test.h"
-// TODO: test GrContextFactory.
+DEF_GPUTEST(GrContextFactoryNVPRContextOptions, reporter, /*factory*/) {
+ GrContextFactory testFactory;
+ // Test that if NVPR is possible, caps are in sync.
+ for (int i = 0; i < GrContextFactory::kGLContextTypeCnt; ++i) {
+ GrContextFactory::GLContextType glCtxType = static_cast<GrContextFactory::GLContextType>(i);
+ GrContext* context = testFactory.get(glCtxType,
+ kNone_GrGLStandard,
+ GrContextFactory::kEnableNVPR_GLContextOptions);
+ if (!context) {
+ continue;
+ }
+ REPORTER_ASSERT(
+ reporter,
+ context->caps()->shaderCaps()->pathRenderingSupport());
+ }
+}
#endif