Commit Graph

10509 Commits

Author SHA1 Message Date
commit-bot@chromium.org
9f8e282901 submit_try: Obtain the list of trybots from the checked-in slaves.cfg
This should drastically speed up the script.

BUG=
R=epoger@google.com, rmistry@google.com

Author: borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13071 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 19:18:45 +00:00
commit-bot@chromium.org
a6d46cb1bc Add default_msaa16 and nvpr configs to bench_pictures.cfg
BUG=skia:2032
R=robertphillips@google.com, bsalomon@google.com

Author: borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13070 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 18:47:07 +00:00
commit-bot@chromium.org
f0c41e24d5 Initialize written paths and strokerecs lazily during GPU drawPath
Initialize SkPaths and SkStrokeRecs lazily during GPU drawPath calls.
The constructors seem to appear in some profiler results on ARM (~1%).

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

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13069 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 18:42:34 +00:00
commit-bot@chromium.org
46de153d4e Make leak counters thread-safe and turn them on by default for Debug
Make leak counters implemented with SK_DECLARE_INST_COUNT thread-safe.
Enable the leak counting for Debug builds.

Protect the instance counter initialization step (initStep) by
using SkOnce.

Makes SkOnce.h part of the public API, since SkInstCnt is public.

Protect the per-class child list shared variable with a per-class mutex.

Changes the behavior in the way that if the child list has been
"cleaned up", it will still try to create subsequent child lists.

BUG=skia:1219

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

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

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13068 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 18:42:26 +00:00
bsalomon@google.com
d0c53f1d51 Rebaseline bleed and simpleblurroundrect due to GPU blur changes. Also, misc blur GMs on N4.
BUG=skia:199s8

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13067 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 18:20:49 +00:00
borenet@google.com
1a5e83a0ac Use git_cl.Changelist.GetUpstreamBranch() for diff in submit_try
BUG=skia:1862
R=epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13066 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 18:03:10 +00:00
commit-bot@chromium.org
30d4f8372c deprecate tools/test_rendering.py and tools/test_pictures.py
they will be removed entirely on/after Feb 1 unless there is objection

