Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(256)

Unified Diff: tests/GLProgramsTest.cpp

Issue 1490113005: Add config options to run different GPU APIs to dm and nanobench (Closed) Base URL: https://skia.googlesource.com/skia.git@commandbuffer-as-api-03-context-factory-glcontext-type
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/gl/mesa/SkMesaGLContext.h ('k') | tests/GrContextFactoryTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/GLProgramsTest.cpp
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
index 9fa8dafda61f9bd9ab0d83d0622a9f2c5d093474..c72c31529b3a3426f9ce82aaed8ffd9cb7dde0aa 100644
--- a/tests/GLProgramsTest.cpp
+++ b/tests/GLProgramsTest.cpp
@@ -401,7 +401,45 @@ bool GrDrawingManager::ProgramUnitTest(GrContext* context, int maxStages) {
return true;
}
-DEF_GPUTEST(GLPrograms, reporter, factory) {
+static int get_glprograms_max_stages(GrContext* context) {
+ GrGLGpu* gpu = static_cast<GrGLGpu*>(context->getGpu());
+ /*
+ * For the time being, we only support the test with desktop GL or for android on
+ * ARM platforms
+ * TODO When we run ES 3.00 GLSL in more places, test again
+ */
+ if (kGL_GrGLStandard == gpu->glStandard() ||
+ kARM_GrGLVendor == gpu->ctxInfo().vendor()) {
+ return 6;
+ } else if (kTegra3_GrGLRenderer == gpu->ctxInfo().renderer() ||
+ kOther_GrGLRenderer == gpu->ctxInfo().renderer()) {
+ return 1;
+ }
+ return 0;
+}
+
+static void test_glprograms_native(skiatest::Reporter* reporter, GrContext* context) {
+ int maxStages = get_glprograms_max_stages(context);
+ if (maxStages == 0) {
+ return;
+ }
+ REPORTER_ASSERT(reporter, GrDrawingManager::ProgramUnitTest(context, maxStages));
+}
+
+static void test_glprograms_other_contexts(skiatest::Reporter* reporter, GrContext* context) {
+ int maxStages = get_glprograms_max_stages(context);
+#ifdef SK_BUILD_FOR_WIN
+ // Some long shaders run out of temporary registers in the D3D compiler on ANGLE and
+ // command buffer.
+ maxStages = SkTMin(maxStages, 2);
+#endif
+ if (maxStages == 0) {
+ return;
+ }
+ REPORTER_ASSERT(reporter, GrDrawingManager::ProgramUnitTest(context, maxStages));
+}
+
+DEF_GPUTEST(GLPrograms, reporter, /*factory*/) {
// Set a locale that would cause shader compilation to fail because of , as decimal separator.
// skbug 3330
#ifdef SK_BUILD_FOR_WIN
@@ -414,42 +452,10 @@ DEF_GPUTEST(GLPrograms, reporter, factory) {
GrContextOptions opts;
opts.fSuppressPrints = true;
GrContextFactory debugFactory(opts);
- for (int type = 0; type < GrContextFactory::kLastGLContextType; ++type) {
- GrContext* context = debugFactory.get(static_cast<GrContextFactory::GLContextType>(type));
- if (context) {
- GrGLGpu* gpu = static_cast<GrGLGpu*>(context->getGpu());
-
- /*
- * For the time being, we only support the test with desktop GL or for android on
- * ARM platforms
- * TODO When we run ES 3.00 GLSL in more places, test again
- */
- int maxStages;
- if (kGL_GrGLStandard == gpu->glStandard() ||
- kARM_GrGLVendor == gpu->ctxInfo().vendor()) {
- maxStages = 6;
- } else if (kTegra3_GrGLRenderer == gpu->ctxInfo().renderer() ||
- kOther_GrGLRenderer == gpu->ctxInfo().renderer()) {
- maxStages = 1;
- } else {
- return;
- }
-#if SK_ANGLE
- // Some long shaders run out of temporary registers in the D3D compiler on ANGLE.
- if (type == GrContextFactory::kANGLE_GLContextType) {
- maxStages = 2;
- }
-#endif
-#if SK_COMMAND_BUFFER
- // Some long shaders run out of temporary registers in the D3D compiler on ANGLE.
- // TODO(hendrikw): This only needs to happen with the ANGLE comand buffer backend.
- if (type == GrContextFactory::kCommandBuffer_GLContextType) {
- maxStages = 2;
- }
-#endif
- REPORTER_ASSERT(reporter, GrDrawingManager::ProgramUnitTest(context, maxStages));
- }
- }
+ skiatest::RunWithGPUTestContexts(test_glprograms_native, skiatest::kNative_GPUTestContexts,
+ reporter, &debugFactory);
+ skiatest::RunWithGPUTestContexts(test_glprograms_other_contexts,
+ skiatest::kOther_GPUTestContexts, reporter, &debugFactory);
}
#endif
« no previous file with comments | « src/gpu/gl/mesa/SkMesaGLContext.h ('k') | tests/GrContextFactoryTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698