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

Unified Diff: bench/benchmain.cpp

Issue 12607013: Add MSAA configs to bench. (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | include/gpu/GrContext.h » ('j') | src/gpu/GrDrawTarget.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bench/benchmain.cpp
===================================================================
--- bench/benchmain.cpp (revision 8174)
+++ bench/benchmain.cpp (working copy)
@@ -193,7 +193,7 @@
};
static SkDevice* make_device(SkBitmap::Config config, const SkIPoint& size,
- Backend backend, GrContext* context) {
+ Backend backend, int sampleCount, GrContext* context) {
SkDevice* device = NULL;
SkBitmap bitmap;
bitmap.setConfig(config, size.fX, size.fY);
@@ -211,6 +211,7 @@
desc.fFlags = kRenderTarget_GrTextureFlagBit;
desc.fWidth = size.fX;
desc.fHeight = size.fY;
+ desc.fSampleCnt = sampleCount;
SkAutoTUnref<GrTexture> texture(context->createUncachedTexture(desc, NULL, 0));
if (!texture) {
return NULL;
@@ -238,21 +239,25 @@
static const struct {
SkBitmap::Config fConfig;
const char* fName;
+ int fSampleCnt;
Backend fBackend;
GLContextType fContextType;
+ bool fRunByDefault;
} gConfigs[] = {
- { SkBitmap::kNo_Config, "NONRENDERING", kNonRendering_Backend, kDontCareGLCtxType },
- { SkBitmap::kARGB_8888_Config, "8888", kRaster_Backend, kDontCareGLCtxType },
- { SkBitmap::kRGB_565_Config, "565", kRaster_Backend, kDontCareGLCtxType },
+ { SkBitmap::kNo_Config, "NONRENDERING", 0, kNonRendering_Backend, kDontCareGLCtxType, true },
+ { SkBitmap::kARGB_8888_Config, "8888", 0, kRaster_Backend, kDontCareGLCtxType, true },
+ { SkBitmap::kRGB_565_Config, "565", 0, kRaster_Backend, kDontCareGLCtxType, true },
#if SK_SUPPORT_GPU
- { SkBitmap::kARGB_8888_Config, "GPU", kGPU_Backend, GrContextFactory::kNative_GLContextType },
+ { SkBitmap::kARGB_8888_Config, "GPU", 0, kGPU_Backend, GrContextFactory::kNative_GLContextType, true },
+ { SkBitmap::kARGB_8888_Config, "MSAA4", 4, kGPU_Backend, GrContextFactory::kNative_GLContextType, false },
+ { SkBitmap::kARGB_8888_Config, "MSAA16", 16, kGPU_Backend, GrContextFactory::kNative_GLContextType, false },
#if SK_ANGLE
- { SkBitmap::kARGB_8888_Config, "ANGLE", kGPU_Backend, GrContextFactory::kANGLE_GLContextType },
+ { SkBitmap::kARGB_8888_Config, "ANGLE", 0, kGPU_Backend, GrContextFactory::kANGLE_GLContextType, true },
#endif // SK_ANGLE
#ifdef SK_DEBUG
- { SkBitmap::kARGB_8888_Config, "Debug", kGPU_Backend, GrContextFactory::kDebug_GLContextType },
+ { SkBitmap::kARGB_8888_Config, "Debug", 0, kGPU_Backend, GrContextFactory::kDebug_GLContextType, GR_DEBUG },
#endif // SK_DEBUG
- { SkBitmap::kARGB_8888_Config, "NULLGPU", kGPU_Backend, GrContextFactory::kNull_GLContextType },
+ { SkBitmap::kARGB_8888_Config, "NULLGPU", 0, kGPU_Backend, GrContextFactory::kNull_GLContextType, true },
#endif // SK_SUPPORT_GPU
};
@@ -280,6 +285,12 @@
}
static void help() {
+ SkString configsStr;
+ static const size_t kConfigCount = SK_ARRAY_COUNT(gConfigs);
+ for (size_t i = 0; i < kConfigCount; ++i) {
+ configsStr.appendf("%s%s", gConfigs[i].fName, ((i == kConfigCount - 1) ? "" : "|"));
+ }
+
SkDebugf("Usage: bench [-o outDir] [--repeat nr] [--logPerIter] "
"[--timers [wcgWC]*] [--rotate]\n"
" [--scale] [--clip] [--min] [--forceAA 1|0] [--forceFilter 1|0]\n"
@@ -290,8 +301,9 @@
"\n"
" [--strokeWidth width] [--match name]\n"
" [--mode normal|deferred|deferredSilent|record|picturerecord]\n"
- " [--config 8888|565|GPU|ANGLE|NULLGPU] [-Dfoo bar] [--logFile filename]\n"
- " [-h|--help]");
+ " [--config ");
+ SkDebugf("%s]\n", configsStr.c_str());
+ SkDebugf(" [-Dfoo bar] [--logFile filename] [-h|--help]");
SkDebugf("\n\n");
SkDebugf(" -o outDir : Image of each bench will be put in outDir.\n");
SkDebugf(" --repeat nr : Each bench repeats for nr times.\n");
@@ -327,12 +339,8 @@
" picturerecord, Benchmark the time to do record from a \n"
" SkPicture to a SkPicture.\n");
SkDebugf(" --logFile filename : destination for writing log output, in addition to stdout.\n");
- SkDebugf(" --config ");
- static const size_t kConfigCount = SK_ARRAY_COUNT(gConfigs);
- for (size_t i = 0; i < kConfigCount; ++i) {
- SkDebugf("%s%s", gConfigs[i].fName, ((i == kConfigCount - 1) ? "" : "|"));
- }
- SkDebugf(" : Run bench in corresponding config mode.\n");
+ SkDebugf(" --config %s:\n", configsStr.c_str());
+ SkDebugf(" Run bench in corresponding config mode.\n");
SkDebugf(" -Dfoo bar : Add extra definition to bench.\n");
SkDebugf(" -h|--help : Show this help message.\n");
}
@@ -379,6 +387,7 @@
SkBitmap::Config outConfig = SkBitmap::kNo_Config;
const char* configName = "";
Backend backend = kRaster_Backend; // for warning
+ int sampleCount = 0;
SkTDArray<int> configs;
bool userConfig = false;
@@ -588,9 +597,11 @@
normalTimeFormat.set("%6.4f");
}
if (!userConfig) {
- // if no config is specified by user, we add them all.
+ // if no config is specified by user, add the default configs
for (unsigned int i = 0; i < SK_ARRAY_COUNT(gConfigs); ++i) {
- *configs.append() = i;
+ if (gConfigs[i].fRunByDefault) {
+ *configs.append() = i;
+ }
}
}
if (kNormal_benchModes != benchMode) {
@@ -604,6 +615,34 @@
}
}
+#if SK_SUPPORT_GPU
+ for (int i = 0; i < configs.count(); ++i) {
+ int configIdx = configs[i];
+
+ if (kGPU_Backend == gConfigs[configIdx].fBackend && gConfigs[configIdx].fSampleCnt > 0) {
+ GrContext* context = gContextFactory.get(gConfigs[configIdx].fContextType);
+ if (NULL == context) {
+ SkString error;
+ error.printf("Error creating GrContext for config %s. Config will be skipped.\n",
+ gConfigs[configIdx].fName);
+ logger.logError(error.c_str());
+ configs.remove(i);
+ --i;
+ continue;
+ }
+ if (gConfigs[configIdx].fSampleCnt > context->getMaxSampleCount()){
+ SkString error;
+ error.printf("Sample count (%d) for config %s is unsupported. Config will be skipped.\n",
+ gConfigs[configIdx].fSampleCnt, gConfigs[configIdx].fName);
+ logger.logError(error.c_str());
+ configs.remove(i);
+ --i;
+ continue;
+ }
+ }
+ }
+#endif
+
// report our current settings
{
SkString str;
@@ -728,6 +767,7 @@
outConfig = gConfigs[configIndex].fConfig;
configName = gConfigs[configIndex].fName;
backend = gConfigs[configIndex].fBackend;
+ sampleCount = gConfigs[configIndex].fSampleCnt;
GrContext* context = NULL;
BenchTimer* timer = timers[configIndex];
@@ -747,7 +787,7 @@
SkPicture pictureRecordTo;
if (kNonRendering_Backend != backend) {
- device = make_device(outConfig, dim, backend, context);
+ device = make_device(outConfig, dim, backend, sampleCount, context);
switch(benchMode) {
case kDeferredSilent_benchModes:
« no previous file with comments | « no previous file | include/gpu/GrContext.h » ('j') | src/gpu/GrDrawTarget.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698