Commit Graph

721 Commits

Author SHA1 Message Date
commit-bot@chromium.org
c25d2219cb Add four_byte_interp benches.
Desktop:
running bench [640 480] four_byte_interp_slow_256    NONRENDERING: cmsecs =      6.18
running bench [640 480] four_byte_interp_slow_255    NONRENDERING: cmsecs =      6.83
running bench [640 480] four_byte_interp_fast_256    NONRENDERING: cmsecs =      5.02
running bench [640 480] four_byte_interp_fast_255    NONRENDERING: cmsecs =      5.88

N5:
running bench [640 480] four_byte_interp_slow_256    NONRENDERING: cmsecs =     22.84
running bench [640 480] four_byte_interp_slow_255    NONRENDERING: cmsecs =     25.11
running bench [640 480] four_byte_interp_fast_256    NONRENDERING: cmsecs =     18.89
running bench [640 480] four_byte_interp_fast_255    NONRENDERING: cmsecs =     22.32

BUG=
R=reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12444 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 22:32:47 +00:00
commit-bot@chromium.org
4b413c8bb1 remove SkFloatToScalar macro
BUG=
R=reed@google.com, djsollen@google.com

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12385 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 19:44:07 +00:00
robertphillips@google.com
a4662865e3 More Windows 64b compilation warning fixes
https://codereview.chromium.org/47513017/



git-svn-id: http://skia.googlecode.com/svn/trunk@12337 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-21 14:24:16 +00:00
commit-bot@chromium.org
644629c1c7 Implement a benchmark for GrResourceCache
Adds "grresourcecache_add" and "grresourcecache_find" bench tests to test
GrResourceCache::add and GrResourceCache::find. The tests work only
with GPU backends, since GrResourceCache needs an GrGpu.

Modifies bench tests to override SkBenchmark::isSuitableFor(Backend)
function that specifies what kind of backend the test is inteded
for. This replaces the previous "fIsRendering" flag that would
indicate test that did no rendering.

Adds SkCanvas::getGrContext() call to get the GrContext that the
canvas ends up drawing to. The member function solves a common
use-case that is also used in the benchmark added here.

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

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12334 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-21 06:21:58 +00:00
robertphillips@google.com
8c99c9f4a6 Reverting r12315 (More Windows 64b compilation warning fixes) due to compilation failures
git-svn-id: http://skia.googlecode.com/svn/trunk@12316 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-20 15:56:14 +00:00
robertphillips@google.com
80051d38a3 More Windows 64b compilation warning fixes
https://codereview.chromium.org/47513017/



git-svn-id: http://skia.googlecode.com/svn/trunk@12315 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-20 15:46:10 +00:00
djsollen@google.com
db490e9971 fix bench so that if SK_SUPPORTS_GPU even when not provided as compiler option
In the case that SK_SUPPORTS_GPU is not provided to the compiler the value is
eithe defined in in the SkUserConfig.h or SkPostConfig.h.  Prior to this change
those headers were not read prior to trying to include the GPU headers which
resulted in a failed compile.

R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12309 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-20 13:15:40 +00:00
commit-bot@chromium.org
a1a097ee81 increase coverage of SkPath.cpp, remove unused code
Using Mike Klein's excellent coverage tool, increase the
unit testing of SkPath.cpp from 70% to 95%.

Along the way, determined that these functions were not
maintained or used:

SkPath::pathTo
SkPath::contains

as well as a large block of SkPath::cheapGetDirection().

Changed SkPath::validate() to permit infinities in
the path data points.

Fixed errors in preserving direction.
Fixed error setting direction when convexity is unknown.

