OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 <ctype.h> | 8 #include <ctype.h> |
9 | 9 |
10 #include "Benchmark.h" | 10 #include "Benchmark.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 DEFINE_bool2(verbose, v, false, "Print all samples."); | 42 DEFINE_bool2(verbose, v, false, "Print all samples."); |
43 DEFINE_string(config, "nonrendering 8888 gpu", "Configs to measure. Options: " | 43 DEFINE_string(config, "nonrendering 8888 gpu", "Configs to measure. Options: " |
44 "565 8888 gpu nonrendering debug nullgpu msaa4 msaa16 nvprmsaa4 nv
prmsaa16 angle"); | 44 "565 8888 gpu nonrendering debug nullgpu msaa4 msaa16 nvprmsaa4 nv
prmsaa16 angle"); |
45 DEFINE_double(gpuMs, 5, "Target bench time in millseconds for GPU."); | 45 DEFINE_double(gpuMs, 5, "Target bench time in millseconds for GPU."); |
46 DEFINE_int32(gpuFrameLag, 5, "Overestimate of maximum number of frames GPU allow
s to lag."); | 46 DEFINE_int32(gpuFrameLag, 5, "Overestimate of maximum number of frames GPU allow
s to lag."); |
47 | 47 |
48 DEFINE_bool(cpu, true, "Master switch for CPU-bound work."); | 48 DEFINE_bool(cpu, true, "Master switch for CPU-bound work."); |
49 DEFINE_bool(gpu, true, "Master switch for GPU-bound work."); | 49 DEFINE_bool(gpu, true, "Master switch for GPU-bound work."); |
50 | 50 |
51 DEFINE_string(outResultsFile, "", "If given, write results here as JSON."); | 51 DEFINE_string(outResultsFile, "", "If given, write results here as JSON."); |
| 52 DEFINE_bool(resetGpuContext, true, "Reset the GrContext before running each benc
h."); |
52 | 53 |
53 | 54 |
54 static SkString humanize(double ms) { | 55 static SkString humanize(double ms) { |
55 if (ms > 1e+3) return SkStringPrintf("%.3gs", ms/1e3); | 56 if (ms > 1e+3) return SkStringPrintf("%.3gs", ms/1e3); |
56 if (ms < 1e-3) return SkStringPrintf("%.3gns", ms*1e6); | 57 if (ms < 1e-3) return SkStringPrintf("%.3gns", ms*1e6); |
57 if (ms < 1) return SkStringPrintf("%.3gµs", ms*1e3); | 58 if (ms < 1) return SkStringPrintf("%.3gµs", ms*1e3); |
58 return SkStringPrintf("%.3gms", ms); | 59 return SkStringPrintf("%.3gms", ms); |
59 } | 60 } |
60 | 61 |
61 static double time(int loops, Benchmark* bench, SkCanvas* canvas, SkGLContextHel
per* gl) { | 62 static double time(int loops, Benchmark* bench, SkCanvas* canvas, SkGLContextHel
per* gl) { |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 t->surface.reset(code); \ | 208 t->surface.reset(code); \ |
208 targets->push(t); \ | 209 targets->push(t); \ |
209 } | 210 } |
210 if (FLAGS_cpu) { | 211 if (FLAGS_cpu) { |
211 CPU_TARGET(nonrendering, kNonRendering_Backend, NULL) | 212 CPU_TARGET(nonrendering, kNonRendering_Backend, NULL) |
212 CPU_TARGET(8888, kRaster_Backend, SkSurface::NewRaster(_8888)) | 213 CPU_TARGET(8888, kRaster_Backend, SkSurface::NewRaster(_8888)) |
213 CPU_TARGET(565, kRaster_Backend, SkSurface::NewRaster(_565)) | 214 CPU_TARGET(565, kRaster_Backend, SkSurface::NewRaster(_565)) |
214 } | 215 } |
215 | 216 |
216 #if SK_SUPPORT_GPU | 217 #if SK_SUPPORT_GPU |
| 218 if (FLAGS_resetGpuContext) { |
| 219 gGrFactory.destroyContexts(); |
| 220 } |
| 221 |
217 #define GPU_TARGET(config, ctxType, info, samples)
\ | 222 #define GPU_TARGET(config, ctxType, info, samples)
\ |
218 if (Target* t = is_enabled(bench, Benchmark::kGPU_Backend, #config)) {
\ | 223 if (Target* t = is_enabled(bench, Benchmark::kGPU_Backend, #config)) {
\ |
219 t->surface.reset(SkSurface::NewRenderTarget(gGrFactory.get(ctxType),
info, samples)); \ | 224 t->surface.reset(SkSurface::NewRenderTarget(gGrFactory.get(ctxType),
info, samples)); \ |
220 t->gl = gGrFactory.getGLContext(ctxType);
\ | 225 t->gl = gGrFactory.getGLContext(ctxType);
\ |
221 targets->push(t);
\ | 226 targets->push(t);
\ |
222 } | 227 } |
223 if (FLAGS_gpu) { | 228 if (FLAGS_gpu) { |
224 GPU_TARGET(gpu, GrContextFactory::kNative_GLContextType, _8888, 0) | 229 GPU_TARGET(gpu, GrContextFactory::kNative_GLContextType, _8888, 0) |
225 GPU_TARGET(msaa4, GrContextFactory::kNative_GLContextType, _8888, 4) | 230 GPU_TARGET(msaa4, GrContextFactory::kNative_GLContextType, _8888, 4) |
226 GPU_TARGET(msaa16, GrContextFactory::kNative_GLContextType, _8888, 16) | 231 GPU_TARGET(msaa16, GrContextFactory::kNative_GLContextType, _8888, 16) |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 } | 359 } |
355 | 360 |
356 return 0; | 361 return 0; |
357 } | 362 } |
358 | 363 |
359 #if !defined SK_BUILD_FOR_IOS | 364 #if !defined SK_BUILD_FOR_IOS |
360 int main(int argc, char * const argv[]) { | 365 int main(int argc, char * const argv[]) { |
361 return tool_main(argc, (char**) argv); | 366 return tool_main(argc, (char**) argv); |
362 } | 367 } |
363 #endif | 368 #endif |
OLD | NEW |