Commit Graph

48 Commits

Author SHA1 Message Date
scroggo@google.com
cbcef70891 Provide an option to bench drawing individual tiles in bench_pictures.
Provides output like the following:
running bench [1236 12045] androidpolice.skp
  tile_256x256: tile [0,0] out of [5,48]: msecs =   1.00
  tile_256x256: tile [1,0] out of [5,48]: msecs =   1.50
  tile_256x256: tile [2,0] out of [5,48]: msecs =   1.00
  tile_256x256: tile [3,0] out of [5,48]: msecs =   1.50
  tile_256x256: tile [4,0] out of [5,48]: msecs =   2.50
  tile_256x256: tile [0,1] out of [5,48]: msecs =   2.00
  tile_256x256: tile [1,1] out of [5,48]: msecs =   3.50
  tile_256x256: tile [2,1] out of [5,48]: msecs =   3.50
  tile_256x256: tile [3,1] out of [5,48]: msecs =   6.00
  tile_256x256: tile [4,1] out of [5,48]: msecs =   2.50
  tile_256x256: tile [0,2] out of [5,48]: msecs =   2.00

BUG=https://code.google.com/p/skia/issues/detail?id=1016

Review URL: https://codereview.appspot.com/6937047

git-svn-id: http://skia.googlecode.com/svn/trunk@6805 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-13 22:09:28 +00:00
scroggo@google.com
c0d5e549ab Allow bench_pictures to have its viewport set on the command line.
Instead of drawing the entire (potentially very large) picture, only
draw one viewport's worth.

example:

bench_pictures <skp directory> --viewport 640 480

BUG=https://code.google.com/p/skia/issues/detail?id=1007

Review URL: https://codereview.appspot.com/6943052

git-svn-id: http://skia.googlecode.com/svn/trunk@6799 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-13 21:40:48 +00:00
reed@google.com
5a34fd3f98 add '--mode clone' option to bench_pictures
git-svn-id: http://skia.googlecode.com/svn/trunk@6735 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-10 16:05:09 +00:00
reed@google.com
fe7b1ed30a add SkPictureUtils::GatherPixelRefs()
Review URL: https://codereview.appspot.com/6845106

git-svn-id: http://skia.googlecode.com/svn/trunk@6615 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-29 21:00:39 +00:00
scroggo@google.com
4a26d9d62a Add a new PictureRenderer that draws the picture then breaks up into tiles.
Review URL: https://codereview.appspot.com/6820103

git-svn-id: http://skia.googlecode.com/svn/trunk@6333 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-07 18:01:46 +00:00
caryclark@google.com
e3e940cf81 Add low blur and AAClip options to picture bench.
Copy the settings instead of pointing to the
original set on the stack.
Review URL: https://codereview.appspot.com/6818103

git-svn-id: http://skia.googlecode.com/svn/trunk@6330 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-07 16:42:17 +00:00
caryclark@google.com
a362237644 add draw filter option to picture_bench
Option allows adding a draw filter option per type
or for all types. All SkPaint flags may be filtered,
plus disabling blur and setting the hint level.
Review URL: https://codereview.appspot.com/6816092

git-svn-id: http://skia.googlecode.com/svn/trunk@6318 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-06 21:26:13 +00:00
junov@chromium.org
7b53706a7d Adding SkTileGrid: a new subclass of BBoxHierarchy, optimized for tiled playback.
Review URL: https://codereview.appspot.com/6820093

git-svn-id: http://skia.googlecode.com/svn/trunk@6314 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-06 18:58:43 +00:00
skia.committer@gmail.com
1aa90cf11e Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@6306 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-06 13:18:25 +00:00
scroggo@google.com
a62da2fee7 In bench_pictures --multi, maintain thread local caches.
Builds on https://codereview.appspot.com/6718046/ by mtklein.

Previously, each iteration of drawing a picture started new threads to draw the picture. Since each thread is using thread local storage for the font cache, this means that each iteration had to start with an empty font cache.

The newly added MultiCorePictureRenderer, separated from TiledPictureRenderer, now starts the drawing threads at the beginning of the test using an SkThreadPool, and keeps them alive through all iterations, so the font cache can be reused.

For now, I have removed the pipe version of the threaded renderer.

Updated bench_pictures_main and render_pictures_main to use the new
renderer, and to unref a renderer before early exit.

Review URL: https://codereview.appspot.com/6777063