Added missing conic to moveTo only detector.

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

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12291 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-14 16:53:22 +00:00
jvanverth@google.com
21ca4339a6 Rebaseline bench expectations for tabl_theverge.skp_tile_256x256_grid.
git-svn-id: http://skia.googlecode.com/svn/trunk@12257 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-12 20:58:41 +00:00
scroggo@google.com
f4dcea6020 Make bench_compare executable.
(SkipBuildbotRuns)

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12243 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-12 15:25:31 +00:00
jvanverth@google.com
62454a6603 Update bench expectations.
git-svn-id: http://skia.googlecode.com/svn/trunk@12213 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-11 14:36:54 +00:00
robertphillips@google.com
6c1e49af8d Removed deprecated API calls that have crept in
git-svn-id: http://skia.googlecode.com/svn/trunk@12210 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-10 15:08:45 +00:00
senorblanco@chromium.org
27eec46d69 SSE2 implementation of RGBA box blurs. This yields ~2X perf improvement on Xeon ES-2690.
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12204 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 20:49:04 +00:00
commit-bot@chromium.org
11e5b972a9 Add sk_float_rsqrt with SSE + NEON fast paths.
Current numbers:

N4:
running bench [640 480]      math_fastIsqrt    NONRENDERING: cmsecs =      3.12
running bench [640 480]      math_slowIsqrt    NONRENDERING: cmsecs =      4.82
running bench [640 480] math_sk_float_rsqrt    NONRENDERING: cmsecs =      1.99

Desktop:
running bench [640 480]      math_fastIsqrt    NONRENDERING: cmsecs =      0.89
running bench [640 480]      math_slowIsqrt    NONRENDERING: cmsecs =      0.94
running bench [640 480] math_sk_float_rsqrt    NONRENDERING: cmsecs =      0.09

Haven't found any other benches where this is a significant effect yet.

BUG=
R=reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12203 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 20:14:16 +00:00
skia.committer@gmail.com
ab7442c8d7 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12186 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 07:01:56 +00:00
reed@google.com
126f7f5244 Revert "Revert "speed up A8 by creating a new entry-point in SkDraw that blits the path's coverage directly into an A8 target, regardless of the previous pixel values.""
This reverts commit 3c77887b3eb2d32ab668ab4e5f2f9e79103956e8.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12167 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-07 16:06:53 +00:00
scroggo@google.com
8610d2cdbd Fixes for blurroundrect gm/bench.
Simplify naming/various cases.
Have an atlas of gms, rather than several different images.
In the bench, pull non rendering out of the loop.
Use meaningful enums instead of integers where appropriate.
Add comments.

Addresses comments in https://codereview.chromium.org/52793005/

