Commit Graph

71 Commits

Author SHA1 Message Date
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
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
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
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
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
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
commit-bot@chromium.org
8f4269725b This bench attempts to recreate Chromium's Canvas_putImageData performance test to track down https://code.google.com/p/chromium/issues/detail?id=270649.
Cranking the repitition count up to 500 on a MacPro yields:

WITHOUT 10624:
running bench [640 480]            writepix_rgba_UPM  8888: cmsecs = 748.25   GPU: cmsecs = 225.95 gmsecs = 244.80
running bench [640 480]             writepix_rgba_PM  8888: cmsecs =  54.12   GPU: cmsecs = 225.77 gmsecs = 244.59

WITH 10624:
running bench [640 480]            writepix_rgba_UPM  8888: cmsecs = 747.70   GPU: cmsecs = 230.30 gmsecs = 249.51
running bench [640 480]             writepix_rgba_PM  8888: cmsecs =  55.05   GPU: cmsecs = 230.13 gmsecs = 249.38

R=bsalomon@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10761 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-16 00:40:34 +00:00
bsalomon@google.com
aade2e1e19 Add fullscreen rect bench
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10510 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-02 14:39:25 +00:00
senorblanco@chromium.org
350b4d50ea Remove SkBlendImageFilter, and all tests. Its functionality has been subsumed by SkXfermodeImageFilter.
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10482 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-01 14:59:05 +00:00
reed@google.com
602a1d7025 add scaledimagecache
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10286 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-23 19:13:54 +00:00
egdaniel@google.com
a308883003 Add bench for hairline paths.
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10128 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-17 19:30:41 +00:00
humper@google.com
523521c6bc reenable the scale benchmark, and only bench actual canvas draw commands
instead of direct invocations of the (now private) bitmap scale method

BUG=
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10027 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-11 20:28:30 +00:00
humper@google.com
b088947f27 New bitmap filter checkin; this time with less build breakage
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9944 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 21:37:14 +00:00
humper@google.com
1a8940e558 Revert "More general image filter interface; tested implementation of standalone"
This reverts commit 4df3e8b079e019af5f60c13e7e6ec6589663962a.

git-svn-id: http://skia.googlecode.com/svn/trunk@9937 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 18:02:06 +00:00
humper@google.com
25fc6b9bfb More general image filter interface; tested implementation of standalone
image scaler (not yet plumbed).  High quality downsampler.  Fast SSE
resampler.

BUG=
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9936 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 17:48:15 +00:00
reed@google.com
bcb42aecf1 add charsToGlyphs to SkTypeface
Will disable new unittest until all backends are implemented.

On Mac, new API is 4x faster than old paint one, so next CL I will reimplement the paint calls in terms of the new typeface call.

R=eae@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9860 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-02 13:56:39 +00:00
commit-bot@chromium.org
064779aa18 Adding my Bitmap2Path sample for 1on1 meeting.
BUG=
R=reed@google.com, borenet@google.com

Author: dierk@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9843 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-01 17:50:29 +00:00
scroggo@google.com
2bbc2c945b Add an option to create unpremultiplied bitmaps.
Currently they cannot be used directly by Skia, but
the pixels can be used elsewhere.

SkImageDecoder:
Add functions to require unpremultiplied output
and query the presence of the requirement

SkImageDecoder_libpng:
SkImageDecoder_libwebp:
SkImageDecoder_WIC:
Respect the requirement for unpremultiplied output.
TODO: Fix SkImageDecoder_CG.

SkScaledBitmapSampler:
Add procs to skip premultiplication and a boolean
parameter to use those procs.

ImageDecodingTest:
Test unpremultiplied bitmap decoding.

SampleUnpremul:
Add a sample which allows visually comparing between the
unpremultiplied version (copied into a premultiplied bitmap,
since drawing unpremultiplied is not currently supported)
and a premultiplied version of image files.

gm.h:
Add a getter for the resource path, so Samples can use it.

As of patch set 13, https://codereview.chromium.org/16816016/
and https://codereview.chromium.org/16983004/, which were
approved separately.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9612 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-14 15:33:20 +00:00
commit-bot@chromium.org
5f879755f4 Add benchmark for PremultiplyAlpha and UnpremultiplyAlpha in Skia
BUG=248549
R=tomhudson@chromium.org, bsalomon@chromium.org, reed@google.com, noel@chromium.org, tomhudson@google.com

