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

Side by Side Diff: bench/benchmain.cpp

Issue 319043005: Support using OpenGL ES context on desktop (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix the crash, tested on xoom Created 6 years, 6 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
« no previous file with comments | « no previous file | dm/DM.cpp » ('j') | src/gpu/gl/GrGLAssembleGLESInterface.h » ('J')
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 #include "BenchLogger.h" 8 #include "BenchLogger.h"
9 #include "Benchmark.h" 9 #include "Benchmark.h"
10 #include "CrashHandler.h" 10 #include "CrashHandler.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 kDeferredSilent_BenchMode, 43 kDeferredSilent_BenchMode,
44 kRecord_BenchMode, 44 kRecord_BenchMode,
45 kPictureRecord_BenchMode 45 kPictureRecord_BenchMode
46 }; 46 };
47 const char* BenchMode_Name[] = { 47 const char* BenchMode_Name[] = {
48 "normal", "deferred", "deferredSilent", "record", "picturerecord" 48 "normal", "deferred", "deferredSilent", "record", "picturerecord"
49 }; 49 };
50 50
51 static const char kDefaultsConfigStr[] = "defaults"; 51 static const char kDefaultsConfigStr[] = "defaults";
52 52
53 #if SK_SUPPORT_GPU
54 static const char kGpuAPINameGL[] = "gl";
55 static const char kGpuAPINameGLES[] = "gles";
56 #endif
57
53 /////////////////////////////////////////////////////////////////////////////// 58 ///////////////////////////////////////////////////////////////////////////////
54 59
55 class Iter { 60 class Iter {
56 public: 61 public:
57 Iter() : fBenches(BenchRegistry::Head()), fGMs(skiagm::GMRegistry::Head()) { } 62 Iter() : fBenches(BenchRegistry::Head()), fGMs(skiagm::GMRegistry::Head()) { }
58 63
59 Benchmark* next() { 64 Benchmark* next() {
60 if (fBenches) { 65 if (fBenches) {
61 BenchRegistry::Factory f = fBenches->factory(); 66 BenchRegistry::Factory f = fBenches->factory();
62 fBenches = fBenches->next(); 67 fBenches = fBenches->next();
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 225
221 DEFINE_bool(rotate, false, "Rotate canvas before bench run?"); 226 DEFINE_bool(rotate, false, "Rotate canvas before bench run?");
222 DEFINE_bool(scale, false, "Scale canvas before bench run?"); 227 DEFINE_bool(scale, false, "Scale canvas before bench run?");
223 DEFINE_bool(clip, false, "Clip canvas before bench run?"); 228 DEFINE_bool(clip, false, "Clip canvas before bench run?");
224 229
225 DEFINE_bool(forceAA, true, "Force anti-aliasing?"); 230 DEFINE_bool(forceAA, true, "Force anti-aliasing?");
226 DEFINE_bool(forceFilter, false, "Force bitmap filtering?"); 231 DEFINE_bool(forceFilter, false, "Force bitmap filtering?");
227 DEFINE_string(forceDither, "default", "Force dithering: true, false, or default? "); 232 DEFINE_string(forceDither, "default", "Force dithering: true, false, or default? ");
228 DEFINE_bool(forceBlend, false, "Force alpha blending?"); 233 DEFINE_bool(forceBlend, false, "Force alpha blending?");
229 234
235 DEFINE_string(gpuAPI, "", "Force use of specific gpu API. Using \"gl\" "
236 "forces OpenGL API. Using \"gles\" forces OpenGL ES API. "
237 "Defaults to empty string, which selects the API native to the "
238 "system.");
230 DEFINE_int32(gpuCacheBytes, -1, "GPU cache size limit in bytes. 0 to disable ca che."); 239 DEFINE_int32(gpuCacheBytes, -1, "GPU cache size limit in bytes. 0 to disable ca che.");
231 DEFINE_int32(gpuCacheCount, -1, "GPU cache size limit in object count. 0 to dis able cache."); 240 DEFINE_int32(gpuCacheCount, -1, "GPU cache size limit in object count. 0 to dis able cache.");
232 241
233 DEFINE_bool2(leaks, l, false, "show leaked ref cnt'd objects."); 242 DEFINE_bool2(leaks, l, false, "show leaked ref cnt'd objects.");
234 DEFINE_string(match, "", "[~][^]substring[$] [...] of test name to run.\n" 243 DEFINE_string(match, "", "[~][^]substring[$] [...] of test name to run.\n"
235 "Multiple matches may be separated by spaces.\n" 244 "Multiple matches may be separated by spaces.\n"
236 "~ causes a matching test to always be skipped\n" 245 "~ causes a matching test to always be skipped\n"
237 "^ requires the start of the test to match\n" 246 "^ requires the start of the test to match\n"
238 "$ requires the end of the test to match\n" 247 "$ requires the end of the test to match\n"
239 "^ and $ requires an exact match\n" 248 "^ and $ requires an exact match\n"
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 for (int i = 0; i < configs.count(); ++i) { 350 for (int i = 0; i < configs.count(); ++i) {
342 const Config& config = gConfigs[configs[i]]; 351 const Config& config = gConfigs[configs[i]];
343 if (Benchmark::kNonRendering_Backend == config.backend) { 352 if (Benchmark::kNonRendering_Backend == config.backend) {
344 configs.remove(i, 1); 353 configs.remove(i, 1);
345 --i; 354 --i;
346 } 355 }
347 } 356 }
348 } 357 }
349 358
350 #if SK_SUPPORT_GPU 359 #if SK_SUPPORT_GPU
360 GrGLStandard gpuAPI = kNone_GrGLStandard;
361 if (1 == FLAGS_gpuAPI.count()) {
362 if (FLAGS_gpuAPI.contains(kGpuAPINameGL)) {
363 gpuAPI = kGL_GrGLStandard;
364 } else if (FLAGS_gpuAPI.contains(kGpuAPINameGLES)) {
365 gpuAPI = kGLES_GrGLStandard;
366 } else {
367 SkDebugf("Selected gpu API could not be used. Using the default.\n") ;
368 }
369 } else if (FLAGS_gpuAPI.count() > 1) {
370 SkDebugf("Selected gpu API could not be used. Using the default.\n");
371 }
372
351 for (int i = 0; i < configs.count(); ++i) { 373 for (int i = 0; i < configs.count(); ++i) {
352 const Config& config = gConfigs[configs[i]]; 374 const Config& config = gConfigs[configs[i]];
353 375
354 if (Benchmark::kGPU_Backend == config.backend) { 376 if (Benchmark::kGPU_Backend == config.backend) {
355 GrContext* context = gContextFactory.get(config.contextType); 377 GrContext* context = gContextFactory.get(config.contextType, gpuAPI) ;
356 if (NULL == context) { 378 if (NULL == context) {
357 SkDebugf("GrContext could not be created for config %s. Config w ill be skipped.\n", 379 SkDebugf("GrContext could not be created for config %s. Config w ill be skipped.\n",
358 config.name); 380 config.name);
359 configs.remove(i); 381 configs.remove(i);
360 --i; 382 --i;
361 continue; 383 continue;
362 } 384 }
363 if (config.sampleCount > context->getMaxSampleCount()){ 385 if (config.sampleCount > context->getMaxSampleCount()){
364 SkDebugf( 386 SkDebugf(
365 "Sample count (%d) for config %s is not supported. Config wi ll be skipped.\n", 387 "Sample count (%d) for config %s is not supported. Config wi ll be skipped.\n",
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 writer.option("build", "RELEASE"); 427 writer.option("build", "RELEASE");
406 #endif 428 #endif
407 429
408 // Set texture cache limits if non-default. 430 // Set texture cache limits if non-default.
409 for (size_t i = 0; i < SK_ARRAY_COUNT(gConfigs); ++i) { 431 for (size_t i = 0; i < SK_ARRAY_COUNT(gConfigs); ++i) {
410 #if SK_SUPPORT_GPU 432 #if SK_SUPPORT_GPU
411 const Config& config = gConfigs[i]; 433 const Config& config = gConfigs[i];
412 if (Benchmark::kGPU_Backend != config.backend) { 434 if (Benchmark::kGPU_Backend != config.backend) {
413 continue; 435 continue;
414 } 436 }
415 GrContext* context = gContextFactory.get(config.contextType); 437 GrContext* context = gContextFactory.get(config.contextType, gpuAPI);
416 if (NULL == context) { 438 if (NULL == context) {
417 continue; 439 continue;
418 } 440 }
419 441
420 size_t bytes; 442 size_t bytes;
421 int count; 443 int count;
422 context->getResourceCacheLimits(&count, &bytes); 444 context->getResourceCacheLimits(&count, &bytes);
423 if (-1 != FLAGS_gpuCacheBytes) { 445 if (-1 != FLAGS_gpuCacheBytes) {
424 bytes = static_cast<size_t>(FLAGS_gpuCacheBytes); 446 bytes = static_cast<size_t>(FLAGS_gpuCacheBytes);
425 } 447 }
(...skipping 25 matching lines...) Expand all
451 const Config& config = gConfigs[configIndex]; 473 const Config& config = gConfigs[configIndex];
452 474
453 if (!bench->isSuitableFor(config.backend)) { 475 if (!bench->isSuitableFor(config.backend)) {
454 continue; 476 continue;
455 } 477 }
456 478
457 GrContext* context = NULL; 479 GrContext* context = NULL;
458 #if SK_SUPPORT_GPU 480 #if SK_SUPPORT_GPU
459 SkGLContextHelper* glContext = NULL; 481 SkGLContextHelper* glContext = NULL;
460 if (Benchmark::kGPU_Backend == config.backend) { 482 if (Benchmark::kGPU_Backend == config.backend) {
461 context = gContextFactory.get(config.contextType); 483 context = gContextFactory.get(config.contextType, gpuAPI);
462 if (NULL == context) { 484 if (NULL == context) {
463 continue; 485 continue;
464 } 486 }
465 glContext = gContextFactory.getGLContext(config.contextType); 487 glContext = gContextFactory.getGLContext(config.contextType);
466 } 488 }
467 #endif 489 #endif
468 490
469 SkAutoTUnref<SkCanvas> canvas; 491 SkAutoTUnref<SkCanvas> canvas;
470 SkAutoTUnref<SkPicture> recordFrom; 492 SkAutoTUnref<SkPicture> recordFrom;
471 SkPictureRecorder recorderTo; 493 SkPictureRecorder recorderTo;
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 gContextFactory.destroyContexts(); 699 gContextFactory.destroyContexts();
678 #endif 700 #endif
679 return 0; 701 return 0;
680 } 702 }
681 703
682 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) 704 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
683 int main(int argc, char * const argv[]) { 705 int main(int argc, char * const argv[]) {
684 return tool_main(argc, (char**) argv); 706 return tool_main(argc, (char**) argv);
685 } 707 }
686 #endif 708 #endif
OLDNEW
« no previous file with comments | « no previous file | dm/DM.cpp » ('j') | src/gpu/gl/GrGLAssembleGLESInterface.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698