R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12144 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 21:10:58 +00:00
scroggo@google.com
ec1a96c317 Another int to scalar fix.
git-svn-id: http://skia.googlecode.com/svn/trunk@12138 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 17:27:01 +00:00
scroggo@google.com
99e113beb2 And fix the similar bench.
git-svn-id: http://skia.googlecode.com/svn/trunk@12136 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 16:40:15 +00:00
scroggo@google.com
7b05659072 Add gms and benchmarks for drawing blurry round rects.
Further changes (https://codereview.chromium.org/48623006) will change
the speed at which the bench draws and the drawing of the gm (the gm
change is small).

One of these round rects causes slow drawing in a webpage that we have
observed.

BUG=https://b.corp.google.com/issue?id=11174385

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12133 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 15:57:21 +00:00
reed@google.com
84e922bfb3 Revert "speed up A8 by creating a new entry-point in SkDraw that blits the path's coverage directly into an A8 target, regardless of the previous pixel values."
This reverts commit d615e839b71f75df895de6850b774a9e1c28ad2a.

Revert "must initialize SkDraw.fClip"

This reverts commit 108e46d29b5f57927fc8b8c403bb52019d8cb16d.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12122 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 20:57:36 +00:00
reed@google.com
6bf614fc23 must initialize SkDraw.fClip
git-svn-id: http://skia.googlecode.com/svn/trunk@12120 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 20:31:40 +00:00
reed@google.com
ac9d306a92 speed up A8 by creating a new entry-point in SkDraw that blits the path's coverage directly into an A8 target, regardless of the previous pixel values.
R=bsalomon@google.com, mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12118 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 20:10:33 +00:00
reed@google.com
2bd8b81005 move SkImage::ColorType into SkColorType
objective -- move clients over to SkImage

tasks
- use SkImageInfo instead of SkBitmap::Config
- add support for colortables to SkImage
- add drawImage to SkCanvas
- return SkImage from readPixels

This CL works towards the first task

R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12077 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 13:46:54 +00:00
reed@google.com
4469938e92 Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning""
This reverts commit 1e787c38fa71f2a21fd728f1b1d620b9b09b0d3d.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12057 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 17:28:30 +00:00
reed@google.com
6fcbfcead5 Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"
This reverts commit 1d22c4aaf9d8f053f25194a1ed74b137bfb19497.

git-svn-id: http://skia.googlecode.com/svn/trunk@12056 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 16:31:11 +00:00
reed@google.com
081560e3ab add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning
BUG=
R=robertphillips@google.com, senorblanco@chromium.org, vandebo@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12055 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 16:24:08 +00:00
skia.committer@gmail.com
70402c3168 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11992 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 07:01:50 +00:00
robertphillips@google.com
26e30c5223 Cleanup displacement bench
https://codereview.chromium.org/47553005/



git-svn-id: http://skia.googlecode.com/svn/trunk@11982 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-28 18:07:44 +00:00
commit-bot@chromium.org
4b7d673089 More clang warning fixes.
Mostly unused functions and variables removed.

BUG=None
TEST=ninja -C out/Debug most
     ninja -C out/Release most

R=bsalomon@google.com, caryclark@google.com, robertphillips@google.com

Author: tfarina@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11884 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 16:41:00 +00:00
reed@google.com
383a697692 store SkAlphaType inside SkBitmap, on road to support unpremul
BUG=
R=bsalomon@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11877 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 14:00:07 +00:00
commit-bot@chromium.org
34150b451d Clear out SK_SCALAR_IS_FLOAT from SkRadialGradient, and merge the logic for radial_mirror and radial_repeat.
New radial/repeated bench is 10-20x faster now using float instead of fixed; the rest are unaffected.

BUG=
R=reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11824 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 18:59:44 +00:00
robertphillips@google.com
e9cd27d4a3 Third wave of Win64 warning cleanup
https://codereview.chromium.org/27487003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11817 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 17:48:11 +00:00
robertphillips@google.com
8b169311b5 Second wave of Win64 warning cleanup
https://codereview.chromium.org/27343002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11778 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 17:47:36 +00:00
bensong@google.com
0d9e6defbc Changes bench to output with git hash filename; cleans up bench_graph_svg to only handle bench alerts; renames it to check_bench_regressions.
Review URL: https://codereview.chromium.org/26592010

git-svn-id: http://skia.googlecode.com/svn/trunk@11765 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 00:08:14 +00:00
commit-bot@chromium.org
2887119a63 save/restore the canvas around every bench draw call
BUG=

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

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11755 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 15:28:01 +00:00
commit-bot@chromium.org
1108fc3058 Remove SkLumaXfermode.
Possibly the shortest-lived Skia feature, SkLumaXfermode is now replaced
by a color filter implementation (SkLumaColorFilter). All known existing
clients (Blink) have been converted.

R=reed@google.com

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11750 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 13:11:11 +00:00
bungeman@google.com
fab44db294 Clean up SkTypes.h.
This change removes sk_stdint.h since it is only needed for vs2008 and earlier.
This change removes SK_MMAP_SUPPORT define since it is no longer used.
This change removes the stdio.h include from SkTypes.h since on many systems
this is a very large header, few Skia files actually use it, it is
available everywhere standard, and SkDebugf should be used instead.

After this change there is no need for external users to put Skia's
include/config into their own list of includes, saving the headache
of having two header files of the same name and sometimes getting the
wrong one depending on include order.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11738 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 18:50:45 +00:00
commit-bot@chromium.org
f8a6b20e76 save/restore the canvas around every bench draw call
BUG=
R=djsollen@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11728 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 15:20:29 +00:00
mtklein@google.com
c95e1e5d8f Temporarily disable FilterBitmapBenches while I fix it.
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11718 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 21:27:17 +00:00
djsollen@google.com
dcfed6cecf fix warnings when running a no gpu build
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11710 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 18:48:27 +00:00
djsollen@google.com
4e1d4b3d23 fix mac10.6 build
Review URL: https://codereview.chromium.org/26882003

git-svn-id: http://skia.googlecode.com/svn/trunk@11708 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 17:50:52 +00:00
djsollen@google.com
a05bbfeaa6 rebaseline nexus7 perf improvement
Review URL: https://codereview.chromium.org/26884002

git-svn-id: http://skia.googlecode.com/svn/trunk@11707 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 17:42:20 +00:00
djsollen@google.com
70de4da331 Insert swapbuffers into GPU benchmarks.
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11704 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 17:33:39 +00:00
commit-bot@chromium.org
96b128b760 rebaseline bench expectations
R=borenet@google.com, bsalomon@google.com

Author: djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11696 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 15:23:00 +00:00
reed@google.com
0a6151d66c Revert "Revert "change SkColorTable to be immutable""
This reverts commit b8162cb840f4cb6002ef68d5ac775c6a122c52a9.

Fixed was call-sites in benches that used the (now gone) setIsOpaque api.

R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11695 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 14:44:56 +00:00
commit-bot@chromium.org
aadb4d9a53 flush after every print in windows
R=djsollen@google.com, reed@google.com, epoger@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11670 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 15:09:42 +00:00
commit-bot@chromium.org
6c1ee2d4e7 Luminance-to-alpha color filter (SkLumaColorFilter).
Adding a color filter luma implementation. The plan is to convert
existing clients and then deprecate SkLumaXfermode.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11636 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 18:00:17 +00:00
commit-bot@chromium.org
b120bd986e Make all gradient benchs use the same repeat count.
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11634 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 17:18:21 +00:00
djsollen@google.com
7bf488401c Rebaseline test due to improvements in r11577
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11632 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 16:48:08 +00:00
skia.committer@gmail.com
d34f05806f Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11625 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-05 07:01:34 +00:00
commit-bot@chromium.org
86490573b5 commit to xfermode objects being immutable
BUG=
R=djsollen@google.com, mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11614 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 16:52:55 +00:00
scroggo@google.com
8d2392487c Add an option on SkImageDecoder to skip writing 0s.
Only implemented for PNG.

Add a getter and setter, and sets the default to false in the
constructor. Also copies the setting in copyFieldsToOther.

Fix an indpendent bug where fDitherImage was not being copied in
copyFieldsToOther.

In SkScaledBitmapSampler::begin, consolidate the settings passed in
by passing a const reference to the decoder. The decoder can be
referenced for its settings of dither, unpremultiplied, and now
skipping writing zeroes. Update callers to use the new API. In png
decoder, rather than passing around a pointer to an initial
read of getDitherImage, and potentially changing it, look at the
field on the decoder itself, and modify it directly. This is a
change in behavior - now if that same decoder is used to decode
a different image, the dither setting has changed. I think this is
okay because A) the typical use case is to use a new decoder for
each decode, B) we do not make any promises that a decode does not
change the decoder and C) it makes the code in SkScaledBitmapSampler
much cleaner.