Author: jun.a.jiang@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9569 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-13 10:18:02 +00:00
reed@google.com
8af0371fe2 add bench for fontcache performance (measurement)
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9508 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-11 19:18:44 +00:00
reed@google.com
c117cbae61 add bench for sk_memset16/32
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9405 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-03 16:54:10 +00:00
robertphillips@google.com
1d2f631594 add bench for blurred rectori case
https://codereview.chromium.org/14690014/



git-svn-id: http://skia.googlecode.com/svn/trunk@9108 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-13 14:10:31 +00:00
robertphillips@google.com
6670ab9e63 Added game-like bench marks
https://codereview.chromium.org/14772019/



git-svn-id: http://skia.googlecode.com/svn/trunk@9078 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-09 19:03:48 +00:00
sugoi@google.com
5d71adf4b1 Adding new bench tests for lighting and blur
Review URL: https://codereview.chromium.org/14474004

git-svn-id: http://skia.googlecode.com/svn/trunk@8846 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-24 19:36:44 +00:00
sugoi@google.com
580a17241c Added a few bench for some image filters
Review URL: https://codereview.chromium.org/14234019

git-svn-id: http://skia.googlecode.com/svn/trunk@8824 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-23 14:20:45 +00:00
sugoi@google.com
4775cba7b3 Perlin noise adjustments
1 ) Added GPU simplex noise as a comparison to GPU Perlin noise. It can be enabled simply by using a #define (SK_USE_SIMPLEX_NOISE)
2 ) Enabled GPU Perlin noise tests
3 ) Added a small benchmark for noise
4 ) Disabled GPU Perlin noise on Android based on benchmarks

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8719 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-17 13:46:56 +00:00
junov@chromium.org
d61ba6e5cf Benchmark to measure SkSurface copy on write performance
Review URL: https://codereview.chromium.org/14297008

git-svn-id: http://skia.googlecode.com/svn/trunk@8718 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-17 13:43:04 +00:00
commit-bot@chromium.org
d7aaf6034e Add Xfermode bench. Also clear before rendering in bench (rather than after).
Author: bsalomon@google.com

Reviewed By: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8454 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-01 12:51:34 +00:00
bsalomon@google.com
4a71997e0d Add chart bench.
Review URL: https://codereview.appspot.com/7368051

git-svn-id: http://skia.googlecode.com/svn/trunk@7821 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-22 15:10:36 +00:00
senorblanco@chromium.org
c3799ada5b Add a bench for SkBicubicImageFilter.
Review URL: https://codereview.appspot.com/7312056

git-svn-id: http://skia.googlecode.com/svn/trunk@7668 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-08 16:40:14 +00:00
reed@google.com
c1f9011ceb add benchmark for stroked drawRect/drawOval/drawRRect, to prepare for optimizing
those based on special-casing stroking for single-contour-convex shapes.



git-svn-id: http://skia.googlecode.com/svn/trunk@7537 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-04 14:57:28 +00:00
reed@google.com
633c32b13b optimize region::intersect when one wholly contains the other
clone of https://codereview.appspot.com/7237055/



git-svn-id: http://skia.googlecode.com/svn/trunk@7491 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-31 15:24:24 +00:00
mike@reedtribe.org
a3f1c8e2fe add bench for sorting
git-svn-id: http://skia.googlecode.com/svn/trunk@7330 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-23 02:23:40 +00:00
robertphillips@google.com
8e679fe023 Added new bench to test out 1xN BitmapProcShaders
https://codereview.appspot.com/7160043/



git-svn-id: http://skia.googlecode.com/svn/trunk@7264 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-17 19:51:41 +00:00
humper@google.com
7c7292c607 Added a new function to directly generate a blurred rectangle analytically.
Added two new microbenchmarks to demonstrate speedup over existing BlurSeparable approach.

Added new GM tests for blurred rectangles. 
Review URL: https://codereview.appspot.com/7037050

git-svn-id: http://skia.googlecode.com/svn/trunk@7034 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-04 20:29:03 +00:00
reed@google.com
7d68335eb4 add getTypes() to SkMatrix44, to cache how complex the matrix is.
add bench