git-svn-id: http://skia.googlecode.com/svn/trunk@6285 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-02 21:28:12 +00:00
junov@chromium.org
9313ca4bde Adding rtree support to the bench_pictures utility
Review URL: https://codereview.appspot.com/6775080

git-svn-id: http://skia.googlecode.com/svn/trunk@6267 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-02 18:11:49 +00:00
scroggo@google.com
5a7c6be72b Add the ability to provide function pointers to SkPicture serialization
and deserialization for encoding and decoding bitmaps.

Remove kForceFlattenBitmapPixels_Flag, which is no longer used.

When an SkOrderedReadBuffer needs to read a bitmap, if it does not
have an image decoder, use a dummy bitmap.

In GM, add a tolerance option for color differences, used when
testing picture serialization, so it can assume two images are the
same even though PNG encoding/decoding may have resulted in small
differences.

Create dummy implementations for SkImageDecoder and SkImageEncoder
functions in SkImageDecoder_empty so that a project that does not
want to include the images project it can still build.

Allow ports to build without images project.

In Mac's image encoder, copy 4444 to 8888 before encoding.

Add SkWriter32::reservePad, to provide a pointer to write non 4 byte
aligned data, padded with zeroes.

In bench_ and render_ pictures, pass decode function to SkPicture
creation from a stream.

BUG=https://code.google.com/p/skia/issues/detail?id=842

Review URL: https://codereview.appspot.com/6551071

git-svn-id: http://skia.googlecode.com/svn/trunk@5818 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-04 21:46:08 +00:00
caryclark@google.com
868e1f682e fix return value for render_pictures
Review URL: https://codereview.appspot.com/6590049

git-svn-id: http://skia.googlecode.com/svn/trunk@5779 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-02 20:00:03 +00:00
caryclark@google.com
5987f58036 build iOS with 'make all'
This builds all skia tests by treating iOS tools
as executable applications. A few warnings were
fixed as well.

Removed old trace draw code and remnants.
Review URL: https://codereview.appspot.com/6597063

git-svn-id: http://skia.googlecode.com/svn/trunk@5776 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-02 18:33:14 +00:00
fmalita@google.com
c6157be6c0 Pinspect and bench_pictures are crashing when invoked with no arguments.
R=reed@google.com,scroggo@google.com
BUG=

Review URL: https://codereview.appspot.com/6575052

git-svn-id: http://skia.googlecode.com/svn/trunk@5706 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-27 13:09:58 +00:00
borenet@google.com
2d2b9a0d8c Remove automatic resizing in *_pictures
Review URL: https://codereview.appspot.com/6554045

git-svn-id: http://skia.googlecode.com/svn/trunk@5614 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-20 18:54:04 +00:00
scroggo@google.com
bcdf2ec50d In bench_pictures, use a pool of tiles for multicore drawing.
Also includes some code cleanup and code sharing.

Allow setting the number of threads on the command line.

Rename ThreadSafePipeController::playback to ::draw, to be the same
as SkPicture so DrawTileToCanvas can take a template parameter.

Disallow multithreading with GPU turned on.

Display help information with improper tiled arguments.

BUG=https://code.google.com/p/skia/issues/detail?id=871

Review URL: https://codereview.appspot.com/6536050

git-svn-id: http://skia.googlecode.com/svn/trunk@5602 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-20 14:42:33 +00:00
borenet@google.com
57837bff3d Skip empty directories and input files not ending in .skp in *_pictures
Addressing https://code.google.com/p/skia/issues/detail?id=886
Review URL: https://codereview.appspot.com/6531047

git-svn-id: http://skia.googlecode.com/svn/trunk@5597 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-19 17:28:29 +00:00
borenet@google.com
13fd5a15a1 Set DEFAULT_REPEATS to 1
bench defaults to 1 repeat, so bench_pictures should do the same.

This is causing the Android build cycles to be *hours* long.
Review URL: https://codereview.appspot.com/6490123

git-svn-id: http://skia.googlecode.com/svn/trunk@5575 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-17 21:10:05 +00:00
borenet@google.com
66bcbd12bf Check for invalid SkPictures
- Remove hasRecorded() since nobody uses it.
- Add "success" boolean to SkPicture stream constructor
- Track failures in render_pictures and bench_pictures
Review URL: https://codereview.appspot.com/6493105

