aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/nanobench.cpp
Commit message (Collapse)AuthorAge
* Try out SkTree in nanobench.Gravatar mtklein2014-10-29
| | | | | | | | Looks like a fairly large recording speed win with no playback cost. BUG=skia: Review URL: https://codereview.chromium.org/653023003
* Print GPU cache stats in nanobench/dm with veryVerboseGravatar bsalomon2014-10-24
| | | | Review URL: https://codereview.chromium.org/680553002
* Draw SKPs in 256x256 tiles in nanobench.Gravatar mtklein2014-10-21
| | | | | | | | (This CL will certainly trigger performance regression alerts. Tiled drawing is slower than non-tiled drawing.) BUG=skia: Review URL: https://codereview.chromium.org/669983002
* nanobench: flush after recording every Nth data point.Gravatar mtklein2014-10-14
| | | | | | | | | | Got to keep our precious data in event of a crash. With --flushEvery 10 I'm not seeing this cost any wall time. BUG=skia: Review URL: https://codereview.chromium.org/653083003
* detect --loops is < 0 and interpret that as running forever (mostly)Gravatar reed2014-10-10
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/643143002
* Make the Sk GL context class an abstract base classGravatar kkinnunen2014-10-09
| | | | | | | | | | | | | | | | | | | | | | | Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before, it depended on ifdefs to implement the platform dependent polymorphism. Move the logic to subclasses of the various platform implementations. This a step to enable Skia embedders to compile dm and bench_pictures. The concrete goal is to support running these test apps with Chromium command buffer. With this change, Chromium can implement its own version of SkGLNativeContext that uses command buffer, and host the implementation in its own repository. Implements the above by renaming the SkGLContextHelper to SkGLContext and removing the unneeded SkGLNativeContext. Also removes SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused: no use in Skia code, and no tests. BUG=skia:2992 Committed: https://skia.googlesource.com/skia/+/a90ed4e83897b45d6331ee4c54e1edd4054de9a8 Review URL: https://codereview.chromium.org/630843002
* Revert of Make the Sk GL context class an abstract base class (patchset #4 ↵Gravatar bsalomon2014-10-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:60001 of https://codereview.chromium.org/630843002/) Reason for revert: nanobech failing on Android Original issue's description: > Make the Sk GL context class an abstract base class > > Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before, > it depended on ifdefs to implement the platform dependent polymorphism. Move > the logic to subclasses of the various platform implementations. > > This a step to enable Skia embedders to compile dm and bench_pictures. The > concrete goal is to support running these test apps with Chromium command buffer. > > With this change, Chromium can implement its own version of SkGLNativeContext > that uses command buffer, and host the implementation in its own repository. > > Implements the above by renaming the SkGLContextHelper to SkGLContext and > removing the unneeded SkGLNativeContext. Also removes > SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused: > no use in Skia code, and no tests. > > BUG=skia:2992 > > Committed: https://skia.googlesource.com/skia/+/a90ed4e83897b45d6331ee4c54e1edd4054de9a8 TBR=kkinnunen@nvidia.com NOTREECHECKS=true NOTRY=true BUG=skia:2992 Review URL: https://codereview.chromium.org/639793002
* Make the Sk GL context class an abstract base classGravatar kkinnunen2014-10-08
| | | | | | | | | | | | | | | | | | | | | Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before, it depended on ifdefs to implement the platform dependent polymorphism. Move the logic to subclasses of the various platform implementations. This a step to enable Skia embedders to compile dm and bench_pictures. The concrete goal is to support running these test apps with Chromium command buffer. With this change, Chromium can implement its own version of SkGLNativeContext that uses command buffer, and host the implementation in its own repository. Implements the above by renaming the SkGLContextHelper to SkGLContext and removing the unneeded SkGLNativeContext. Also removes SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused: no use in Skia code, and no tests. BUG=skia:2992 Review URL: https://codereview.chromium.org/630843002
* Have nanobench --verbose mode always just print integer nanoseconds.Gravatar mtklein2014-09-24
| | | | | | | | | | | | | Don't know that anyone but me is using this. Speak up now! BUG=skia: NOTREECHECKS=true R=mtklein@google.com, tfarina@chromium.org Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/599913002
* nanobench: print max RSS in debug mode too.Gravatar mtklein2014-09-18
| | | | | | | | | BUG=skia:2949 R=mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/581083002
* Revert of nanobench: lazily decode bitmaps from SKPs (patchset #1 id:1 of ↵Gravatar mtklein2014-09-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/572933006/) Reason for revert: skia:2944 Original issue's description: > nanobench: lazily decode bitmaps from SKPs > > This makes it considerably cheaper to run SKP recording benchmarks, without > affecting their measurements and without really affecting SKP playback > benchmarks at all. > > On my machine, running out/Release/nanobench --match skp --config nondrendering > drops in run time from 6.7s to 2.5s, and the peak RAM usage drops from 129M to 50M. > > I'm strongly considering making this lazy decoding the default. > > BUG=skia:2944 > > Committed: https://skia.googlesource.com/skia/+/d664c21a38de98d8db210c46f7a8c4187f1534da R=robertphillips@google.com, mtklein@chromium.org TBR=mtklein@chromium.org, robertphillips@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2944 Author: mtklein@google.com Review URL: https://codereview.chromium.org/554583004
* nanobench: lazily decode bitmaps from SKPsGravatar mtklein2014-09-16
| | | | | | | | | | | | | | | | | | This makes it considerably cheaper to run SKP recording benchmarks, without affecting their measurements and without really affecting SKP playback benchmarks at all. On my machine, running out/Release/nanobench --match skp --config nondrendering drops in run time from 6.7s to 2.5s, and the peak RAM usage drops from 129M to 50M. I'm strongly considering making this lazy decoding the default. BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/572933006
* Measure picture recording speed in nanobench.Gravatar mtklein2014-09-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Today we measure SkPicture playback speed, but not the time it takes to record the SkPicture. This fixes that by reading SKPs from disk and re-recording them. On the console, recording shows up first as the nonrendering skp benches, followed later by the usual playback benches: maxrss loops min median mean max stddev samples config bench 51M 2 165µs 168µs 169µs 178µs 3% ▆▄▃█▂▄▁▂▁▁ nonrendering tabl_slashdot.skp 57M 1 9.72ms 9.77ms 9.79ms 9.97ms 1% █▂▂▅▃▂▁▄▂▁ nonrendering desk_pokemonwiki.skp 57M 32 2.92µs 2.96µs 3.03µs 3.46µs 6% ▅▁▁▁▁▁▁█▂▁ nonrendering desk_yahoosports.skp ... 147M 1 3.86ms 3.87ms 3.97ms 4.81ms 7% █▁▁▁▁▁▁▁▁▁ 8888 tabl_slashdot.skp_1 147M 1 4.54ms 4.56ms 4.55ms 4.56ms 0% █▅▇▅█▅▂▁▅▁ 565 tabl_slashdot.skp_1 147M 2 3.08ms 3.24ms 4.17ms 8.18ms 50% █▁▁█▁▁▁▁▁▁ gpu tabl_slashdot.skp_1 147M 1 1.61ms 1.62ms 1.69ms 2.33ms 13% █▁▁▁▁▁▁▁▁▁ 8888 desk_pokemonwiki.skp_1 147M 1 1.44ms 1.44ms 1.45ms 1.47ms 1% ▅▂█▂▂▅▁▁▂▁ 565 desk_pokemonwiki.skp_1 ... On skiaperf.com, they'll also be separated out from playback benches by bench_type. BUG=skia: R=reed@google.com, mtklein@google.com, jcgregorio@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/559153002
* Distinguish common and unique names for skiaperf.com.Gravatar mtklein2014-09-10
| | | | | | | | | | | | Turns out we tack on the size post-facto in ResultsWriter::bench(), so the only place we need getUniqueName() to differ from getName() is SKPBench. BUG=skia: R=jcgregorio@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/552303004
* Fix format of nanobench resultGravatar qiankun.miao2014-09-09
| | | | | | | | | | | | | Column of samples is too wide. This makes config is not align with the 'config' title. Pad 'samples' tilte with some whitespaces to fix this issue. BUG=skia: R=mtklein@google.com Author: qiankun.miao@intel.com Review URL: https://codereview.chromium.org/549153005
* Update DM JSON format.Gravatar mtklein2014-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ex. dm --match patch -w bad --key arch x86 gpu nvidia model z620 --properties git_hash abcd build_number 20 -> { "build_number" : "20", "git_hash" : "abcd", "key" : { "arch" : "x86", "gpu" : "nvidia", "model" : "z620" }, "results" : [ { "key" : { "config" : "565", "name" : "ninepatch-stretch" }, "md5" : "f78cfafcbabaf815f3dfcf61fb59acc7", "options" : { "source_type" : "GM" } }, { "key" : { "config" : "8888", "name" : "ninepatch-stretch" }, "md5" : "3e8a42f35a1e76f00caa191e6310d789", "options" : { "source_type" : "GM" } }, ... This breaks -r, but that's okay. Going to follow up this CL with one that removes that entirely. BUG=skia: R=stephana@google.com, jcgregorio@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/551873003
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Change SkPicture::draw to playbackGravatar robertphillips2014-09-04
| | | | | | | | R=reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/540963002
* Hide fields in SkImageInfoGravatar reed2014-09-03
| | | | | | | | | R=rmistry@google.com TBR=bsalomon Author: reed@google.com Review URL: https://codereview.chromium.org/536003002
* Try out scalar picture sizesGravatar robertphillips2014-08-29
| | | | | | | | | | This paves the way for removing the 'fTile' parameter from SkPictureShader (although that should be a different CL). If we like this we could also move to providing an entire cull SkRect. R=reed@google.com, mtklein@google.com, fmalita@google.com, fmalita@chromium.org Author: robertphillips@google.com Review URL: https://codereview.chromium.org/513983002
* fix numerical overflows in 565 blendsGravatar reed2014-08-22
| | | | | | | | | BUG=skia:2797 R=mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/474983007
* Add --bbh (default true) to nanobench.Gravatar mtklein2014-08-21
| | | | | | | | | | | | | | | | | | | | | | | | | Chrome's using a bounding box, so it's a good idea for our bots to do so too. When set, we'll create an SkTileGrid to match the parameters of --clip, and so should always hit its fast path. This will impose a small overhead (querying the BBH) on all SKPs, but make large SKPs render more quickly. E.g. on GPU desk_pokemonwiki should show about a 30% improvement, tabl_mozilla about 40%, and one very long page from my personal suite, askmefast.com, gets 5x faster. (The performance changes are not the point of the CL, but something we should be aware of.) BUG= R=bsalomon@google.com, mtklein@google.com, robertphillips@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/497493003
* Add --properties for things like gitHash that describe the current nanobench ↵Gravatar mtklein2014-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | run. --key describes the type of run (describes the line on the chart), --properties describes the run itself (describes the dot on the chart). We'll pass --properties gitHash <git hash> build_number <build number> --key ... to nanobench from the bots. And... delete a whole lot of dead code. Example: nanobench --properties gitHash foo build_number 1234 --key bar baz { "build_number" : "1234", "gitHash" : "foo", "key" : { "bar" : "baz" }, "results" : { .... Friends with https://codereview.chromium.org/491943002 BUG=skia: R=jcgregorio@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/488213002
* Define NDEBUG instead of SK_DEBUG/SK_RELEASE.Gravatar mtklein2014-08-20
| | | | | | | | | | | | This makes our builds more like Chrome's, and will make our builds fail if we accidentally use if SK_DEBUG instead of ifdef SK_DEBUG. BUG=skia: R=mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/481513004
* Print max RSS in GM and nanobench too.Gravatar mtklein2014-08-19
| | | | | | | | | | | Everyone used MB, so update the API to just return that. BUG=skia: R=halcanary@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/483323002
* Add --options to nanobench, similar to --key but for non-identifying options.Gravatar mtklein2014-08-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Friends with https://codereview.chromium.org/487233003/ Example of out/Release/nanobench --options build_number 12374 --match patch_grid_texs_small { "gitHash":"unknown-revision", "options":{ "build_number":"12374", "system":"UNIX" }, "results":{ "patch_grid_texs_small_640_480":{ "565":{ "max_ms":0.268116, "mean_ms":0.2318529, "median_ms":0.235337, "min_ms":0.219158, "options":{ "source_type":"bench" }, "stddev_ms":0.01491263917658814 }, "8888":{ "max_ms":0.231881, "mean_ms":0.2214668, "median_ms":0.219356, "min_ms":0.218887, "options":{ "source_type":"bench" }, "stddev_ms":0.004595541070791701 }, "gpu":{ "max_ms":0.1398304782608696, "mean_ms":0.128833402173913, "median_ms":0.1316798695652174, "min_ms":0.1111915434782609, "options":{ "GL_RENDERER":"Quadro 600/PCIe/SSE2", "GL_SHADING_LANGUAGE_VERSION":"4.40 NVIDIA via Cg compiler", "GL_VENDOR":"NVIDIA Corporation", "GL_VERSION":"4.4.0 NVIDIA 331.79", "source_type":"bench" }, "stddev_ms":0.008923738937837156 } } } } BUG=skia: R=jcgregorio@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/490683002
* Add runtime flag to turn compressed alpha masks onGravatar krajcevski2014-08-13
| | | | | | | | R=bsalomon@google.com, robertphillips@google.com, mtklein@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/468293002
* Add entry point for passing options to the GrContextFactoryGravatar krajcevski2014-08-13
| | | | | | | | R=bsalomon@google.com, mtklein@google.com, robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/465073002
* Fix iOS build by centralizing --writePath.Gravatar mtklein2014-08-07
| | | | | | | | | | | CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot BUG=skia: R=mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/452633002
* Add option to dump images from nanobench.Gravatar bsalomon2014-08-07
| | | | | | | | | | Add option to set the repeat count to any number, replacs the --runOnce flag. R=mtklein@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/450743002
* Add angle config to nanobench and make angle a default config for dm and ↵Gravatar bsalomon2014-08-06
| | | | | | | | | | | nanobench. NOTREECHECKS=true R=mtklein@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/441333003
* Fix calibration loop failure condition.Gravatar mtklein2014-08-04
| | | | | | | | | | | | | With the old logic, if the last attempt succeeded, we'd say we failed. We also print two lines for loop calibration failures. Quiet that down. BUG=skia: R=djsollen@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/431503004
* Skip all .skps in 565.Gravatar mtklein2014-08-01
| | | | | | | | | | | | | More SKPs are failing with a 565 target on other platforms: http://108.170.220.120:10117/builders/Test-Win7-ShuttleA-HD2000-x86-Debug/builds/2938/steps/RunNanobench/logs/stdio BUG=skia:2797 R=mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/431983006
* SKPs-as-benches in nanobenchGravatar mtklein2014-08-01
| | | | | | | | | | | | | This is meant to replace bench_pictures. CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Release-iOS-Trybot BUG=skia: R=bsalomon@google.com, jcgregorio@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/425393004
* nanobench: support GMs-as-benchesGravatar mtklein2014-07-31
| | | | | | | | | BUG=skia: R=jcgregorio@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/438683002
* Test abandoning GL context in dm/nanobench.Gravatar bsalomon2014-07-28
| | | | | | | | | | | | Rename GrContext::contextDestroyed to GrContext::abandonContext. Remove GrContext::resetContext. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/422903002
* Make nanobench setup configs outside of loop over benchmarksGravatar bsalomon2014-07-22
| | | | | | | | R=mtklein@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/410683005
* share dm and command flagsGravatar caryclark2014-07-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Share command flags between dm and unit tests. Also, allow dm's core to be included by itself and iOSShell. Command line flags that are the same (or nearly the same) in DM and in skia_tests have been moved to common_flags. Authors, please check to see that the shared common flag is correct for the tool. For iOS, the 'tool_main' entry point has a wrapper to allow multiple tools to be statically linked in the iOSShell. Since SkCommandLineFlags::Parse can only be called once, these calls are disabled in the IOS build. Since the iOS app directory is dynamically assigned a name, use '@' to select it. (This is the same convention chosen by the Mobile Harness iOS file system utilities.) Move the heart of dm.gyp into dm.gypi so that it can be included by itself and iOSShell.gyp. Add tools/flags/SkCommonFlags.* to define and declare common command line flags. Add support for dm to iOSShell. BUG=skia: R=scroggo@google.com, mtklein@google.com, jvanverth@google.com, bsalomon@google.com Author: caryclark@google.com Review URL: https://codereview.chromium.org/389653004
* Fix GLubyte to GrGLubyte.Gravatar jcgregorio2014-07-17
| | | | | | | | | BUG=skia: R=mtklein@google.com Author: jcgregorio@google.com Review URL: https://codereview.chromium.org/405433008
* Change JSON output of nanobench.Gravatar jcgregorio2014-07-17
| | | | | | | | | | | | | | | | We're moving away from BigQuery for storing results so the output doens't have to conform to BQ requirements, which allows simplifying the format. Also stop parsing the filename for information and pass in buildbot parameters explicitly. Adds the following flags to nanobench: --key --gitHash BUG=skia: R=mtklein@google.com, bsalomon@google.com Author: jcgregorio@google.com Review URL: https://codereview.chromium.org/392393002
* Revert of nanobench: --veryVerbose for more Win7 debugging ↵Gravatar mtklein2014-07-17
| | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/401663002/) Reason for revert: Shouldn't be needed anymore. Original issue's description: > nanobench: --veryVerbose for more Win7 debugging > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/e57452d R=mtklein@chromium.org TBR=mtklein@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Author: mtklein@google.com Review URL: https://codereview.chromium.org/404543004
* nanobench: --veryVerbose for more Win7 debuggingGravatar Mike Klein2014-07-17
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/401663002
* nanobench: Protect more against infinite loops.Gravatar mtklein2014-07-17
| | | | | | | | | BUG=skia: R=mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/404543002
* Use __rdtsc on Windows.Gravatar Mike Klein2014-07-16
| | | | | | | | | | | | | | | This seems to be ~100x higher resolution than QueryPerformanceCounter. AFAIK, all our Windows perf bots have constant_tsc, so we can be a bit more direct about using rdtsc directly: it'll always tick at the max CPU frequency. Now, the question remains, what is the max CPU frequency to divide through by? It looks like QueryPerformanceFrequency actually gives the CPU frequency in kHz, suspiciously exactly what we need to divide through to get elapsed milliseconds. That was a freebie. I did some before/after comparison on slow benchmarks. Timings look the same. Going to land this without review tonight to see what happens on the bots; happy to review carefully tomorrow. R=mtklein@google.com TBR=bungeman BUG=skia: Review URL: https://codereview.chromium.org/394363003
* Try to debug Windows infinite loops in nanobench.Gravatar Mike Klein2014-07-15
| | | | | | | | NOTREECHECKS=true BUG=skia: Review URL: https://codereview.chromium.org/396753004
* destroyContexts after each bench instead of beforeGravatar Mike Klein2014-07-15
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/394893002
* Give windows boring bars and use 'us' for microseconds.Gravatar mtklein2014-07-15
| | | | | | | | | | | NOTREECHECKS=true BUG=skia: R=bsalomon@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/393673006
* Add --resetGpuContext to both DM and nanobench.Gravatar mtklein2014-07-15
| | | | | | | | | | | | | Defaulting to true to be conservative for now. BUG=skia: NOTREECHECKS=true R=mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/398483005
* nanobench: add --runOnce.Gravatar mtklein2014-07-14
| | | | | | | | | BUG=skia: R=egdaniel@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/392583005
* nanobench: support --outResultsFileGravatar mtklein2014-07-14
| | | | | | | | | BUG=skia: R=kelvinly@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/390933002