Commit Graph

159 Commits

Author SHA1 Message Date
robertphillips
9b14f26d0f Alter SkCanvas::drawPicture (devirtualize, take const SkPicture, take pointer)
R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613004
2014-06-04 05:40:44 -07:00
commit-bot@chromium.org
8991c67f0c Call write() within render_pictures but not bench_pictures
BUG=skia:2584
R=bsalomon@google.com, robertphillips@google.com, bensong@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/291843010

git-svn-id: http://skia.googlecode.com/svn/trunk@14837 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 00:36:05 +00:00
commit-bot@chromium.org
661832cade speed up benches: postpone hash computation in PictureRenderer.cpp
fixes phantom performance regression after https://codereview.chromium.org/273783004

R=borenet@google.com, bensong@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/299763002

git-svn-id: http://skia.googlecode.com/svn/trunk@14819 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-21 11:57:16 +00:00
commit-bot@chromium.org
3f04517721 render_pictures: add --mismatchPath flag
When set, it will only write out images that don't match expectations.

BUG=skia:1942
R=rmistry@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/283123002

git-svn-id: http://skia.googlecode.com/svn/trunk@14748 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-15 15:10:48 +00:00
commit-bot@chromium.org
205ce48c38 add --readJsonSummaryPath to render_pictures
BUG=skia:1942
R=borenet@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/273783004

git-svn-id: http://skia.googlecode.com/svn/trunk@14695 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-12 15:37:20 +00:00
commit-bot@chromium.org
90c0fbd349 reland "extract some common code from PictureRenderer"
re-lands https://codereview.chromium.org/273703006/

NOTRY=True
R=bungeman@google.com, djsollen@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/278633002

