Commit Graph

11691 Commits

Author SHA1 Message Date
commit-bot@chromium.org
c9b511f0e6 Revert of rebaseline_server: multithreaded loading/diffing of images (https://codereview.chromium.org/235923002/)
Reason for revert:
Caused https://code.google.com/p/skia/issues/detail?id=2423 ('"Deadline exceeded" error when connecting to live rebaseline_server').  Reverting until I can figure it out.

Original issue's description:
> rebaseline_server: multithreaded loading/diffing of images
>
> BUG=skia:2414
> NOTRY=True
>
> Committed: http://code.google.com/p/skia/source/detail?r=14184

R=rmistry@google.com
TBR=rmistry@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2414

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14207 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 18:50:12 +00:00
bungeman@google.com
5dfffaaceb Rebaselines for r14201. (Fix size of rotated text with FreeType.)
git-svn-id: http://skia.googlecode.com/svn/trunk@14206 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 18:35:49 +00:00
bungeman@google.com
9b31c5edd9 Rebaselines for r14201. (Fix size of rotated text with FreeType.)
git-svn-id: http://skia.googlecode.com/svn/trunk@14205 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 18:24:58 +00:00
commit-bot@chromium.org
12a0412a5d initialize bounds in this test
BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14204 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 18:00:57 +00:00
commit-bot@chromium.org
64b08a1026 Fix artifacts in distance field rendering due to bilerp
Because we were using the full distance field glyph rect, there were cases
when a neighboring texel might be set to full value (e.g. we might copy the
glyph over old data after a purge). This was giving artifacts, and insetting
the rect by 1 solves the problem. In doing this, I discovered that removing the
extra 1 texel pad around the glyph meant to handle bilerp, and insetting by 2,
works just as well and saves space in the glyph atlas.

R=bsalomon@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14203 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 17:53:21 +00:00
bungeman@google.com
51b0d0bc5c Add cast for warning as error on Windows from r14201.
git-svn-id: http://skia.googlecode.com/svn/trunk@14202 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 16:08:29 +00:00
bungeman@google.com
d3fbd34099 Fix size of rotated text with FreeType.
This generalizes and shares the solution found for a similar issue with
GDI. The issue is that the text size is applied early, and the rest of
the transformation late. This allows us to isolate and independently
control the text size from the rest of the transformation.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14201 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:52:07 +00:00
commit-bot@chromium.org
73cb15351f Make sure SkDrawLooper objects can only be allocated on the heap.
Make constructors of SkLayerDrawLooper and SkBlurDrawLooper non-public.
Remove addLayer* methods from SkLayerDrawLooper. SkLayerDrawLooper::Builder is
used to create new objects.
Provide factory method for creating SkBlurDrawLooper.

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

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14200 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:48:36 +00:00
commit-bot@chromium.org
beb8b3a4da Add GL_CHROMIUM_map_sub functions to GrGLInterface and bit to GrGLCaps.
BUG=skia:2402
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14199 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:37:51 +00:00
commit-bot@chromium.org
d20a2d4c57 ignore Test-Linux-Bare-NoGPU-Arm8_64 GM failures
(SkipBuildbotRuns)
BUG=skia:2422
NOTREECHECKS=True
NOTRY=True
R=halcanary@google.com
TBR=halcanary

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14198 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:26:50 +00:00
commit-bot@chromium.org
653d51867c SkRecord bug fixes
Optional arguments to SkCanvas calls leaked refs (but not memory) because we
didn't destruct the optional objects (really, just SkPaint: other optional args
are all POD).  This adds Optional and PODArray, where Optional makes sure to
call the destructor.

I overlooked that SkPictureRecord really does call paint.computeFastBounds().
Do the same in SkRecordDraw.

BUG=skia:2378
R=reed@google.com, mtklein@google.com, tomhudson@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14197 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 14:27:14 +00:00
skia.committer@gmail.com
a1ed7aec95 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14196 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 03:04:18 +00:00
commit-bot@chromium.org
4bd8fdc04c More sanitizing input.
Also fix issue with parsing time on MySQL.