BUG=skia:1943
R=borenet@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13065 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 17:01:28 +00:00
commit-bot@chromium.org
df79acdbab Revert of Rebaselining bleed GMs due to recent GPU blur changes. (https://codereview.chromium.org/138353002/)
Reason for revert:
the bleed_gpu GM is failing on all the test builders.

Original issue's description:
> Rebaselining bleed GMs due to recent GPU blur changes.
>
> BUG=skia:1998
>
> Committed: https://code.google.com/p/skia/source/detail?r=13063

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:1998

Author: djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13064 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 16:21:31 +00:00
bsalomon@google.com
3f88f4d5ad Rebaselining bleed GMs due to recent GPU blur changes.
BUG=skia:1998

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13063 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 15:28:24 +00:00
commit-bot@chromium.org
a4b054063f remove file added accidentally
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13062 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 13:51:14 +00:00
skia.committer@gmail.com
2e9a7157ee Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13061 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 07:01:42 +00:00
commit-bot@chromium.org
3e62ebf93b make ignored-tests.txt specify full test name, not partial name
BUG=skia:2022
R=bsalomon@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13060 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 02:54:11 +00:00
tfarina@chromium.org
5f43d21dd4 Remove drawPosTextOnPath() from SkDevice API.
All clients were updated including Chrome, so we can remove this now
from Skia.

This was committed on Chromium at
https://src.chromium.org/viewvc/chrome?view=rev&revision=244287

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13059 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 21:42:25 +00:00
commit-bot@chromium.org
e13af711d4 Revert of https://codereview.chromium.org/132643007/
Reason for revert: broken tests

TBR=
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13058 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 20:39:14 +00:00
reed@google.com
f0b56e7448 Revert "Revert of https://codereview.chromium.org/129423002/"
fixed new api references in unit tests

This reverts commit ffc0058e1fbcbd69617e1f41b2dce5b5765ff99e.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13057 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 20:28:50 +00:00
commit-bot@chromium.org
9b06ba4c91 Revert of https://codereview.chromium.org/129423002/
Reason for revert: broke tests (compile)

R=scroggo@google.com, halcanary@google.com
TBR=halcanary@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13056 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 20:23:48 +00:00
reed@google.com
dd9ea9262c add SkBitmap::installPixelRef()
BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13055 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 20:17:58 +00:00
commit-bot@chromium.org
a858223408 Add no-op NULL picture to bench_record.
Defaults of out/Release/bench_record are still fine; NULL's not too far off
from stable at 900 loops.  But for focus on NULL, I'd recommend
something like out/Release/bench_record --loops 100000 --skps.

Also: fail on failures, print 2 significant digits instead of fixed 4.2.

BUG=skia:1850
R=tomhudson@chromium.org

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13054 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 19:09:36 +00:00
bsalomon@google.com
3c0ccff35e Misc rebaselines related to recent GPU blur changes.
Review URL: https://codereview.chromium.org/130523003

git-svn-id: http://skia.googlecode.com/svn/trunk@13053 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 19:06:10 +00:00
commit-bot@chromium.org
2055454a4e Add handling alpha values in RRGGBBAA formatted styles.
BUG=
R=robertphillips@google.com

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13052 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 18:28:21 +00:00
commit-bot@chromium.org
7a4b9fab28 Allocate memory in SkTDynamicHash on first use.
This eliminates any dynamic allocation for hash tables that are never used.
This helps SkPicture, where some tables (SkPaint) are almost always used, but
some rarely (SkMatrix) or never (SkRegion).

This also removes the (as yet unimportant) ability for the hash table to
shrink.  This makes resizing harder to reason about, so I'd like to leave it
out until we see a need.

BUG=skia:1850
R=tomhudson@chromium.org, reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13051 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 18:28:14 +00:00
commit-bot@chromium.org
8519548693 GM: run mode comparisons for all raster configs.
GM works like this today:
  - Test all enabled configs directly
  - Render into 8888
  - Test all enabled modes against that 8888.

This change makes it do this:
  - Test all enabled configs directly
    - for each config, if it's raster, test all enabled modes against its output.

Upshot is, we now check that picture draws identically to raster for 565 too, not just 8888.  optimizations-565 is correctly failing.

BUG=skia:1994
R=epoger@google.com, reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13050 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 18:27:59 +00:00
bsalomon@google.com
cd9175eddb remove _gpu suffix from tests in ignored-tests.txt that are changed on all gpu configs (msaa, ...).
Review URL: https://codereview.chromium.org/136713005

git-svn-id: http://skia.googlecode.com/svn/trunk@13049 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 18:26:14 +00:00
robertphillips@google.com
a3961374fe Rebaseline NVPR roundrects images
https://codereview.chromium.org/136753004/



git-svn-id: http://skia.googlecode.com/svn/trunk@13048 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 17:15:33 +00:00
commit-bot@chromium.org
439ff1b9ca Use correct matrix to adjust blur radius for gpu
BUG=skia:1998
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13047 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 16:39:39 +00:00
commit-bot@chromium.org
6077057cae Remove redundant auto rt object in skpaint2grpaintshader function.
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13046 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 15:57:05 +00:00
bsalomon@google.com
4db7a31678 Remove rects GM from ignored-tests.txt and rebaseline
BUG=skia:1882

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13045 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 15:06:54 +00:00
borenet@google.com
9c80cbeeb0 Add CONTRIBUTING file
This will help to direct those who stumble upon the new github mirror
to the proper channels for contributing code.

BUG=
R=jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13044 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 15:06:26 +00:00
reed@google.com
1a033fb55e remove (now dead code) for SK_SUPPORT_LEGACY_COLORTYPE and SK_SUPPORT_LEGACY_ALPHATYPE
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13043 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 15:04:50 +00:00
reed@google.com
bf0001d047 remove remaining references to Sk64 (obsolete)
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13042 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 14:53:55 +00:00
commit-bot@chromium.org
a7d89c83a4 Handle drawBitmapRect src_rect->dst_rect mapping as a local matrix rather than view matrix when there is a mask filter.
BUG=skia:1998
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13041 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 14:47:00 +00:00
robertphillips@google.com
f0a4013467 Yet another patch for r13038
git-svn-id: http://skia.googlecode.com/svn/trunk@13040 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 14:13:46 +00:00
robertphillips@google.com
0e4ce14e7f Fix for r13038
git-svn-id: http://skia.googlecode.com/svn/trunk@13039 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 13:46:45 +00:00
robertphillips@google.com
56bf6e4bce Pull in Chromium's version of GatherPixelRefs
https://codereview.chromium.org/134473002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13038 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 13:33:26 +00:00
commit-bot@chromium.org
15ac322aae Add bench_record.
I got fed up trying to figure out how best to measure recording cost with bench_pictures, render_pictures, etc, so I wrote a new tool.

Features welcome.

BUG=
R=tomhudson@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13037 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 12:03:47 +00:00
commit-bot@chromium.org
c45ece5f7f NEON fast path for box blur
Calculate 8 channels in parallel by using 16-bits to store each channel. Due to the limitation of VQRDMULH, (int16 * int16 * 2 + 0x8000) >> 16, the fast path can only support kernelSize < 128.
8 significant bits are kept at least in each stage, the final error should less-equal than 1.

Pre-fetching memory for X-direction read. In fact pre-fetching memory doesn't help much for Y direction read, since it is a waste to load a cache line for only read 8 bytes.(I left it there to keep the symmetry. pre-fetch is cheap :) )

bench data on Nexus 10
before:
running bench [640 480]      blur_image_filter_large_10.00_10.00   8888:  cmsecs =  25081.48
running bench [640 480]      blur_image_filter_small_10.00_10.00   8888:  cmsecs =  25038.04
running bench [640 480]        blur_image_filter_large_1.00_1.00   8888:  cmsecs =  25209.04
running bench [640 480]        blur_image_filter_small_1.00_1.00   8888:  cmsecs =  24928.01
running bench [640 480]        blur_image_filter_large_0.00_1.00   8888:  cmsecs =  17160.98
running bench [640 480]       blur_image_filter_large_0.00_10.00   8888:  cmsecs =  17924.11
running bench [640 480]        blur_image_filter_large_1.00_0.00   8888:  cmsecs =  14609.19
running bench [640 480]       blur_image_filter_large_10.00_0.00   8888:  cmsecs =  14625.91

after:
running bench [640 480]      blur_image_filter_large_10.00_10.00   8888:  cmsecs =  14848.42
running bench [640 480]      blur_image_filter_small_10.00_10.00   8888:  cmsecs =  16037.29
running bench [640 480]        blur_image_filter_large_1.00_1.00   8888:  cmsecs =  14819.55
running bench [640 480]        blur_image_filter_small_1.00_1.00   8888:  cmsecs =  14563.69
running bench [640 480]        blur_image_filter_large_0.00_1.00   8888:  cmsecs =  11905.34
running bench [640 480]       blur_image_filter_large_0.00_10.00   8888:  cmsecs =  11883.85
running bench [640 480]        blur_image_filter_large_1.00_0.00   8888:  cmsecs =   9576.51
running bench [640 480]       blur_image_filter_large_10.00_0.00   8888:  cmsecs =   9793.84

BUG=
R=senorblanco@chromium.org, mtklein@google.com, reed@google.com, kevin.petit@arm.com, kevin.petit.arm@gmail.com

Author: zheng.xu@arm.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13036 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 08:16:45 +00:00
tfarina@chromium.org
1b3fea7172 Cleanup: Remove unused includes from skia_unix.cpp
This also move gWindow into the main function.

BUG=None
TEST=SampleApp
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13035 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-11 16:42:10 +00:00
commit-bot@chromium.org
7cced56550 merge multiple blurrect GMs into one GM and add versions
BUG=skia:1998
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13034 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 23:10:13 +00:00
tfarina@chromium.org
4ee16bfaed Add a DEF_GPUTEST() macro.
This macro is similar to DEF_TEST() and simplifies the process of
setting up a GPU test.

BUG=skia:1952
TEST=tests
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13033 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 22:08:27 +00:00
reed@google.com
f3abaeb0c5 remove (now unused) Sk64 -- just use int64_t
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13032 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 22:05:41 +00:00
commit-bot@chromium.org
cd11018625 Just use one version of the scripts in both the browser and in SkV8 by using feature detection to determine if we are running in a browser, and if the platform supports the Path() object. Also add oval, console.log, and the snow example code.
BUG=
R=robertphillips@google.com

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13031 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 21:33:01 +00:00
borenet@google.com
4d5e1366c9 Fixes to roll_deps for the bots
The bots are running an older version of git which does not support the
-q/--quiet flag for branch or the --short flag for symbolic-ref.

BUG=
R=halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13030 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 21:02:25 +00:00
bungeman@google.com
698dfa465c Add a simple test ttc for FontHost test.
BUG=skia:1813



git-svn-id: http://skia.googlecode.com/svn/trunk@13029 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 20:56:21 +00:00
commit-bot@chromium.org
6e83423f16 Eliminate useless NULL push by making fIndexedData 0-based.
Depends on http://crrev.com/134223002

Testing: out/Debug/dm && out/Debug/tests && echo ok

BUG=skia:1979
R=dominikg@chromium.org, tomhudson@chromium.org, halcanary@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13028 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 20:13:09 +00:00
bungeman@google.com
2dc54c94f0 Remove printfs from FontHostTest when font is not sfnt.
BUG=skia:2009
R=caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13027 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 19:40:56 +00:00
commit-bot@chromium.org
f85251c74d fNextIndex is redundant. Remove it.
This is warmup for removing the NULL at the front.

Testing: out/Debug/tests && out/Debug/dm && echo ok

BUG=skia:1979
R=dominikg@chromium.org, tomhudson@chromium.org, halcanary@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13026 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 19:37:00 +00:00
commit-bot@chromium.org
1066f08378 If poppler is disable and native pdf is enabled, we still need SkPDFRasterizer.cpp
R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: vandebo@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13025 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 19:09:00 +00:00
commit-bot@chromium.org
5c6f1d4424 Revert of https://codereview.chromium.org/112113005/
Reason for revert: breaks unit tests

R=mtklein@google.com, bsalomon@google.com, reed@google.com, scroggo@google.com
TBR=bsalomon@google.com, mtklein@google.com, reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:1742

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13024 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 18:28:23 +00:00
commit-bot@chromium.org
0f7e3470d6 Revert of https://codereview.chromium.org/106563002/
Reason for revert: There's a threading issue I don't quite understand yet.  Objects are being deleted after we check they're deleted.  Will try again.

R=kkinnunen@nvidia.com, kkinnunen@nvidia.com
TBR=kkinnunen@nvidia.com, kkinnunen@nvidia.com
NOTREECHECKS=true
NOTRY=true

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13023 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 17:58:47 +00:00
commit-bot@chromium.org
f2595e4186 Fix genID cloning bugs.
SkBitmap.cpp:
When copyTo calls readPixels, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a
bug where copying an SkBitmap representing the subset of an SkPixelRef
(which implements onReadPixels) would result in the copy sharing the
genID. (Thanks to r6710, this case can only happen using setPixelRef,
so the updated GpuBitmapCopyTest checks for that.)

Move some unnecessary NULL checks to asserts.

When copyTo performs a memcpy, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a bug
where copying an extracted SkBitmap with the same width as its original
SkPixelRef would incorrectly have the same genID.

Add a comment and assert in deepCopyTo, when cloning the genID, since
that case correctly clones it.

BitmapCopyTest.cpp:
Pull redundant work out of the inner loop (setting up the source bitmaps
and testing extractSubset). Create a new inner loop for extractSubset, to
test copying the result to each different config.

Extract a subset that has the same width as the original, to catch the
bug mentioned above.

Remove the reporter assert which checks for the resulting rowbytes.

Add checks to ensure that copying the extracted subset changes the genID.

GpuBitmapCopyTest:
Create an SkBitmap that shares an existing SkPixelRef, but only represents
a subset. This is to test the first call to cloneGenID in SkBitmap::copyTo.
In this case, the genID should NOT be copied, since only a portion of the
SkPixelRef was copied.

Also test deepCopy on this subset.

TestIndividualCopy now takes a parameter stating whether the genID should
change in the copy. It also does a read back using the appropriate subset.
It no longer differentiates between copyTo and deepCopyTo, since that
distinction was only necessary for copying from/to configs other than 8888
(which are no longer being tested), where copyTo did a read back in 8888 and
then drew the result to the desired config (resulting in an imperfect copy).

BUG=skia:1742
R=mtklein@google.com, bsalomon@google.com, reed@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13021 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 17:22:01 +00:00