optimize operator== by performing 4 compares in a row before checking
optimize setconcat by noting when we can write the answer directly into this

At least on this macbook, I had to mark helpers like isIdentity() as inline to get them inlined.
Review URL: https://codereview.appspot.com/6863053

git-svn-id: http://skia.googlecode.com/svn/trunk@6655 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-03 21:19:52 +00:00
reed@google.com
1ca015bd59 add bench for hairlines
git-svn-id: http://skia.googlecode.com/svn/trunk@6118 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-25 17:32:10 +00:00
reed@google.com
3d407a153a add bench for drawBitmapRectToRect
git-svn-id: http://skia.googlecode.com/svn/trunk@5915 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-12 14:42:38 +00:00
robertphillips@google.com
924352685d Added bench to replicate Google spreadsheet-style table drawing
https://codereview.appspot.com/6593076/



git-svn-id: http://skia.googlecode.com/svn/trunk@5782 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-03 13:25:13 +00:00
senorblanco@chromium.org
cc9471c36d Fix premul alpha problems w/matrix convolution filter, and re-enable the bench.
http://codereview.appspot.com/6541043/



git-svn-id: http://skia.googlecode.com/svn/trunk@5610 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-20 17:59:49 +00:00
senorblanco@chromium.org
79723f9826 Unreviewed; build fix.
Disable matrixconvolution bench until I can figure out the
premul issues.



git-svn-id: http://skia.googlecode.com/svn/trunk@5593 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 20:44:01 +00:00
senorblanco@chromium.org
5faa2dc266 Implements a matrix convolution filter (raster path only). The filtering loop
is templated on the tiling mode for speed:  interior pixels are unconditionally
fetched; border pixels apply the appropriate tiling mode before fetching.  It
handles target, bias, divisor (as gain), and edge modes (named to be more
skia-like).  It does not handle the "preserveAlpha" semantics of
feConvolveMatrix, nor "kernelUnitLength".



git-svn-id: http://skia.googlecode.com/svn/trunk@5592 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 20:32:34 +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
rileya@google.com
981b33abc6 Add R-Tree bench.
Review URL: https://codereview.appspot.com/6497086

git-svn-id: http://skia.googlecode.com/svn/trunk@5404 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-05 18:36:17 +00:00
robertphillips@google.com
6806bdaca8 Added bench to test multiple readPixels case
https://codereview.appspot.com/6501081/



git-svn-id: http://skia.googlecode.com/svn/trunk@5381 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-04 13:39:01 +00:00
rmistry@google.com
d6176b0dca Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/)
This CL is part II of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6474054

git-svn-id: http://skia.googlecode.com/svn/trunk@5263 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 18:14:13 +00:00
junov@chromium.org
9ed02b9da2 Augmenting SkDeferredCanvas notification interface to signal flushes and memory allocations
Renamed SkDeferredCanvas::DeviceContext to SkDeferredCanvas::NotificationClient

BUG=http://code.google.com/p/chromium/issues/detail?id=136828
TEST=Added coverage for new API to DeferredCanvas unit test. Added DeferredCanvas bench test to track deferred canvas overhead cost.
Review URL: https://codereview.appspot.com/6442108

git-svn-id: http://skia.googlecode.com/svn/trunk@5078 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-14 13:36:26 +00:00
scroggo@google.com
dd39488997 Avoid a loop in writeString and writePad by zeroing padding first.
Also add a benchmark to time the new improved writeString. Before
my change the bench took ~1.23ms and afterwards it takes ~.95ms.

Add some testing to ensure that writePad works properly.

TEST=Writer32Test, WriterBench

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4742 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-24 20:47:55 +00:00
junov@chromium.org
ef76060cbf Adding checksum to SkFlatData to accelerate SkPicture recording.
The checksum triggers an early exit in the mem compare use to search for duplicate flattened objects. Also, call to memcmp was replaced with 64-bit at a time comparison loop.

Review URL: http://codereview.appspot.com/6339046/
BUG=http://code.google.com/p/chromium/issues/detail?id=54079
TEST=Checksum and PictureRecord tests in bench.exe



git-svn-id: http://skia.googlecode.com/svn/trunk@4378 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-27 20:03:16 +00:00