Commit Graph

315 Commits

Author SHA1 Message Date
scroggo@google.com
bb281f7f96 Improvements/additions to SkImageCache/SkLazyPixelRef.
SkPurgeableImageCache:
New image cache that uses virtual memory to store the pixels. Combines
features of SkAshmemImageCache (which has been removed) with SkPurgeableMemoryBlock, which has android and Mac versions.

SkImageCache:
Modified the API. pinCache now returns a status out parameter which
states whether the pinned memory retained the old data. This allows
allocAndPinCache to only be used for allocations.
Add a new debug only interface to purge unpinned data.
Updates to documentation, clarifying behavior.
Changed CachedStatus to MemoryStatus

SkLruImageCache:
Implement the new function purgeAllUnpinnedCaches and change implementation
of pinCache for the new behavior.

SkLazyPixelRef:
Rewrite onLockPixels to account for the new behavior of pinCache.

BitmapFactoryTest:
Test the new SkPurgeableImageCache.
Write tests which directly test the SkImageCaches.
Create a larger bitmap, since some of the SkImageCaches are designed
to handle large bitmaps.

bench_ and render_pictures:
Consolidate lazy_decode_bitmap into one function.
Allow using a flag to specify using the purgeable image cache.
Clean up some #includes.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8207 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-18 21:37:39 +00:00
borenet@google.com
a74302d628 Use "svn cat" in tools/submit_try
(SkipBuildbotRuns)
Review URL: https://codereview.chromium.org/12726006

git-svn-id: http://skia.googlecode.com/svn/trunk@8197 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-18 18:18:26 +00:00
robertphillips@google.com
9105ad0f85 Add translate & scale optimizations
https://codereview.appspot.com/7571045/



git-svn-id: http://skia.googlecode.com/svn/trunk@8182 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-17 18:46:16 +00:00
robertphillips@google.com
91217d0b0c Making SkDrawCommand more robust
https://codereview.appspot.com/7486052/



git-svn-id: http://skia.googlecode.com/svn/trunk@8181 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-17 18:33:46 +00:00
skia.committer@gmail.com
03682beb8c Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@8143 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-14 07:02:51 +00:00
junov@chromium.org
d34fda187c Build fix: accessing uninitialized class member (not)
TBR=sugoi

git-svn-id: http://skia.googlecode.com/svn/trunk@8135 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-13 19:03:26 +00:00
junov@chromium.org
e286e84a6a Modifying the behavior of render_pictures --validate to test the effect of bbh.
The new behavior consists in using the same renderer, with bbh disabled, as a reference
renderer when the current renderer has a bbh.
Review URL: https://codereview.chromium.org/12801002

git-svn-id: http://skia.googlecode.com/svn/trunk@8132 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-13 17:27:16 +00:00
junov@chromium.org
c19c19111c Fixing crash in render_pictures when failing to create referenceBitmap for --validate
Review URL: https://codereview.chromium.org/12800002

git-svn-id: http://skia.googlecode.com/svn/trunk@8119 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-12 19:56:49 +00:00
robertphillips@google.com
febc0ec41b Add misc. optimizations to filter tool
https://codereview.appspot.com/7705043/



git-svn-id: http://skia.googlecode.com/svn/trunk@8087 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-11 22:53:11 +00:00
borenet@google.com
fe7533eebe Change submit_try to use checked-in master_host and master_port
(SkipBuildbotRuns)
Review URL: https://codereview.appspot.com/7719044

git-svn-id: http://skia.googlecode.com/svn/trunk@8072 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-11 20:09:40 +00:00
skia.committer@gmail.com
eed625df23 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@8059 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-09 07:01:15 +00:00
borenet@google.com
2d137b6f8a Fix Windows build - revert r8056 and r8057
TBR=epoger,edisonn
Review URL: https://codereview.chromium.org/12421010

git-svn-id: http://skia.googlecode.com/svn/trunk@8058 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-08 23:13:33 +00:00
edisonn@google.com
184487c808 Collect minidump and print callstack if an app chrashes.
Review URL: https://codereview.chromium.org/12387018

git-svn-id: http://skia.googlecode.com/svn/trunk@8044 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-08 18:00:16 +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
borenet@google.com
b8f0de176f Fix bench_pictures.cfg
- Add configs for Razr I
- Don't run multithreaded with --timeIndividualTiles
Review URL: https://codereview.chromium.org/12636002