git-svn-id: http://skia.googlecode.com/svn/trunk@14662 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 03:18:41 +00:00
commit-bot@chromium.org
de3ad9e220 Revert of extract some common code from PictureRenderer (https://codereview.chromium.org/273703006/)
Reason for revert:
breaking the android debug builds.  It seems to be the result of android using shared libs and not lumping everything into one big static lib or executable. So we have more than one copy of SkString which is the root of the issue.

Original issue's description:
> extract some common code from PictureRenderer
>
> Committed: http://code.google.com/p/skia/source/detail?r=14638

R=borenet@google.com, epoger@google.com
TBR=borenet@google.com, epoger@google.com
NOTREECHECKS=true
NOTRY=true

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/274463004

git-svn-id: http://skia.googlecode.com/svn/trunk@14649 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 16:23:56 +00:00
commit-bot@chromium.org
ee18f2a3c9 extract some common code from PictureRenderer
R=borenet@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/273703006

git-svn-id: http://skia.googlecode.com/svn/trunk@14638 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 14:48:44 +00:00
commit-bot@chromium.org
4610a465b6 reland r14391 ('fix contents of render_pictures JSON summary')
BUG=skia:2043,skia:2044,skia:1942,skia:2466
R=caryclark@google.com
TBR=caryclark

Author: epoger@google.com

Review URL: https://codereview.chromium.org/262453002

git-svn-id: http://skia.googlecode.com/svn/trunk@14443 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-29 19:39:22 +00:00
commit-bot@chromium.org
cced37d2c3 Revert of fix contents of render_pictures JSON summary (https://codereview.chromium.org/259703002/)
Reason for revert:
This appears to have caused regressions such as this one: http://108.170.220.120:10117/builders/Perf-Win7-ShuttleA-HD2000-x86-Release/builds/2117/steps/CheckForRegressions/logs/stdio

Original issue's description:
> fix contents of render_pictures JSON summary
>
> BUG=skia:2043,skia:2044,skia:1942
>
> Committed: http://code.google.com/p/skia/source/detail?r=14391

R=scroggo@google.com, epoger@google.com
TBR=epoger@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2043,skia:2044,skia:1942

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/251103004

git-svn-id: http://skia.googlecode.com/svn/trunk@14399 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 14:07:10 +00:00
commit-bot@chromium.org
eecdcb9e8a fix contents of render_pictures JSON summary
BUG=skia:2043,skia:2044,skia:1942
R=scroggo@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/259703002

git-svn-id: http://skia.googlecode.com/svn/trunk@14391 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 13:18:39 +00:00
robertphillips@google.com
770963f23f Staging for cleanup of SkPicture-related headers
https://codereview.chromium.org/243173002



git-svn-id: http://skia.googlecode.com/svn/trunk@14258 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 18:04:41 +00:00
commit-bot@chromium.org
5fb2ce38b3 Staged removal of SkPicture-derived classes
This CL removes the SkPicture-derived classes (with a flag to keeps clients working). In the process it also lightens the recording factory function so it is no longer ref counted).

The only interesting bits are in SkPicture* and Sk*Picture.*

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/238273012

git-svn-id: http://skia.googlecode.com/svn/trunk@14251 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 23:35:06 +00:00
skia.committer@gmail.com
667b98d947 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14234 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 03:05:10 +00:00
commit-bot@chromium.org
d393b17cf3 Retract SkPicture::kOptimizeForClippedPlayback_RecordingFlag from public API
This CL sets the stage for retracting the SkPicture::kOptimizeForClippedPlayback_RecordingFlag flag
from the public API (more work needs to be done in Blink & Chrome). In the new world the only way
to set this flag (and thus instantiate an SkPicture-derived
class) is by passing a factory to the SkPictureRecorder class. This is to get all clients always using
factories so that we can then change the factory call used (i.e., so the factory just creates a BBH) and
do away with the SkPicture-derived classes.

BUG=skia:2315
R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/239703006

git-svn-id: http://skia.googlecode.com/svn/trunk@14221 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 16:02:10 +00:00
skia.committer@gmail.com
5199701acb Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14172 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 03:04:57 +00:00
robertphillips@google.com
84b18c7e3e split SkPictureRecorder out of SkPicture
https://codereview.chromium.org/214953003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-13 19:09:42 +00:00
commit-bot@chromium.org
24c568c159 add explicit filepaths to render_pictures JSON summary
BUG=skia:2230,skia:1942
R=rmistry@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/226293002

git-svn-id: http://skia.googlecode.com/svn/trunk@14133 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 15:39:02 +00:00
commit-bot@chromium.org
8ddc26b68c Actually identify required saveLayers in SkGpuDevice::EXPERIMENTAL_drawPicture
NOTRY=true
R=bsalomon@google.com, rmistry@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/212933002

git-svn-id: http://skia.googlecode.com/svn/trunk@13993 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-31 17:55:12 +00:00
commit-bot@chromium.org
b470c2140c Silence warning after f5e315ccf1.
(clang 3.3):

../tools/PictureRenderer.cpp:350:13: error: variable 'hash' is used uninitialized whenever 'if' condition is false
      [-Werror,-Wsometimes-uninitialized]
        if (!generatedHash) {
            ^~~~~~~~~~~~~~
../tools/PictureRenderer.cpp:354:53: note: uninitialized use occurs here
        jsonSummaryPtr->add(outputFilename.c_str(), hash);
                                                    ^~~~
../tools/PictureRenderer.cpp:350:9: note: remove the 'if' if its condition is always true
        if (!generatedHash) {
        ^~~~~~~~~~~~~~~~~~~~
../tools/PictureRenderer.cpp:334:18: note: initialize the variable 'hash' to silence this warning
    uint64_t hash;
                 ^
                  = 0

The warning is wrong, but the compiler does have a point: generatedHash is always false at that point.

R=epoger@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/196823004

git-svn-id: http://skia.googlecode.com/svn/trunk@13869 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 22:58:52 +00:00
commit-bot@chromium.org
f5e315ccf1 add --writeChecksumBasedFilenames flag to render_pictures
BUG=skia:1455,skia:2230
R=robertphillips@google.com, robertphillips@chromium.org

Author: epoger@google.com

Review URL: https://codereview.chromium.org/202983003

git-svn-id: http://skia.googlecode.com/svn/trunk@13859 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 17:26:07 +00:00
commit-bot@chromium.org
145d1c0fdc Proposed SkCanvas API for preLoading textures to VRAM v2.0
This is an update to (Proposed SkCanvas API for preLoading textures to VRAM - https://codereview.chromium.org/192853002/). It takes into account in-person feedback on the initial proposal. The main feedback was to land this closer to where we will ultimately wind up with the reordered rendering capability (and don't have an SkCanvas entry point (yet)).

Committed: http://code.google.com/p/skia/source/detail?r=13810

R=reed@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/197123003

git-svn-id: http://skia.googlecode.com/svn/trunk@13822 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-16 19:46:36 +00:00
robertphillips@google.com
5ed01d1f8f Revert r13810 (Proposed SkCanvas API for preLoading textures to VRAM v2.0)
git-svn-id: http://skia.googlecode.com/svn/trunk@13811 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 18:50:07 +00:00
commit-bot@chromium.org
1ab85c8719 Proposed SkCanvas API for preLoading textures to VRAM v2.0
This is an update to (Proposed SkCanvas API for preLoading textures to VRAM - https://codereview.chromium.org/192853002/). It takes into account in-person feedback on the initial proposal. The main feedback was to land this closer to where we will ultimately wind up with the reordered rendering capability (and don't have an SkCanvas entry point (yet)).

R=reed@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/197123003

git-svn-id: http://skia.googlecode.com/svn/trunk@13810 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 18:23:12 +00:00
commit-bot@chromium.org
51c040ed1e Alter bench_pictures to "respect" the logPerIter flag.
When --logPerIters is set and --repeat is great then 2 then bench_pictures will run each test "repeat" times (to generate the correct number of timings) by rendering 5 times.

This CL also adds a swapBuffers in addition to the pre-existing flush calls.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/194973003

git-svn-id: http://skia.googlecode.com/svn/trunk@13752 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 22:58:00 +00:00
commit-bot@chromium.org
0fd5270ad6 Add nvprmsaa4 and nvprmsaa16 configs to bench_pictures
Add nvprmsaa4 and nvprmsaa16 configs to bench_pictures.

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/189263012

git-svn-id: http://skia.googlecode.com/svn/trunk@13708 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 18:41:14 +00:00
commit-bot@chromium.org
c22d139808 Initial QuadTree implementation
In an effort to find a faster bounding box hierarchy than the R-Tree, a QuadTree has been implemented here.
For now, the QuadTree construction is generally faster than the R-Tree and the queries are a bit slower, so overall, SKP local tests showed QuadTree performance similar to the R-Tree performance.

Tests and bench are included in this cl.

At this point, I'd like to be able to commit this in order to more easily use the bots to test multiple configurations and a larger number of SKPs. The R-Tree BBH is still used by default so this change shouldn't affect chromium.

BUG=skia:
R=junov@chromium.org, junov@google.com, senorblanco@google.com, senorblanco@chromium.org, reed@google.com, sugoi@google.com, fmalita@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/131343011

git-svn-id: http://skia.googlecode.com/svn/trunk@13282 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-03 18:08:33 +00:00
commit-bot@chromium.org
17cc3eaeaf When a picture lies about its size (i.e., claims to be 100x100 but only ever draws to 90x100) arbitrary pixel differences can appear in the undrawn portion. This is causing spurious differences to appear in the 8888 vs. gpu telemetry results.
R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/136553004

git-svn-id: http://skia.googlecode.com/svn/trunk@13084 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-15 14:51:25 +00:00
reed@google.com
672588b684 change offset to xy for pixelref subsetting
BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/105893012

git-svn-id: http://skia.googlecode.com/svn/trunk@12958 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-08 15:42:01 +00:00
rmistry@google.com
6ab96733b8 Support mesa config in render_pictures.
R=epoger@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/125083004

git-svn-id: http://skia.googlecode.com/svn/trunk@12916 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-06 18:37:24 +00:00
commit-bot@chromium.org
91e3ffded5 These strings are unused.
R=reed@google.com, halcanary@google.com
BUG=

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/102393005

git-svn-id: http://skia.googlecode.com/svn/trunk@12914 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-06 18:29:14 +00:00
robertphillips@google.com
94d8f1ed61 Update bench pictures to time image decode & upload costs
https://codereview.chromium.org/117583002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12742 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 17:25:33 +00:00
skia.committer@gmail.com
3b85deb9c3 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12734 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 07:01:56 +00:00
reed@google.com
e15b2f5296 move SkScalarLog2 into its only client, in a move to reduce our public API surface area
BUG=

Review URL: https://codereview.chromium.org/93643004

git-svn-id: http://skia.googlecode.com/svn/trunk@12731 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 04:59:26 +00:00
commit-bot@chromium.org
a3f882c475 render_pictures: add --writeJsonSummaryPath
Known issues:
- JSON summary will be empty if --writePath not specified also
- testNames within summary do not include the config (8888, gpu, etc.)

BUG=
R=rmistry@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/98643007

git-svn-id: http://skia.googlecode.com/svn/trunk@12680 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 20:52:36 +00:00
sglez@google.com
8c902126a9 R-Tree -- Don't sort draw commands unless specified.
We expect Webkit and Bink to give us draw commands in a reasonable x,y order.
We can maintain correctness and get a 17% recording speedup for the R-Tree by
not sorting in x and y when bulk-loading.

R=caryclark@google.com, reed@google.com

Review URL: https://codereview.chromium.org/23480002

git-svn-id: http://skia.googlecode.com/svn/trunk@11037 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-30 17:27:47 +00:00
robertphillips@google.com
491493119c Add canFilterMaskGPU & filterMaskGPU to SkMaskFilter
https://codereview.chromium.org/18110012/



git-svn-id: http://skia.googlecode.com/svn/trunk@9888 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-03 15:34:35 +00:00
scroggo@google.com
1b1bcc3cea New API for encoding bitmaps during serialization.
This change gives more flexibility to the implementation of
EncodeBitmap to prefer calling refEncodedData, doing its own
encode, or even doing both and making a decision about which
to use.

The new function signature also allows the implementation to
tell the ordered write buffer whether to store the pixel offset,
in the case where the encoded bitmap represents the larger
bitmap, or to ignore the pixel offset, in the case where the
implementation only encoded the subset that is used.

Requires changes to chromium to use the new function signature.
(https://codereview.chromium.org/15496006/)

SkPicture:
New API for EncodeBitmap.

SkOrderedReadBuffer:
Ifdef'd out addition of reading the offset.

SkOrderedWriteBuffer:
Never call refEncodedData. Allow the user to call that from their
EncodeBitmap function, if desired.
This addresses https://code.google.com/p/skia/issues/detail?id=1239
Add in ifdef'd out code to record the offset.

PictureTest and PictureRenderer:
Implement the new definition of EncodeBitmap. Also update the name
of the function to meet coding style guidelines.

BUG=https://code.google.com/p/skia/issues/detail?id=1239
R=reed@google.com

Review URL: https://codereview.chromium.org/15489004

git-svn-id: http://skia.googlecode.com/svn/trunk@9226 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 20:31:23 +00:00
jvanverth@google.com
f6a90332ae Add msaa configs to bench_pictures.
Enables msaa4 and msaa16 configs in bench_pictures and render_pictures (and
anything else that may use PictureRenderer).

Review URL: https://codereview.chromium.org/14544007/


git-svn-id: http://skia.googlecode.com/svn/trunk@8952 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-02 12:39:37 +00:00
commit-bot@chromium.org
ae403b9496 Simplify bench pictures render target creation.
Author: bsalomon@google.com

Reviewed By: robertphillips@google.com

Review URL: https://chromiumcodereview.appspot.com/13947016

git-svn-id: http://skia.googlecode.com/svn/trunk@8596 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-10 17:27:30 +00:00
robertphillips@google.com
d59cf7c360 Remove reset of SkTileGrid in PictureRenderer::init
https://codereview.appspot.com/7641044/



git-svn-id: http://skia.googlecode.com/svn/trunk@8042 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-08 16:27:19 +00:00
robertphillips@google.com
2c00ba3d72 Revert 7932
git-svn-id: http://skia.googlecode.com/svn/trunk@7938 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-01 21:34:26 +00:00
robertphillips@google.com
f9ce42302b Initialize grid info in TiledPictureRenderer::init
https://codereview.appspot.com/7444053/



git-svn-id: http://skia.googlecode.com/svn/trunk@7932 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-01 20:15:18 +00:00
robertphillips@google.com
6177e6999d Split GrGLContextInfo into GrGLContext & GrGLContextInfo
https://codereview.appspot.com/7436045/



git-svn-id: http://skia.googlecode.com/svn/trunk@7905 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-28 20:16:25 +00:00
junov@chromium.org
29b19e53cf Change SkTileGride geometry calculations to match the Chromium compositor.
This patch changes the semantics of tileWidth/Height to include the border region, and
uses an offset to take into account the fact that there is no outer border for outer
tiles. This patch also fixes a previous bug where the right column and bottom row were
considered to be included in bounds that are expressed as an SkIRect.

Companion Chromium CL required for roll: https://codereview.chromium.org/12221077/

TEST=TileGrid unit test
Review URL: https://codereview.appspot.com/7350050

git-svn-id: http://skia.googlecode.com/svn/trunk@7885 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-27 18:35:16 +00:00
scroggo@google.com
0556ea0ede Add support for using ANGLE in bench_pictures.
BUG=https://code.google.com/p/skia/issues/detail?id=1012

Other cleanups:
Remove setDeviceType from PictureBenchmark, since it is unnecessary.
Dereference PictureRenderer::fGrContext when done with it.
Make PictureRenderer::fGrContext and PictureRenderer::fGrContextFactory private, since they are not used by subclasses.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7677 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-08 19:38:21 +00:00
robertphillips@google.com
fe1b536bb7 Enhance GL error checking for non-Ganesh GL calls
https://codereview.appspot.com/7312057/



git-svn-id: http://skia.googlecode.com/svn/trunk@7647 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-07 19:45:46 +00:00
robertphillips@google.com
8ac811e160 Fixed warning/error in PictureRenderer.cpp
TBR by scroggo@google.com



git-svn-id: http://skia.googlecode.com/svn/trunk@7634 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-07 00:13:34 +00:00
scroggo@google.com
905379a74e In picture rendering tools, draw the entire scaled image.
If --scale is used, limit the size of the image drawn to the
scaled picture size, rather than the original picture size.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7633 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-06 22:32:57 +00:00
scroggo@google.com
08085f808b Change the method for timing individual tiles in bench_pictures.
When timing individual tiles in bench_pictures, keep a timer running
across all repeats, and then take the average. The former method of
timing each iteration separately runs into precision errors on some
platforms.

Running on my Mac Pro with OSX 10.8, the cmsecs for the new method
and the old method are roughly the same when checking the CPU time.
When checking the wall time, the old method often gives me 0ms,
while the new method gives me a larger value. I don't think this
can be entirely attributed to rounding though, since on occasion I
see the old method showing a short time period (.05 - .15ms) while
the new method shows .15ms higher (which is in range for the
difference I'm seeing for other tiles where the old method reports
0ms).

Some other changes:
PictureRenderer::resetState now takes a boolean parameter. If called
with false, it will only do a flush, while if called with true, it
will also call finish.

resetState is now called with true everywhere except in between
iterations of drawing the same tile (when timing individual tiles).

render_pictures_main no longer calls resetState directly, since it
already calls end, which calls resetState.

BUG=http://code.google.com/p/skia/issues/detail?id=1066

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7424 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-28 20:40:24 +00:00
junov@chromium.org
100b1c5e9e Fixing expression logic from r7237/r7234
TBR=borenet

git-svn-id: http://skia.googlecode.com/svn/trunk@7238 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-16 20:12:22 +00:00
robertphillips@google.com
914a2f2823 Compiler warning fixes for r7235
git-svn-id: http://skia.googlecode.com/svn/trunk@7237 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-16 19:57:02 +00:00
junov@chromium.org
20bd04e365 Turn on the kUsePathBoundsForClip_RecordingFlag in bench, gm and tools that use class PictureRenderer
Chrome uses this flag for recording to skpicture in order to improve performance.
Therefore, skai benchmarks should run with this flag enabled, and we need 
gm and render_pictures test coverage to validate it.  In gm, the vanilla 
SkPicture test step will still run without the flag to ensure that case still gets test
coverage, while the SkPicture test steps that use rtree and tileGrid will now run with
the flag enabled.
Review URL: https://codereview.appspot.com/7111043

git-svn-id: http://skia.googlecode.com/svn/trunk@7234 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-16 18:43:36 +00:00
jvanverth@google.com
9c4e5ac5b7 Cleaned up warnings in Windows build.
git-svn-id: http://skia.googlecode.com/svn/trunk@7057 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-07 18:41:28 +00:00
skia.committer@gmail.com
a7d8e3e990 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@6891 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-19 02:01:38 +00:00
edisonn@google.com
84f548cc9d Flags for render_pictures: verify, clone and writeWholeImage:
1) flag to verify PNGs produced by render_picture that produce the same pixels
as simple renderer.
2) flag to write one single image (in tile we write individual tiles) - this
will help running skdiff also
3) flag to clone the picture before rendering

git-svn-id: http://skia.googlecode.com/svn/trunk@6890 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-18 22:24:03 +00:00
reed@google.com
457d8a77be remove experimental setAsABlur, as it forces the instance to be mutable, and was
not adopted by chrome
Review URL: https://codereview.appspot.com/6939071

git-svn-id: http://skia.googlecode.com/svn/trunk@6879 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-18 18:20:44 +00:00
scroggo@google.com
82ec0b00f3 Allow setting a scaleFactor in bench_pictures (and render_pictures).
In TiledPictureRenderer and CopyTilesRenderer, do a postTranslate so
the translate is not affected by the scale factor.

Likewise, use clipRegion for tiled renderer so it will be
unaffected by the scale factor.

Respect the viewport for record, playbackCreation, and pipe renderers.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@6853 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-17 19:25:54 +00:00
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
junov@chromium.org
3cb834bd27 Modifying SkTileGrid to support arbitrary query rectangles.
Exposing SkTileGrid functionality in the public API through SkTileGridPicture.
This patch also makes TileGrid and Rtree testable in gm, which revealed errors.

TEST=gm with '--tileGrid'
BUG=http://code.google.com/p/chromium/issues/detail?id=164636
Review URL: https://codereview.appspot.com/6933044

git-svn-id: http://skia.googlecode.com/svn/trunk@6783 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-13 16:39:53 +00:00
skia.committer@gmail.com
c7b4be7f11 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@6746 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-11 02:01:20 +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
skia.committer@gmail.com
c3d7d90973 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@6632 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-30 02:01:24 +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
reed@google.com
971aca7557 change SkDrawFilter::filter to return a bool, where false means don't-draw
Review URL: https://codereview.appspot.com/6851111

git-svn-id: http://skia.googlecode.com/svn/trunk@6551 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-26 20:26:54 +00:00
scroggo@google.com
a9e3a369c1 Add an option to render_pictures to rerecord the pictures with PNG encoded bitmaps.
Review URL: https://codereview.appspot.com/6821092

git-svn-id: http://skia.googlecode.com/svn/trunk@6332 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-07 17:52:48 +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
djsollen@google.com
fd9720cfec Fix the PictureRecord step of BenchPictures.
Review URL: https://codereview.appspot.com/6820100

git-svn-id: http://skia.googlecode.com/svn/trunk@6311 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-06 16:54:40 +00:00
scroggo@google.com
0a049b861e Make bench_pictures output a meaningful config name.
Review URL: https://codereview.appspot.com/6813074

git-svn-id: http://skia.googlecode.com/svn/trunk@6288 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-02 22:01:26 +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
borenet@google.com
070d354d51 Make output path to render_pictures optional
Review URL: https://codereview.appspot.com/6779049

git-svn-id: http://skia.googlecode.com/svn/trunk@6136 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-26 13:26:55 +00:00
scroggo@google.com
b8e404aebe Fix a warning.
Review URL: https://codereview.appspot.com/6650048

git-svn-id: http://skia.googlecode.com/svn/trunk@5902 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-11 19:10:33 +00:00
scroggo@google.com
b6e806bf17 Allow render_pictures to render using multiple threads.
Make write() a static function so it can be used by the
thread entry functions.

Add a helper function to append a number to a string and
call write to share code.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5789 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-03 17:32:33 +00:00
scroggo@google.com
b4773b4802 Fix some bugs in our picture tools.
When doing tiled rendering in multiple threads, clone fPicture,
rather than the blank fPictureClones. Also fix a precedence
problem so we get the correct rectangle.

In render_pictures_main, call PictureRenderer::setup().

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5758 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-01 20:06:09 +00:00
scroggo@google.com
81f9d2e05b In render_pictures tiled rendering, draw a separate PNG for each tile.
Since the passed in picture may represent an image which is too large
to be represented on the GPU, never create such a large canvas. Instead,
after drawing to each tile, create a file showing just that tile.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5603 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-20 14:54:21 +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
scroggo@google.com
acfb30e5bb Reuse one canvas for every tile in bench_pictures (in single threaded mode).
Turn off multi threaded option for now.

In bench_pictures, do not create a large canvas, since we never use it.

Remove unused functions on TiledPictureRenderer.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5583 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 14:32:35 +00:00
rileya@google.com
a04dc02b11 Fix ordering of initializer list to fix compiler complaints.
git-svn-id: http://skia.googlecode.com/svn/trunk@5472 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-10 19:01:38 +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
robertphillips@google.com
94acc70312 Fixed Windows compiler complaints (esp. in debugger)
https://codereview.appspot.com/6497090/



git-svn-id: http://skia.googlecode.com/svn/trunk@5419 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-06 18:43:21 +00:00
scroggo@google.com
6bc8cf8f64 Fix windows build of tools.
Review URL: https://codereview.appspot.com/6494068

git-svn-id: http://skia.googlecode.com/svn/trunk@5374 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-31 18:34:09 +00:00
scroggo@google.com
8e073ba2d6 Rename my DeferredPipeController to not conflict with the other.
Fixes build.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5372 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-31 16:25:46 +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
rileya@google.com
b947b91794 Fix uninitialized values in bench_pictures' tiled renderer.
Review URL: https://codereview.appspot.com/6506049

git-svn-id: http://skia.googlecode.com/svn/trunk@5333 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-29 17:35:07 +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
ea82695325 Changed how tiles are copied to the master canvas.
This is in preparation for adding the powers of two mode.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5254 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 15:24:13 +00:00
keyar@chromium.org
9299eded38 Images are written by PictureRenderer and not render_pictures_main.
Review URL: https://codereview.appspot.com/6448174

git-svn-id: http://skia.googlecode.com/svn/trunk@5216 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-21 19:05:08 +00:00
keyar@chromium.org
da652c2ad5 Removed the TileInfo struct used in TiledPictureRenderer.
Review URL: https://codereview.appspot.com/6443153

git-svn-id: http://skia.googlecode.com/svn/trunk@5206 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 22:04:07 +00:00
keyar@chromium.org
b3fb7c1f46 Added copyright notice to PictureRenderer.cpp
Review URL: https://codereview.appspot.com/6453156

git-svn-id: http://skia.googlecode.com/svn/trunk@5203 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 21:02:49 +00:00
keyar@chromium.org
28136b308f flush() and glFinish() are now in the timed area of rendering.
git-svn-id: http://skia.googlecode.com/svn/trunk@5187 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:04:15 +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
bffacc01d6 Added some assertions.
git-svn-id: http://skia.googlecode.com/svn/trunk@5184 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:04:07 +00:00
keyar@chromium.org
6cb110b8f5 Remove fBitmap delete. Tile bitmaps are no longer kept around.
git-svn-id: http://skia.googlecode.com/svn/trunk@5182 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:04:02 +00:00
keyar@chromium.org
275be533fa The tiles are properly reset.
git-svn-id: http://skia.googlecode.com/svn/trunk@5181 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:04:00 +00:00
keyar@chromium.org
a474ce3c0b TiledPictureRenderer now has tiles accelerated when appropiate.
git-svn-id: http://skia.googlecode.com/svn/trunk@5180 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:03:57 +00:00
keyar@chromium.org
77a5522d0e State reset and gpu timers added.
git-svn-id: http://skia.googlecode.com/svn/trunk@5177 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 15:03:47 +00:00