BUG=skia:
R=mtklein@google.com

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14195 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 00:43:51 +00:00
bungeman@google.com
479bad560a Update pathops gms for r14183.
git-svn-id: http://skia.googlecode.com/svn/trunk@14194 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 22:28:00 +00:00
commit-bot@chromium.org
762cd80437 Move distance field generation to the glyph cache.
Distance fields are currently created in GrTextStrike, which is the wrong place. This moves that to the glyph cache where it belongs.

As part of my testing, I found that when we fall back to paths in the GrDistanceFieldTextContext it was not scaling them properly, so that's fixed in here too.

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

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14193 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 22:05:07 +00:00
commit-bot@chromium.org
73b55eb7d7 SkRecordDraw: use SkCanvas::quickRejectY for text draws
PS 1) factor apart into canSkip, draw, updateClip
 PS 2) use quickRejectY for text


BUG=skia:2378
R=fmalita@chromium.org, reed@google.com, mtklein@google.com, tomhudson@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14192 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 20:35:12 +00:00
commit-bot@chromium.org
b17a24fedb SkRecord: turn on cull annotation pass in public API.
Also, switch Skia internal tools over to use the public headers where
possible.  Where it's not, the tools -Isrc/record explicitly now, and
if it's not obvious, note why they don't use SkRecording.h.

BUG=skia:2378
R=reed@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14191 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 20:33:05 +00:00
commit-bot@chromium.org
06aca01c23 Add /recent, a page that displays the last 20 tries.
Also broke out CSS as a separate file and added a title bar across both pages to easily navigate between Home and Recent.

BUG=skia:
R=mtklein@google.com

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14190 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 20:12:08 +00:00
commit-bot@chromium.org
3d695d9239 change #if SK_DEBUG to #ifdef SK_DEBUG
fix broken build

change #if DEBUG to #ifdef DEBUG (fixes canary)

NOTRY=true
R=reed@google.com
TBR=reed@google.com

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14189 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 19:49:53 +00:00
commit-bot@chromium.org
c6ce12d727 rebaseline pathopsinverse GMs
to account for https://skia.googlesource.com/skia.git/+/4431e7757cfcb8cfa99535eed0e9f156dabf95c2

NOTRY=True
R=caryclark@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14188 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 18:56:43 +00:00
commit-bot@chromium.org
c81d1c40de Now with permalinks.
Once we get a response from our XHR request update the URL to a permalink to that code.

This CL comes after https://codereview.chromium.org/235373002/

BUG=skia:
R=mtklein@google.com

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14187 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 18:53:10 +00:00
commit-bot@chromium.org
8608463e17 fix broken build
change 'char' to 'int8_t'

BUG=skia:

NOTRY=true
TBR=reed@google.com

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14186 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 18:33:03 +00:00
reed@google.com
d9ae2314f5 Revert "Revert of use templates instead of macros to build blitters (https://codereview.chromium.org/120633004/)"
This reverts commit e9d2798fd37e2fb33b545d142a5baa21a4b747fe.

BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14185 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 18:27:18 +00:00
commit-bot@chromium.org
280ea8296f rebaseline_server: multithreaded loading/diffing of images
BUG=skia:2414
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14184 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 18:15:29 +00:00
commit-bot@chromium.org
4431e7757c Mike R: please sanity check SkPostConfig.h
Mike K: please sanity check Test.cpp and skia_test.cpp

Feel free to look at the rest, but I don't expect any in depth review of path ops innards.

Path Ops first iteration used QuickSort to order segments radiating from an intersection to compute the winding rule.

This revision uses a circular sort instead. Breaking out the circular sort into its own long-lived structure (SkOpAngle) allows doing less work and provides a home for caching additional sorting data.

The circle sort is more stable than the former sort, has a robust ordering and fewer exceptions. It finds unsortable ordering less often. It is less reliant on the initial curve  tangent, using convex hulls instead whenever it can.

Additional debug validation makes sure that the computed structures are self-consistent. A new visualization tool helps verify that the angle ordering is correct.

