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

Side by Side Diff: gm/gmmain.cpp

Issue 12554012: Add config msaa4 to gm (not run by default) and make MSAA configs not run unless (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 9 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 /* 8 /*
9 * Code for the "gm" (Golden Master) rendering comparison tool. 9 * Code for the "gm" (Golden Master) rendering comparison tool.
10 * 10 *
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 kRW_ConfigFlag = (kWrite_ConfigFlag | kRead_ConfigFlag), 156 kRW_ConfigFlag = (kWrite_ConfigFlag | kRead_ConfigFlag),
157 }; 157 };
158 158
159 struct ConfigData { 159 struct ConfigData {
160 SkBitmap::Config fConfig; 160 SkBitmap::Config fConfig;
161 Backend fBackend; 161 Backend fBackend;
162 GLContextType fGLContextType; // GPU backend only 162 GLContextType fGLContextType; // GPU backend only
163 int fSampleCnt; // GPU backend only 163 int fSampleCnt; // GPU backend only
164 ConfigFlags fFlags; 164 ConfigFlags fFlags;
165 const char* fName; 165 const char* fName;
166 bool fRunByDefault;
166 }; 167 };
167 168
168 class BWTextDrawFilter : public SkDrawFilter { 169 class BWTextDrawFilter : public SkDrawFilter {
169 public: 170 public:
170 virtual bool filter(SkPaint*, Type) SK_OVERRIDE; 171 virtual bool filter(SkPaint*, Type) SK_OVERRIDE;
171 }; 172 };
172 bool BWTextDrawFilter::filter(SkPaint* p, Type t) { 173 bool BWTextDrawFilter::filter(SkPaint* p, Type t) {
173 if (kText_Type == t) { 174 if (kText_Type == t) {
174 p->setAntiAlias(false); 175 p->setAntiAlias(false);
175 } 176 }
(...skipping 801 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 #else 978 #else
978 static const GLContextType kDontCare_GLContextType = 0; 979 static const GLContextType kDontCare_GLContextType = 0;
979 #endif 980 #endif
980 981
981 // If the platform does not support writing PNGs of PDFs then there will be no 982 // If the platform does not support writing PNGs of PDFs then there will be no
982 // reference images to read. However, we can always write the .pdf files 983 // reference images to read. However, we can always write the .pdf files
983 static const ConfigFlags kPDFConfigFlags = CAN_IMAGE_PDF ? kRW_ConfigFlag : 984 static const ConfigFlags kPDFConfigFlags = CAN_IMAGE_PDF ? kRW_ConfigFlag :
984 kWrite_ConfigFlag; 985 kWrite_ConfigFlag;
985 986
986 static const ConfigData gRec[] = { 987 static const ConfigData gRec[] = {
987 { SkBitmap::kARGB_8888_Config, kRaster_Backend, kDontCare_GLContextType, 0, kRW_ConfigFlag, "8888" }, 988 { SkBitmap::kARGB_8888_Config, kRaster_Backend, kDontCare_GLContextType, 0, kRW_ConfigFlag, "8888", true },
988 #if 0 // stop testing this (for now at least) since we want to remove support for it (soon please!!!) 989 #if 0 // stop testing this (for now at least) since we want to remove support for it (soon please!!!)
989 { SkBitmap::kARGB_4444_Config, kRaster_Backend, kDontCare_GLContextType, 0, kRW_ConfigFlag, "4444" }, 990 { SkBitmap::kARGB_4444_Config, kRaster_Backend, kDontCare_GLContextType, 0, kRW_ConfigFlag, "4444", true },
990 #endif 991 #endif
991 { SkBitmap::kRGB_565_Config, kRaster_Backend, kDontCare_GLContextType, 0, kRW_ConfigFlag, "565" }, 992 { SkBitmap::kRGB_565_Config, kRaster_Backend, kDontCare_GLContextType, 0, kRW_ConfigFlag, "565", true },
992 #if defined(SK_SCALAR_IS_FLOAT) && SK_SUPPORT_GPU 993 #if SK_SUPPORT_GPU
993 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kNative_GL ContextType, 0, kRW_ConfigFlag, "gpu" }, 994 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kNative_GL ContextType, 0, kRW_ConfigFlag, "gpu", true },
994 #ifndef SK_BUILD_FOR_ANDROID 995 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kNative_GL ContextType, 16, kRW_ConfigFlag, "msaa16", true },
995 // currently we don't want to run MSAA tests on Android 996 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kNative_GL ContextType, 4, kRW_ConfigFlag, "msaa4", false},
996 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kNative_GL ContextType, 16, kRW_ConfigFlag, "msaa16" },
997 #endif
998 /* The debug context does not generate images */ 997 /* The debug context does not generate images */
999 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kDebug_GLC ontextType, 0, kNone_ConfigFlag, "debug" }, 998 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kDebug_GLC ontextType, 0, kNone_ConfigFlag, "debug", true },
1000 #if SK_ANGLE 999 #if SK_ANGLE
1001 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kANGLE_GLC ontextType, 0, kRW_ConfigFlag, "angle" }, 1000 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kANGLE_GLC ontextType, 0, kRW_ConfigFlag, "angle" true },
1002 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kANGLE_GLC ontextType, 16, kRW_ConfigFlag, "anglemsaa16" }, 1001 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kANGLE_GLC ontextType, 16, kRW_ConfigFlag, "anglemsaa16", true },
1003 #endif // SK_ANGLE 1002 #endif // SK_ANGLE
1004 #ifdef SK_MESA 1003 #ifdef SK_MESA
1005 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kMESA_GLCo ntextType, 0, kRW_ConfigFlag, "mesa" }, 1004 { SkBitmap::kARGB_8888_Config, kGPU_Backend, GrContextFactory::kMESA_GLCo ntextType, 0, kRW_ConfigFlag, "mesa", true },
1006 #endif // SK_MESA 1005 #endif // SK_MESA
1007 #endif // defined(SK_SCALAR_IS_FLOAT) && SK_SUPPORT_GPU 1006 #endif // SK_SUPPORT_GPU
1008 #ifdef SK_SUPPORT_XPS 1007 #ifdef SK_SUPPORT_XPS
1009 /* At present we have no way of comparing XPS files (either natively or by c onverting to PNG). */ 1008 /* At present we have no way of comparing XPS files (either natively or by c onverting to PNG). */
1010 { SkBitmap::kARGB_8888_Config, kXPS_Backend, kDontCare_GLContextType, 0, kWrite_ConfigFlag, "xps" }, 1009 { SkBitmap::kARGB_8888_Config, kXPS_Backend, kDontCare_GLContextType, 0, kWrite_ConfigFlag, "xps", true },
1011 #endif // SK_SUPPORT_XPS 1010 #endif // SK_SUPPORT_XPS
1012 #ifdef SK_SUPPORT_PDF 1011 #ifdef SK_SUPPORT_PDF
1013 { SkBitmap::kARGB_8888_Config, kPDF_Backend, kDontCare_GLContextType, 0, kPDFConfigFlags, "pdf" }, 1012 { SkBitmap::kARGB_8888_Config, kPDF_Backend, kDontCare_GLContextType, 0, kPDFConfigFlags, "pdf", true },
1014 #endif // SK_SUPPORT_PDF 1013 #endif // SK_SUPPORT_PDF
1015 }; 1014 };
1016 1015
1017 static void usage(const char * argv0) { 1016 static void usage(const char * argv0) {
1018 fprintf(stderr, "%s\n", argv0); 1017 fprintf(stderr, "%s\n", argv0);
1019 fprintf(stderr, " [--config "); 1018 fprintf(stderr, " [--config ");
1020 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) { 1019 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) {
1021 if (i > 0) { 1020 if (i > 0) {
1022 fprintf(stderr, "|"); 1021 fprintf(stderr, "|");
1023 } 1022 }
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
1347 usage(commandName); 1346 usage(commandName);
1348 return -1; 1347 return -1;
1349 } 1348 }
1350 } 1349 }
1351 if (argv != stop) { 1350 if (argv != stop) {
1352 usage(commandName); 1351 usage(commandName);
1353 return -1; 1352 return -1;
1354 } 1353 }
1355 1354
1356 if (!userConfig) { 1355 if (!userConfig) {
1357 // if no config is specified by user, we add them all. 1356 // if no config is specified by user, add the defaults
1358 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) { 1357 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) {
1359 *configs.append() = i; 1358 if (gRec[i].fRunByDefault) {
1359 *configs.append() = i;
1360 }
1360 } 1361 }
1361 } 1362 }
1362 // now remove any explicitly excluded configs 1363 // now remove any explicitly excluded configs
1363 for (int i = 0; i < excludeConfigs.count(); ++i) { 1364 for (int i = 0; i < excludeConfigs.count(); ++i) {
1364 int index = configs.find(excludeConfigs[i]); 1365 int index = configs.find(excludeConfigs[i]);
1365 if (index >= 0) { 1366 if (index >= 0) {
1366 configs.remove(index); 1367 configs.remove(index);
1367 // now assert that there was only one copy in configs[] 1368 // now assert that there was only one copy in configs[]
1368 SkASSERT(configs.find(excludeConfigs[i]) < 0); 1369 SkASSERT(configs.find(excludeConfigs[i]) < 0);
1369 } 1370 }
1370 } 1371 }
1371 1372
1373 #if SK_SUPPORT_GPU
1374 GrContextFactory* grFactory = new GrContextFactory;
1375 for (int i = 0; i < configs.count(); ++i) {
1376 int index = configs[i];
1377 if (kGPU_Backend == gRec[index].fBackend) {
1378 GrContext* ctx = grFactory->get(gRec[index].fGLContextType);
1379 if (NULL == ctx) {
1380 SkDebugf("GrContext could not be created for config %s. Config w ill be skipped.",
1381 gRec[index].fName);
1382 configs.remove(i);
1383 --i;
1384 }
1385 if (gRec[index].fSampleCnt > ctx->getMaxSampleCount()) {
1386 SkDebugf("Sample count (%d) of config %s is not supported. Confi g will be skipped.",
1387 gRec[index].fSampleCnt, gRec[index].fName);
1388 configs.remove(i);
1389 --i;
1390 }
1391 }
1392 }
1393 #endif
1394
1372 if (doVerbose) { 1395 if (doVerbose) {
1373 SkString str; 1396 SkString str;
1374 str.printf("%d configs:", configs.count()); 1397 str.printf("%d configs:", configs.count());
1375 for (int i = 0; i < configs.count(); ++i) { 1398 for (int i = 0; i < configs.count(); ++i) {
1376 str.appendf(" %s", gRec[configs[i]].fName); 1399 str.appendf(" %s", gRec[configs[i]].fName);
1377 } 1400 }
1378 gm_fprintf(stderr, "%s\n", str.c_str()); 1401 gm_fprintf(stderr, "%s\n", str.c_str());
1379 } 1402 }
1380 1403
1381 GM::SetResourcePath(resourcePath); 1404 GM::SetResourcePath(resourcePath);
(...skipping 30 matching lines...) Expand all
1412 if (moduloRemainder < 0 || moduloRemainder >= moduloDivisor) { 1435 if (moduloRemainder < 0 || moduloRemainder >= moduloDivisor) {
1413 moduloRemainder = -1; 1436 moduloRemainder = -1;
1414 } 1437 }
1415 1438
1416 // Accumulate success of all tests. 1439 // Accumulate success of all tests.
1417 int testsRun = 0; 1440 int testsRun = 0;
1418 int testsPassed = 0; 1441 int testsPassed = 0;
1419 int testsFailed = 0; 1442 int testsFailed = 0;
1420 int testsMissingReferenceImages = 0; 1443 int testsMissingReferenceImages = 0;
1421 1444
1422 #if SK_SUPPORT_GPU
1423 GrContextFactory* grFactory = new GrContextFactory;
1424 #endif
1425
1426 int gmIndex = -1; 1445 int gmIndex = -1;
1427 SkString moduloStr; 1446 SkString moduloStr;
1428 1447
1429 // If we will be writing out files, prepare subdirectories. 1448 // If we will be writing out files, prepare subdirectories.
1430 if (writePath) { 1449 if (writePath) {
1431 if (!sk_mkdir(writePath)) { 1450 if (!sk_mkdir(writePath)) {
1432 return -1; 1451 return -1;
1433 } 1452 }
1434 if (gmmain.fUseFileHierarchy) { 1453 if (gmmain.fUseFileHierarchy) {
1435 for (int i = 0; i < configs.count(); i++) { 1454 for (int i = 0; i < configs.count(); i++) {
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
1722 SkGraphics::Term(); 1741 SkGraphics::Term();
1723 1742
1724 return (0 == testsFailed) ? 0 : -1; 1743 return (0 == testsFailed) ? 0 : -1;
1725 } 1744 }
1726 1745
1727 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) 1746 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
1728 int main(int argc, char * const argv[]) { 1747 int main(int argc, char * const argv[]) {
1729 return tool_main(argc, (char**) argv); 1748 return tool_main(argc, (char**) argv);
1730 } 1749 }
1731 #endif 1750 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698