In SkScaledBitmapScampler, add new row procs for skipping zeroes. Now
that choosing the row proc has five dimensions (src config, dst config,
dither, skip writing zeroes, unpremultiplied), use a new method: each
src/dst combination has a function for choosing the right proc depending
on the decoder.

SkScaledBitmapScampler::RowProc is now public for convenience.

Remove Sample_Gray_D8888_Unpremul, which is effectively no different
from Sample_Gray_D8888.

In cases where unpremultiplied was trivial, such as 565 and when
sampling from gray, decoding may now succeed.

Add a benchmark (currently disabled) for comparing the speed of skipping
writing zeroes versus not skipping. For this particular image, which is
mostly transparent pixels, normal decoding took about 3.6 milliseconds,
while skipping zeroes in the decode took only about 2.5 milliseconds
(this is on a Nexus 4). Presumably it would be slower on an image
with a small amount of transparency, but there will be no slowdown
for an image which reports that it has no transparency.

In SkImageRef_ashmem, always skip writing zeroes, since ashmem
memory is guaranteed to be initialized to 0.

Add a flag to skip writing zeroes in skimage.

Add a regression test for choosing the rowproc to ensure I did not
change any behavior accidentally.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11558 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 17:27:15 +00:00
commit-bot@chromium.org
3400f4b00a Add 3 color variant to gradient bench, include scale in name, add more benchs
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11536 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-30 19:41:09 +00:00
mtklein@google.com
9cb5177619 Fix asan build. Duh, don't return a stack address...
BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11497 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-27 13:39:14 +00:00
commit-bot@chromium.org
97b4b67ee7 Remove uses of unnamed namespace in bench/ directory.
Skia prefers to use static over unnamed namespace.