git-svn-id: http://skia.googlecode.com/svn/trunk@5573 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-17 18:26:06 +00:00
borenet@google.com
e21795e277 Enable automatic rescaling in bench_pictures
bench_pictures with "--device gpu" is failing because we're trying to allocate
too much GPU memory.  Move the recently-added scaling code into picture_utils
and share it between render_pictures and bench_pictures.
Review URL: https://codereview.appspot.com/6495125

git-svn-id: http://skia.googlecode.com/svn/trunk@5543 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-14 14:34:28 +00:00
borenet@google.com
a49bffdb03 Do not exit on failure to open logFile
Temporary solution for write-protected Android devices.  Intention is to revert
in favor of a more permanent solution.
Review URL: https://codereview.appspot.com/6497132

git-svn-id: http://skia.googlecode.com/svn/trunk@5535 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-13 18:54:48 +00:00
scroggo@google.com
5239c32d1e Add -logPerIter, -timers, and -min to bench_pictures.
Additional changes:

Add instance count to bench_pictures.

Remove various PictureBenchmark subclasses which did not do
anything besides have a different PictureRenderer.

BUG=https://code.google.com/p/skia/issues/detail?id=856

Review URL: https://codereview.appspot.com/6496109

git-svn-id: http://skia.googlecode.com/svn/trunk@5496 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-11 19:15:32 +00:00
scroggo@google.com
0a36f43d5f Init graphics in bench_pictures.
Should fix http://code.google.com/p/skia/issues/detail?id=858
Review URL: https://codereview.appspot.com/6490100

git-svn-id: http://skia.googlecode.com/svn/trunk@5475 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-10 20:29:13 +00:00
scroggo@google.com
9a4125283a Report data from bench_pictures in the same fashion as bench.
Move SkBenchLogger into separate files and make bench_pictures use it.
Remove sk_tools::print_msg, since SkBenchLogger is now used instead.

Combine picture_benchmark with bench_pictures, since that is the
only project that uses it.

Refactor the aggregator for bench timer data into its own class and
make bench_pictures use it.

Consolidate the various virtual PictureBenchmark::run functions
into one for reuse.

BUG=https://code.google.com/p/skia/issues/detail?id=822

Review URL: https://codereview.appspot.com/6488086

git-svn-id: http://skia.googlecode.com/svn/trunk@5432 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-07 15:21:18 +00:00
scroggo@google.com
58b4ead36c Perform multi core rendering in bench_pictures.
Add a flag in SkGPipeWriter for threadsafe drawing.

Add a deferred pipe controller to SamplePipeControllers, which can
be called to play back in multiple threads.

Depends on http://codereview.appspot.com/6459105/

Review URL: https://codereview.appspot.com/6482068

git-svn-id: http://skia.googlecode.com/svn/trunk@5371 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-31 16:15:22 +00:00
keyar@chromium.org
f4959ab118 Implemented power of two tiling.
Review URL: https://codereview.appspot.com/6485056

git-svn-id: http://skia.googlecode.com/svn/trunk@5274 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 20:53:25 +00:00
keyar@chromium.org
db9a5fb55f Benchmark results will now print to STDOUT if on not-Android.
Review URL: https://codereview.appspot.com/6446164

git-svn-id: http://skia.googlecode.com/svn/trunk@5215 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-21 17:57:59 +00:00
keyar@chromium.org
a40c20df0e Fixed up SK_SUPPORT_GPU flags.
git-svn-id: http://skia.googlecode.com/svn/trunk@5186 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:04:12 +00:00
keyar@chromium.org
c81686cd6e Added the option to enable GPU rendering on render_ and bench_pictures.
git-svn-id: http://skia.googlecode.com/svn/trunk@5183 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:04:04 +00:00
keyar@chromium.org
78a35c5f1d Changed to Yoda style comparisons where appropriate.
git-svn-id: http://skia.googlecode.com/svn/trunk@5176 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:03:44 +00:00
keyar@chromium.org
fe6391a624 Have GPU based approach workingish.
Benchmarks do not work and it is always on.

git-svn-id: http://skia.googlecode.com/svn/trunk@5175 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:03:41 +00:00
keyar@chromium.org
795cd47342 render_pictures and bench_pictures now use a --mode parameter.
This replaces the --tile, --pipe, etc. options from before as they are mutually exclusive.

Review URL: https://codereview.appspot.com/6443076