git-svn-id: http://skia.googlecode.com/svn/trunk@8027 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-07 20:18:27 +00:00
skia.committer@gmail.com
075b089b1b Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@7976 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-05 07:09:08 +00:00
scroggo@google.com
a560d00ba5 Provide an option in bench_pictures to count pixel ram.
In SkLruImageCache, provide an option to keep all pixels, and document
the new behavior.

In gm/factory.cpp, set the budget for the Lru image cache to 1, to
retain (basically) the old behavior.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7972 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-04 21:32:32 +00:00
commit-bot@chromium.org
31ea3394a0 Convert skhello tool to SkFlags API.
BUG=https://code.google.com/p/skia/issues/detail?id=1094
R=scroggo@google.com

Signed-off-by: Thiago Farina <tfarina@chromium.org>


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

git-svn-id: http://skia.googlecode.com/svn/trunk@7968 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-04 20:58:01 +00:00
scroggo@google.com
cc690201d2 Add a way to monitor cache hits and misses for deferred decoding.
Adds a new flag to bench_pictures in order to do this. Also fix
a warning.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7965 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-04 19:56:21 +00:00
scroggo@google.com
161e1ba4c0 Created my own flag parser, based off of gflags.
Share common code between bench_ and render_ to set up the PictureRenderer.
Fix an include error in SkPictureRenderer.h.
Simplified parameter passing in render_pictures_main.
Switch to using an SkAutoTUnref for the PictureRenderer.
I also changed the input format somewhat, so the buildbots need to be updated as well: https://codereview.appspot.com/7441044/
Fixed a bug in PictureBenchmark where calling setTimeIndividualTiles(false) sets the member variable to true.
Removed setDeviceType from PictureBenchmark, since only the PictureRenderer needs to know which device type to use.

Some changes to the input format:
'--logPerIter' no longer takes a 1 or 0. Instead, '--logPerIter'
turns it on and '--nologPerIter' turns it off (with off as the
default). (Note that this is for bench_pictures; bench still uses the old format)

Change '--device' to '--config' and 'bitmap' to '8888' to be
the same as gm.

Requires '--r' before inputs (to match gm), though there can be multiple inputs following it.

Changed --enable-deferred-image-decoding (which no one uses but me yet anyway) to --deferImageDecoding, since the former is incompatible with the flag parser.

Changes to behavior:
Show a short error message on failure (rather than the explanation of all
flags).

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7961 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-04 16:41:06 +00:00
robertphillips@google.com
7ae918eec7 Move initialization to PictureRenderer ctor
https://codereview.appspot.com/7435052/



git-svn-id: http://skia.googlecode.com/svn/trunk@7942 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-02 17:45:27 +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
f8d7d27313 Create SkLazyPixelRef which performs lazy decoding.
The new pixel ref behaves similarly to SkImageRef, with some key differences:
It does not depend on the images project.
It requires an SkImageCache, which handles allocation and caching of the pixel
memory.
It takes a function signature for decoding which decodes into already allocated
pixel memory rather than into an SkBitmap.

Add two implementations of SkImageCache: SkLruImageCache and SkAshmemImageCache.

Replace SkSerializationHelpers::DecodeBitmap with SkPicture::InstallPixelRefProc,
and update sites that referenced it.

SkBitmapFactory now sets the pixel ref to a new object of the new
class SkLazyPixelRef, provided it has an SkImageCache for caching.

Provide an option to do lazy decodes in render_pictures and bench_pictures.

SkPicture:
Eliminate the default parameters in the constructor.
If a proc for decoding bitmaps is installed, use it to decode any encoded
data in subpictures.
When parsing deserializing subpictures, check for success.
When serializing subpictures, pass the picture's bitmap encoder to the
subpicture's call to serialize.

Update BitmapFactoryTest to test its new behavior.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7835 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-22 21:38:35 +00:00
borenet@google.com
46dc43da88 Make ANGLE bot run only ANGLE configs in bench_pictures
Review URL: https://codereview.appspot.com/7397043

git-svn-id: http://skia.googlecode.com/svn/trunk@7799 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-20 20:01:23 +00:00
epoger@google.com
bd9669ad27 bench_graph_svg: add r7618 results (NOT per-tile) to self-test source data
Review URL: https://codereview.appspot.com/7305098