BUG=None
TEST=None, no functional changes.
R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11483 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 19:23:03 +00:00
commit-bot@chromium.org
2c86fbb0b1 Add SkDivMod with a special case for ARM.
BUG=skia:1663
R=djsollen@google.com, tomhudson@google.com, reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11482 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 19:22:54 +00:00
scroggo@google.com
b90a2cacfe Fix a warning.
git-svn-id: http://skia.googlecode.com/svn/trunk@11462 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-25 22:01:17 +00:00
scroggo@google.com
111fd11e11 Bench baseline for mostly 0 image.
Add a baseline for decoding a mostly 0 image. This is in advance of
https://codereview.chromium.org/24269006/ which provides an option to
skip writing those 0s (as part of BUG=skia:1661). On my Nexus 4, the
benchmark does not slow down after that change.

As suggested in https://codereview.chromium.org/24269006/ add a
resourcePath flag to bench. Will require a change in buildbot in order
to actually use the flag.

Add an image used by the test.

Until https://codereview.chromium.org/24448002 is submitted,
the test will not actually be run by the bots (since it
won't know where to find the file).

BUG=skia:1661
R=djsollen@google.com, mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11461 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-25 21:42:12 +00:00
bensong@google.com
7d9a21bb36 Deletes bench_expectations.txt and change comments to refer to the new per-bot expectation files.
Review URL: https://codereview.chromium.org/23830009

git-svn-id: http://skia.googlecode.com/svn/trunk@11456 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-25 20:51:16 +00:00
reed@google.com
d28ba8010c promote SkImage::AlphaType to SkAlphaType
BUG=
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11421 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 19:33:52 +00:00
mtklein@google.com
519f9677a4 Add sk_calloc. Remove SkMemory_stdlib, which seems unused.
I'm seeing basically no difference between malloc + bzero and calloc on my desktop, but on a Galaxy Nexus calloc is never slower, and significantly faster once the allocation size becomes large, both for allocation and for _reading_.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11414 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 14:31:45 +00:00
mtklein@google.com
b352627436 1) Don't allocate 100,000 ints when we only need 1,000.
2) Don't sort past the end of the array when using SkTQSort.
3) Don't allocate any arrays until we need them (in onDraw).

Also, propagate the constant N everywhere through the bench.

BUG=
R=bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11329 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 19:37:34 +00:00
mtklein@google.com
93d2f559b8 also limit loops-per-canvas in picture_record_dictionaries, which has the same problem as unique_paint
BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11327 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 18:58:53 +00:00
bensong@google.com
1dd9194fc2 Splits bench_expectations into per-bot files in preparation for growth.
Next steps are switching bots to using per-bot expectations, and deleting the existing bench_expectations.txt.
Review URL: https://codereview.chromium.org/24075008

git-svn-id: http://skia.googlecode.com/svn/trunk@11323 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 17:21:02 +00:00
mtklein@google.com
5e5239ed35 switch to a new canvas every once in a while in picture_record_unique
BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11321 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 17:14:25 +00:00
fmalita@google.com
ef45a646a7 [External patch] Source-over support for SkLumaXfermode.
This is a patch by Andrei Parvu <parvu@adobe.com> (Adobe CLA signer).

Original CL/review: https://codereview.chromium.org/24078006/

GM:lumamode will need rebaselining after landing this.