The 70+M tests pass with this change on Windows, Mac, Linux 32 and Linux 64 in debug and release.

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

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14183 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 17:08:59 +00:00
commit-bot@chromium.org
95f79261ad Add conical special cases to GradientBench
BUG=skia:
R=reed@google.com, bsalomon@google.com, robertphillips@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14182 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 16:02:31 +00:00
senorblanco@chromium.org
1a479e7547 Allow clients to specify an external SkImageFilter cache.
This change allows external callers to substitute their own
SkImageFilter cache for the default intra-frame cache in Skia. This
allows the caller to perform inter-frame caching for example, by the
maintaining a persistent cache between frames and doing custom
invalidation.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14181 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 15:51:48 +00:00
commit-bot@chromium.org
8f9e681093 Revert of use templates instead of macros to build blitters (https://codereview.chromium.org/120633004/)
Reason for revert:
Broke build.

Original issue's description:
> use templates instead of macros to build blitters
>
> BUG=
>
> Committed: http://code.google.com/p/skia/source/detail?r=14178

R=mtklein@google.com, reed@google.com
TBR=mtklein@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14180 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 15:45:58 +00:00
commit-bot@chromium.org
f6a5afb66b Remove currently unused code
This code is currently unused and is contrary to the way in which we seem to be moving towards accomplishing this (i.e., device-specific optimization passes).

This is a partial revert of r13704 (First version of bitmap use tracking in SkPictureRecord - https://codereview.chromium.org/187833003/)

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14179 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 15:02:50 +00:00
commit-bot@chromium.org
567f519b94 use templates instead of macros to build blitters
BUG=
R=mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14178 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 15:02:35 +00:00
commit-bot@chromium.org
5d0b150257 resize canvas for GM + typo
This change resized the canvas for some GM cases. It is better to show the visual difference in viewer.html for these cases after the CL applied.

BUG=skia:2375
R=reed@google.com, djsollen@google.com

Author: yunchao.he@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14177 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 15:02:19 +00:00
commit-bot@chromium.org
54299654e9 Xfermode: SSE2 implementation of a number of simple transfer modes
These modes share some common code and not very complex, so group them
together. This CL yields about 50% performance improvement on desktop
i7-3770. Here are the data:
before:
   Xfermode_Screen   8888:  cmsecs =     30.25   565:  cmsecs =     46.81
 Xfermode_Modulate   8888:  cmsecs =     22.48   565:  cmsecs =     40.06
     Xfermode_Plus   8888:  cmsecs =     21.04   565:  cmsecs =     37.51
      Xfermode_Xor   8888:  cmsecs =     37.18   565:  cmsecs =     52.53
  Xfermode_DstATop   8888:  cmsecs =     28.97   565:  cmsecs =     46.42
  Xfermode_SrcATop   8888:  cmsecs =     29.74   565:  cmsecs =     46.25
   Xfermode_DstOut   8888:  cmsecs =      5.34   565:  cmsecs =     24.53
   Xfermode_SrcOut   8888:  cmsecs =     12.25   565:  cmsecs =     24.39
    Xfermode_DstIn   8888:  cmsecs =      5.30   565:  cmsecs =     24.50
    Xfermode_SrcIn   8888:  cmsecs =     12.05   565:  cmsecs =     25.40
  Xfermode_DstOver   8888:  cmsecs =     12.45   565:  cmsecs =      0.15
  Xfermode_SrcOver   8888:  cmsecs =      2.68   565:  cmsecs =      4.42
after:
   Xfermode_Screen   8888:  cmsecs =     13.68   565:  cmsecs =     21.73
 Xfermode_Modulate   8888:  cmsecs =     13.25   565:  cmsecs =     20.97
     Xfermode_Plus   8888:  cmsecs =      9.77   565:  cmsecs =     16.71
      Xfermode_Xor   8888:  cmsecs =     17.64   565:  cmsecs =     25.62
  Xfermode_DstATop   8888:  cmsecs =     15.99   565:  cmsecs =     23.74
  Xfermode_SrcATop   8888:  cmsecs =     15.69   565:  cmsecs =     23.40
   Xfermode_DstOut   8888:  cmsecs =      4.77   565:  cmsecs =     11.85
   Xfermode_SrcOut   8888:  cmsecs =      4.98   565:  cmsecs =     11.84
    Xfermode_DstIn   8888:  cmsecs =      4.68   565:  cmsecs =     11.72
    Xfermode_SrcIn   8888:  cmsecs =      4.93   565:  cmsecs =     11.79
  Xfermode_DstOver   8888:  cmsecs =      5.04   565:  cmsecs =      0.15
  Xfermode_SrcOver   8888:  cmsecs =      2.69   565:  cmsecs =      4.42

BUG=skia:
R=mtklein@google.com

Author: qiankun.miao@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14176 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 14:54:22 +00:00
commit-bot@chromium.org
282333ffa2 Add design for sql storage, implementation of db that stores the data, not retrieving yet.
BUG=skia:
R=mtklein@google.com

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14175 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 14:54:07 +00:00
commit-bot@chromium.org
94cf9fad38 More removal of duplicate framework defines.
BUG=skia:1975
R=djsollen@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14174 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 14:53:58 +00:00
commit-bot@chromium.org
8f3cc773c4 Remove duplicate skia_android_framework defines.
BUG=skia:1975
R=djsollen@google.com

Author: scroggo@google.com

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

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



git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-13 19:09:42 +00:00
robertphillips@google.com
c202ea7cc6 Adding image-surface to ignored-tests.txt
git-svn-id: http://skia.googlecode.com/svn/trunk@14170 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-13 18:01:01 +00:00
commit-bot@chromium.org
f2d4b1100b bench rebase test e93a4c0
R=robertphillips@google.com
TBR=robertphillips@google.com
NOTRY=true
NOTREECHECKS=true

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14169 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-12 13:35:46 +00:00
skia.committer@gmail.com
d942731259 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14168 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-12 03:05:59 +00:00
commit-bot@chromium.org
e93a4c0fea rebaseline_server: fix sorting by perceptual diff column
(SkipBuildbotRuns)
BUG=skia:2410
NOTREECHECKS=True
NOTRY=True
R=rmistry@google.com
TBR=rmistry

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14167 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 21:45:41 +00:00
commit-bot@chromium.org
7e41957aee bench rebase test 28fcae2
R=robertphillips@google.com
TBR=robertphillips@google.com
NOTRY=true
NOTREECHECKS=true
BUG=skia:

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14166 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 20:30:58 +00:00
commit-bot@chromium.org
a1bf8be772 Further adjust bench expectations calculation.
BUG=skia:2225
TBR=robertphillips@google.com
NOTRY=true

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14165 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 19:54:16 +00:00
commit-bot@chromium.org
bd4d7eae72 bench rebase test 1f75ab9
R=robertphillips@google.com
TBR=robertphillips@google.com
NOTRY=true
NOTREECHECKS=true
BUG=skia:

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14164 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 19:07:40 +00:00
commit-bot@chromium.org
d6489c957f use the correct rowBytes so Debug build doesn't assert
BUG=skia:2378
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14163 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 19:06:46 +00:00
commit-bot@chromium.org
c3c67dfc73 remove dead code from SkPicturePlayback
This is from an earlier iteration of the pull-forward task before we switched to doing the majority of the work in SkGpuDevice.

R=jvanverth@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14162 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 19:05:22 +00:00
commit-bot@chromium.org
461f227203 R=robertphillips@google.com
TBR=robertphillips@google.com
BUG=skia:

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14161 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 19:00:28 +00:00
commit-bot@chromium.org
f7efa502d6 Implement intra-frame cacheing in image filters.
When image filters are processed within Skia, they simply do
a blind recursion. This has the side-effect of turning the
DAG into a tree. I.e., nodes visited more than once during
the traversal will be processed more than once.

This change implements a very simple cacheing scheme: a
cache is created before traversing the DAG, and handed
into the processing traversal. Before recursing into a child
in SkImageFilter::filterImage(), the cache is checked for a
hit, and early-out is performed. Otherwise, the node is
processed, and its result bitmap and location (offset) are
cached, but only if it contains two or more children and
thus will be visited again during the traversal.

Currently, the child count is approximated with the
refcount. This is good enough in most cases (and exactly
correct for the Chrome use case). We could add an exact
child count to the image filter, but this will require
violating the immutability of image filters slightly in
order to bump the child count as nodes are connected. I
leave it up to the reviewer to decide which is better.

R=reed@google.com

Author: senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14160 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:57:00 +00:00
commit-bot@chromium.org
cae54f1f21 remove picture-backed surfaces
BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14159 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:34:35 +00:00
commit-bot@chromium.org
c4b21e6c03 Mark our territory with (C).
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14158 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:33:31 +00:00