git-svn-id: http://skia.googlecode.com/svn/trunk@7760 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-17 08:33:27 +00:00
epoger@google.com
aa6470af8e bench_graph_svg self-test: add non-tile bench data
TBR=benchen
Review URL: https://codereview.appspot.com/7317048

git-svn-id: http://skia.googlecode.com/svn/trunk@7750 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-15 16:42:21 +00:00
epoger@google.com
673816c44f tools/tests/run.sh: download test bench data from Google Storage rather than SVN
Review URL: https://codereview.appspot.com/7343045

git-svn-id: http://skia.googlecode.com/svn/trunk@7749 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-15 15:50:23 +00:00
epoger@google.com
2459a394b8 bench_graph_svg: generate output in consistently sorted order, to make diffs more useful
TBR=benchen
Review URL: https://codereview.appspot.com/7330044

git-svn-id: http://skia.googlecode.com/svn/trunk@7744 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-14 18:58:05 +00:00
epoger@google.com
9316d7a0cc disable new bench_graph_svg test in tools/tests/run.sh that fails on housekeeper
TBR=bensong
Review URL: https://codereview.appspot.com/7303092

git-svn-id: http://skia.googlecode.com/svn/trunk@7739 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-14 15:35:23 +00:00
epoger@google.com
f4eeeabcdc tools/tests/run.sh: add self-test for bench_graph_svg.py
Review URL: https://codereview.appspot.com/7319044

git-svn-id: http://skia.googlecode.com/svn/trunk@7735 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-14 15:10:24 +00:00
skia.committer@gmail.com
3d18d063f0 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@7730 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-14 07:01:34 +00:00
robertphillips@google.com
1780a3cc84 Fix filter optimizations to take the paint's alpha into account
https://codereview.appspot.com/7312083/



git-svn-id: http://skia.googlecode.com/svn/trunk@7711 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-13 13:27:44 +00:00
robertphillips@google.com
e8fe4bc3ef Allow debugger to be compiled without Ganesh
https://codereview.appspot.com/7311084/



git-svn-id: http://skia.googlecode.com/svn/trunk@7710 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-13 13:26:13 +00:00
borenet@google.com
b15e6061c6 Turn off per-iteration tile time reporting
It's overloading the bench graph generator.
Review URL: https://codereview.appspot.com/7300088

git-svn-id: http://skia.googlecode.com/svn/trunk@7691 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-11 18:42:43 +00:00
reed@google.com
01bfd753ec Argv[0] isn't the first argument to anything.
git-svn-id: http://skia.googlecode.com/svn/trunk@7687 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-08 22:45:11 +00:00
humper@google.com
522dbd2e62 match chromium's approach for locating the most appropriate macos SDK to use
By doing this, the ninja generator for gyp works great on macos, resulting in faster (I think) and much, much terser builds.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7684 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-08 21:45:33 +00:00
scroggo@google.com
06d6ac645d Clean up some out of order initialization warnings.
Review URL: https://codereview.appspot.com/7321043

git-svn-id: http://skia.googlecode.com/svn/trunk@7681 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-08 21:16:19 +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
skia.committer@gmail.com
ee235f9062 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@7659 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-08 07:16:45 +00:00
robertphillips@google.com
9b63c50d72 Only turn on one gpu timer in PictureBenchmark tool
https://codereview.appspot.com/7310060/



git-svn-id: http://skia.googlecode.com/svn/trunk@7651 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-07 20:20:27 +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
f9d0c95d8d Temporary patch to BenchPictures gpu timing problem
https://codereview.appspot.com/7311059/



git-svn-id: http://skia.googlecode.com/svn/trunk@7641 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-07 16:21:22 +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
borenet@google.com
2fd0979c2d Turn --timeIndividualTiles back on in bench_pictures
Review URL: https://codereview.appspot.com/7299049

git-svn-id: http://skia.googlecode.com/svn/trunk@7620 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-06 16:27:38 +00:00
skia.committer@gmail.com
ae683921ff Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@7608 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-06 07:01:54 +00:00
robertphillips@google.com
7374355408 Improved compartmentalization of filter tool's optimizations & add new optimization
https://codereview.appspot.com/7294049/



git-svn-id: http://skia.googlecode.com/svn/trunk@7601 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-05 20:51:49 +00:00