git-svn-id: http://skia.googlecode.com/svn/trunk@4930 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-02 18:57:53 +00:00
keyar@chromium.org
163b56734f Merged bench_pictures and render_pictures rendering methods.
bench_pictures now uses a class based method for choosing the benchmark type as well.

Review URL: https://codereview.appspot.com/6452070

git-svn-id: http://skia.googlecode.com/svn/trunk@4894 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-01 17:53:29 +00:00
robertphillips@google.com
fc91dc7004 Windows compiler complaint cleanup
http://codereview.appspot.com/6441055/



git-svn-id: http://skia.googlecode.com/svn/trunk@4796 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 21:18:31 +00:00
keyar@chromium.org
21e3ed2e9a bench_pictures now has an option for benchmarking record time.
Review URL: https://codereview.appspot.com/6350102

git-svn-id: http://skia.googlecode.com/svn/trunk@4632 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 19:20:14 +00:00
keyar@chromium.org
1cbd47c4b1 Preparations for adding options and different render types to render_pictures.
Review URL: https://codereview.appspot.com/6345107

git-svn-id: http://skia.googlecode.com/svn/trunk@4603 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-13 18:22:59 +00:00
keyar@chromium.org
3e8483e0de Benchmark tiling now better reflects how it is done in Chrome.
Namely, the tile backing stores are all the same size.

Review URL: https://codereview.appspot.com/6352099

git-svn-id: http://skia.googlecode.com/svn/trunk@4602 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-13 18:15:04 +00:00
keyar@chromium.org
b5e30abbeb Changed cmsecs to msecs to be consistent with bench.
We are using wall time and not cpu time and so the proper name for this
should probably be outputted.

Review URL: https://codereview.appspot.com/6345104

git-svn-id: http://skia.googlecode.com/svn/trunk@4587 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-12 21:16:49 +00:00
keyar@chromium.org
4916971526 Added a benchmark for measuring picture unflattening time.
Review URL: https://codereview.appspot.com/6354097

git-svn-id: http://skia.googlecode.com/svn/trunk@4582 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-12 19:19:55 +00:00
keyar@chromium.org
a4091ba864 Each benchmark that needs a bitmap will now make its own.
Before, the bitmaps were created and then passed to the benchmark. However, some benchmarks in the future will not require bitmaps. This will remove the necessity of passing around an extraneous bitmap to those tests.

Review URL: https://codereview.appspot.com/6356081

git-svn-id: http://skia.googlecode.com/svn/trunk@4519 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-10 19:53:59 +00:00
keyar@chromium.org
0665f25b31 bench_pictures can now take percentages for tiling width and height.Review URL: https://codereview.appspot.com/6354074
Review URL: https://codereview.appspot.com/6354074

git-svn-id: http://skia.googlecode.com/svn/trunk@4516 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-10 18:30:18 +00:00
robertphillips@google.com
59f46b81f8 Fixed Windows compiler complaints
http://codereview.appspot.com/6392044



git-svn-id: http://skia.googlecode.com/svn/trunk@4511 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-10 17:30:58 +00:00
keyar@chromium.org
2724ae0bb1 bench_pictures will now output the number of tiles for a tiled benchmark.
Review URL: https://codereview.appspot.com/6387044

git-svn-id: http://skia.googlecode.com/svn/trunk@4507 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-10 15:13:21 +00:00
keyar@chromium.org
70b4222344 Tiles that extend beyond the picture are now clipped.
Review URL: https://codereview.appspot.com/6352078

git-svn-id: http://skia.googlecode.com/svn/trunk@4491 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 19:51:05 +00:00
keyar@chromium.org
cf6c44cf92 Added a sgpipe benchmark.
Review URL: https://codereview.appspot.com/6349070

git-svn-id: http://skia.googlecode.com/svn/trunk@4490 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 19:37:40 +00:00
keyar@chromium.org
d1dc920097 Allow specific files and multiple inputs for picture testing tools.
Changed the render_pictures, bench_pictures and test_pictures.py so that multiple inputs can be given. Furthermore, specific files can also be specified.

Unit tests have also been added for picture_utils.cpp.

Review URL: https://codereview.appspot.com/6345054

git-svn-id: http://skia.googlecode.com/svn/trunk@4486 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 18:32:08 +00:00
reed@google.com
006db0f1b8 land https://codereview.appspot.com/6349043/
git-svn-id: http://skia.googlecode.com/svn/trunk@4375 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-27 19:33:29 +00:00