---

  In order to use CSS luminance masking, we need to be able to create an
  instance of SkLumaXfermode which can receive a kSrcOver mode, and applies
  that mode after converting the source using the luminance-to-alpha
  coefficients.

BUG=289420
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11312 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 13:09:16 +00:00
skia.committer@gmail.com
a604c4f971 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11309 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 07:01:20 +00:00
borenet@google.com
4e061d3f15 Allow use of "--config defaults" in bench, like GM
R=mtklein@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11298 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 19:12:19 +00:00
robertphillips@google.com
24ddde9758 Revert 11247, 11250, 11251, 11257, and 11279 to unblock DEPS roll (https://codereview.chromium.org/24159002/)
11279 Sanitizing source files in Housekeeper-Nightly - https://code.google.com/p/skia/source/detail?r=11279
11257 Canary build fix - https://codereview.chromium.org/23532068
11251 More warnings as errors fixes - https://code.google.com/p/skia/source/detail?r=11251
11250 Warnings as errors fix - https://code.google.com/p/skia/source/detail?r=11250
11247 Initial error handling code - https://chromiumcodereview.appspot.com/23021015



git-svn-id: http://skia.googlecode.com/svn/trunk@11288 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 14:04:05 +00:00
robertphillips@google.com
ba6e954140 Revert the revert of 11247, 11250, 11251 and 11279 (Chrome already relies on changes in r11247)
git-svn-id: http://skia.googlecode.com/svn/trunk@11287 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 13:40:12 +00:00
robertphillips@google.com
478884f7d3 Revert 11247, 11250, 11251 and 11279 to unblock DEPS roll (https://codereview.chromium.org/24159002/)
11279 Sanitizing source files in Housekeeper-Nightly - https://code.google.com/p/skia/source/detail?r=11279
11251 More warnings as errors fixes - https://code.google.com/p/skia/source/detail?r=11251
11250 Warnings as errors fix - https://code.google.com/p/skia/source/detail?r=11250
11247 Initial error handling code - https://chromiumcodereview.appspot.com/23021015



git-svn-id: http://skia.googlecode.com/svn/trunk@11285 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 13:19:11 +00:00
skia.committer@gmail.com
dc9888c409 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11279 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-14 07:01:34 +00:00
mtklein@google.com
9ef1d21dc8 OK windows, please take my infinity.
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11272 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 20:39:50 +00:00
mtklein@google.com
dbd41c8857 It looks like we're not always running long enough to give the GPU counters time to converge (and possibly the same for CPU too, but GPU is definitely worse off).
This CL changes our convergence logic from
  - did the last run take more than x milliseconds?
to
  - did the last run take more x milliseconds and are the last two runs within y% of each other?

There's also now an upper limit where we bail out with an error if we haven't yet met the convergence criteria.  Keeping the lower bound is important for benches where the constant overhead is much larger than the work done in the loop; without it we'll see T(1 loop) == T(2 loops) and converge way too early.

This CL also exposed that DeferredCanvasBench had a bug: it was running N^2 loops when we told it to run N.  (My fault.)

I threw in a couple other linty changes that I'd be happy to split off.

BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11267 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 20:11:09 +00:00
mtklein@google.com
410e6e80f0 Refactoring: get rid of the SkBenchmark void* parameter.
While I was doing massive sed-ing, I also converted every bench to use DEF_BENCH instead of registering the ugly manual way.

BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11263 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 19:52:27 +00:00
robertphillips@google.com
96bf2b53f2 N7 Performance trigger rebaselines
git-svn-id: http://skia.googlecode.com/svn/trunk@11256 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 15:42:08 +00:00
mtklein@google.com
b87bf83f48 Add explicit double -> SkScalar conversion to fix werror on Windows.
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11190 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-10 19:51:10 +00:00
mtklein@google.com
78d0379dcc Add missing dependency to unbreak NOGPU build.
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11188 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-10 19:42:07 +00:00
mtklein@google.com
c289743864 Major bench refactoring.
- Use FLAGS_.
   - Remove outer repeat loop.
   - Tune inner loop automatically.

BUG=skia:1590
R=epoger@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11187 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-10 19:23:38 +00:00
borenet@google.com
8ad29cea42 Fix bench logging for --repeat 1
Addressing https://code.google.com/p/skia/issues/detail?id=1607

R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11181 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-10 17:22:43 +00:00
commit-bot@chromium.org
e0e7cfe44b Change old PRG to be SkLCGRandom; change new one to SkRandom
The goal here is to get people to start using the new random number
generator, while leaving the old one in place so we don't have to 
rebaseline GMs.

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

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11169 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 20:09:12 +00:00
skia.committer@gmail.com
b3ec29d2d8 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11143 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-07 07:01:16 +00:00
commit-bot@chromium.org
6485b0be74 Switch out random number generator for tests, benches, samples.
This change makes tests, benches and samples use the new SkMWCRandom PRNG. GMs will be saved for another time, as they'll require rebaselining.

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

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11136 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 19:05:11 +00:00
robertphillips@google.com
b7061176c7 Push sigma-based blur interface into our GMs/benches/tests/samplecode
https://codereview.chromium.org/23701006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11129 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 14:16:12 +00:00
robertphillips@google.com
fd47a121dc Win7 Performance trigger rebaseline
git-svn-id: http://skia.googlecode.com/svn/trunk@11108 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 17:56:42 +00:00
mtklein@google.com
bd6343b1d6 Rewrite SkTRegistry to take any trivially-copyable type.
Obviously these are all currently function pointers of type T(*)(P) for various
T and P.  In bench refactoring, I'm trying to register a function pointer of
type T(*)(), which can't be done as is (passing P=void doesn't work).  This
also lets us register things like primitives, which is conceivable useful.

BUG=
R=reed@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11082 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 17:20:18 +00:00
commit-bot@chromium.org
5b2e2640ed Revise SVD code to remove arctangents.
Also added bench for timing matrix decomposition.

R=reed@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11066 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-03 19:08:14 +00:00
robertphillips@google.com
87d949938a Nexus7 Performace trigger baselines
git-svn-id: http://skia.googlecode.com/svn/trunk@11050 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-01 11:23:31 +00:00
skia.committer@gmail.com
e0c170f7bb Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11049 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-31 07:01:28 +00:00
sglez@google.com
0d60db6010 Add missing .outs
Review URL: https://codereview.chromium.org/23567005

git-svn-id: http://skia.googlecode.com/svn/trunk@11042 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-30 18:54:54 +00:00
sglez@google.com
3e3cdadefd Fix rtree bench
R=caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11041 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-30 18:38:53 +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
73672254a3 Patch for 10995
git-svn-id: http://skia.googlecode.com/svn/trunk@10997 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-29 12:40:26 +00:00
robertphillips@google.com
1f2f338e23 Split SkDevice into SkBaseDevice and SkBitmapDevice
https://codereview.chromium.org/22978012/



git-svn-id: http://skia.googlecode.com/svn/trunk@10995 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-29 11:54:56 +00:00
commit-bot@chromium.org
515dcd3603 Replace uses of GR_DEBUG by SK_DEBUG.
BUG=None
R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10978 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-28 14:17:03 +00:00
robertphillips@google.com
d162092bb4 Performance trigger rebaselines of theverge on Nexus7 for r10936 (Blur refactoring)
git-svn-id: http://skia.googlecode.com/svn/trunk@10975 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-28 12:37:31 +00:00
shawnsingh@chromium.org
63bf68df05 Add performance benchmark before landing perf improvements that remove sk_bezero in SkMatrix44
BUG=skia:1558
R=jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10967 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-28 05:07:26 +00:00
robertphillips@google.com
7ce661d19c Blur refactoring
https://codereview.chromium.org/21835004/



git-svn-id: http://skia.googlecode.com/svn/trunk@10936 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-27 16:14:03 +00:00
robertphillips@google.com
d3707a7559 Performance trigger rebaselines
git-svn-id: http://skia.googlecode.com/svn/trunk@10890 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-23 14:17:16 +00:00