commit-bot@chromium.org
2d970b5128
hide discardable factory from public imagegenerator api
...
BUG=skia:
R=halcanary@google.com , scroggo@google.com , djsollen@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/295243006
git-svn-id: http://skia.googlecode.com/svn/trunk@14889 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 14:14:22 +00:00
commit-bot@chromium.org
e5a8e66668
move ashmem switching logic to SkDiscardableMemory::Create
...
R=scroggo@google.com , reed@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/293283002
git-svn-id: http://skia.googlecode.com/svn/trunk@14882 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-23 20:25:15 +00:00
commit-bot@chromium.org
968edcafa6
stop calling SkBitmap::flatten
...
BUG=skia:
R=scroggo@google.com , halcanary@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/295793002
git-svn-id: http://skia.googlecode.com/svn/trunk@14867 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-23 13:21:55 +00:00
commit-bot@chromium.org
9e34473d73
remove bit rot test gyp
...
BUG=skia:2597
R=epoger@google.com
TBR=epoger
NOTRY=true
Author: caryclark@google.com
Review URL: https://codereview.chromium.org/296053016
git-svn-id: http://skia.googlecode.com/svn/trunk@14856 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 19:58:22 +00:00
robertphillips@google.com
8cf81e0f4f
Simple PKM image decoder.
...
https://codereview.chromium.org/292663011/
git-svn-id: http://skia.googlecode.com/svn/trunk@14852 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 18:40:29 +00:00
commit-bot@chromium.org
8be07bb12d
In convexity checker don't advance last vector when x-product isn't significant.
...
BUG=skia:2235
R=caryclark@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/298973004
git-svn-id: http://skia.googlecode.com/svn/trunk@14845 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 14:58:53 +00:00
commit-bot@chromium.org
83f23d87f1
Remove unused (by clients) SkUnitMapper
...
This reverts commit 874423a81b5bc2541c7397e6ab00d5e7c9fdaf98.
TBR=scroggo
Author: reed@google.com
Review URL: https://codereview.chromium.org/288313009
git-svn-id: http://skia.googlecode.com/svn/trunk@14842 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 12:27:41 +00:00
commit-bot@chromium.org
3339ac54a5
Revert of Remove unused (by clients) SkUnitMapper ( https://codereview.chromium.org/283273002/ ) ( https://codereview.chromium.org/288343009/ )
...
Reason for revert:
required blink change failed to land
Original issue's description:
> Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/ )
>
> This reverts commit dd50c83b5b34dab3a077741861b50ed1f2bc6b8f.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14830
R=scroggo@google.com , reed@google.com
TBR=reed@google.com , scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/296823008
git-svn-id: http://skia.googlecode.com/svn/trunk@14838 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 02:55:59 +00:00
commit-bot@chromium.org
4b8f802255
Remove unused (by clients) SkUnitMapper ( https://codereview.chromium.org/283273002/ )
...
This reverts commit dd50c83b5b34dab3a077741861b50ed1f2bc6b8f.
BUG=skia:
R=scroggo@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/288343009
git-svn-id: http://skia.googlecode.com/svn/trunk@14830 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-21 19:56:46 +00:00
commit-bot@chromium.org
311a3cda94
Add function to get both min and max scale factors from matrix
...
R=reed@google.com , jvanverth@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/298473002
git-svn-id: http://skia.googlecode.com/svn/trunk@14804 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 17:02:03 +00:00
commit-bot@chromium.org
1878651990
Rename SkMatrix::get(Max|Min)Stretch to get(Min|Max)Scale
...
R=reed@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/295713002
git-svn-id: http://skia.googlecode.com/svn/trunk@14798 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 14:53:45 +00:00
commit-bot@chromium.org
99bd7d8174
Try out SkMatrix::Concat.
...
This should RVO to the same as doing it on the stack with setConcat.
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/293693002
git-svn-id: http://skia.googlecode.com/svn/trunk@14782 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-19 15:51:12 +00:00
commit-bot@chromium.org
0a98d87044
Don't clobber initial transform with SetMatrix.
...
BUG=skia:2378
R=reed@google.com , mtklein@google.com , robertphillips@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/290883004
git-svn-id: http://skia.googlecode.com/svn/trunk@14778 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-19 15:15:24 +00:00
commit-bot@chromium.org
821650655b
Ensure playing back a picture always balances saves and restores
...
This "fixes" the legacy interface's possible creation of pictures with unbalanced save/restores.
The Android dox will need to be updated once/if this lands.
R=reed@google.com , scroggo@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/286033005
git-svn-id: http://skia.googlecode.com/svn/trunk@14772 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-19 12:26:58 +00:00
commit-bot@chromium.org
e2b193ca5c
Revert of remove unused (by clients) SkUnitMapper ( https://codereview.chromium.org/283273002/ )
...
Reason for revert:
does not address all legacy callsites in chrome.
e.g.
[13:45:32.091872] ../../ui/native_theme/native_theme_base.cc:608:76: error: no matching function for call to ‘SkGradientShader::CreateLinear(SkPoint [3], SkColor [3], NULL, int, SkShader::TileMode, NULL)’
[13:45:32.091919] gradient_bounds, colors, NULL, 3, SkShader::kClamp_TileMode, NULL));
Original issue's description:
> remove unused (by clients) SkUnitMapper
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14761
R=robertphillips@google.com , scroggo@google.com , george@mozilla.com
TBR=george@mozilla.com , robertphillips@google.com , scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: reed@google.com
Review URL: https://codereview.chromium.org/287063009
git-svn-id: http://skia.googlecode.com/svn/trunk@14763 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-16 13:49:08 +00:00
commit-bot@chromium.org
ee0cac336c
remove unused (by clients) SkUnitMapper
...
BUG=skia:
R=robertphillips@google.com , scroggo@google.com , george@mozilla.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/283273002
git-svn-id: http://skia.googlecode.com/svn/trunk@14761 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-16 13:35:01 +00:00
reed@google.com
47b679b37d
comment out info4 test until Rob can fix it
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14741 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-14 18:58:16 +00:00
commit-bot@chromium.org
d0490172e5
Reland bug fixes from "4x allocation in PipeController is probably overkill."
...
BUG=372671
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/283093002
git-svn-id: http://skia.googlecode.com/svn/trunk@14727 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-14 15:12:08 +00:00
commit-bot@chromium.org
f700fb2f13
Manually revert "4x allocation in PipeController is probably overkill."
...
This reverts commit 2d91efffdb
.
Conflicts:
src/pipe/SkGPipeWrite.cpp
BUG=372671
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/277653004
git-svn-id: http://skia.googlecode.com/svn/trunk@14725 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-14 14:50:57 +00:00
halcanary@google.com
b7acbfe0ee
Flatten resources directory
...
On android trybots, the files in a subdirectory weren't being
loaded onto the device. Consequently, the ImageDecoderOptions
test was not testing anything. I had to relax that unit test
to reflect the existing behavior of our libjpeg decoder on
Android.
R=djsollen@google.com
Review URL: https://codereview.chromium.org/264583007
git-svn-id: http://skia.googlecode.com/svn/trunk@14682 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 18:08:24 +00:00
djsollen@google.com
f9dc07c80a
Revert "Flatten resources directory"
...
Review URL: https://codereview.chromium.org/278033002
git-svn-id: http://skia.googlecode.com/svn/trunk@14679 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 17:24:31 +00:00
commit-bot@chromium.org
e5e96021a0
Flatten resources directory
...
On android trybots, the files in a subdirectory weren't being
loaded onto the device. Consequently, the ImageDecoderOptions
test was not testing anything. I had to relax that unit test
to reflect the existing behavior of our libjpeg decoder on
Android.
R=djsollen@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/264583007
git-svn-id: http://skia.googlecode.com/svn/trunk@14678 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 16:24:06 +00:00
commit-bot@chromium.org
95c2003740
cleanup GrContext resource cache api
...
R=robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/275563005
git-svn-id: http://skia.googlecode.com/svn/trunk@14669 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 14:29:32 +00:00
skia.committer@gmail.com
8a1e688552
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14661 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 03:05:30 +00:00
commit-bot@chromium.org
f97d65dc25
Fix rendering artifacts in pull-saveLayers-forward mode
...
This CL fixes 2 bugs in the pre-rendering of saveLayers:
1) The drawBitmapRect call wasn't occurring in device space so could sometimes be double transformed
2) The BBH op skipping in SkPicturePlayback could sometimes mess up the SkPictureStateTree's state
It also reduces the number of layers that are pre-rendered when a BBH is not in use.
Committed: http://code.google.com/p/skia/source/detail?r=14650
R=bsalomon@google.com , reed@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/267293007
git-svn-id: http://skia.googlecode.com/svn/trunk@14659 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 23:24:05 +00:00
commit-bot@chromium.org
888e4687d9
Split Star into Star (stores nothing) and List (stores matches).
...
Just noticed that the cull noop pattern (PushCull, Star<NoOp>, PopCull)
would trigger the Star that stores matches. We certainly don't need
those matches here, so instead of magically determining which Star you
need, we'll make you tell us which one you want.
No one but List's unit test needs List. I'll leave it for now, but we
might find it's not useful.
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com , bungeman@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/275623002
git-svn-id: http://skia.googlecode.com/svn/trunk@14655 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 18:58:32 +00:00
commit-bot@chromium.org
1e44730ade
Noop away PushCull/PopCull pairs with nothing between them.
...
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/277613002
git-svn-id: http://skia.googlecode.com/svn/trunk@14653 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 18:17:51 +00:00
skia.committer@gmail.com
b2c82c99f8
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14636 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 03:05:29 +00:00
commit-bot@chromium.org
37f6e62f11
Move paints to the front of draw structs.
...
The order of arguments in these structs is arbitrary, so we might as well arrange them to optimize something. Putting the paints at the front means the logic to find the paint is a lot more concise: it's usually just ptr+0, or *(ptr+0) when the SkPaint is optional.
This considerably reduces the size of the jump table in IsDraw::operator().
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/272673002
git-svn-id: http://skia.googlecode.com/svn/trunk@14634 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 22:59:38 +00:00
commit-bot@chromium.org
c71da1f6ed
Convert all SkRecordPattern matchers into SkRecord mutators.
...
- Allow any return type from SkRecord mutators and visitors;
- update existing calls to mutate and visit;
- convert match to operator() in SkRecordPattern;
- tidy up a few inelegant bits of old code in tests.
The net result is that the generated code is much clearer. All the mutate() calls
inline as you'd hope, and you can now actually follow along with the disassembly.
BUG=skia:2378
R=fmalita@chromium.org , bungeman@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/273643007
git-svn-id: http://skia.googlecode.com/svn/trunk@14631 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 21:16:09 +00:00
senorblanco@chromium.org
ba31f1d341
Some small cleanups for image filter code.
...
Use the 2-param flavour of mapVector instead of the 3-param, where possible.
Add an SkMatrixImageFilter test case to the tiling unit test.
R=junov@chromium.org
Review URL: https://codereview.chromium.org/277543002
git-svn-id: http://skia.googlecode.com/svn/trunk@14630 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 20:56:08 +00:00
senorblanco@chromium.org
d4db657bf5
Fix for SkDisplacementMap::onFilterBounds().
...
Two problems: we were not applying the CTM to the scale parameter when
modifying clip bounds, and the recursion for onFilterBounds() must be done
in the reverse order.
BUG=370914
R=junov@chromium.org
Review URL: https://codereview.chromium.org/272643003
git-svn-id: http://skia.googlecode.com/svn/trunk@14627 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 20:00:04 +00:00
commit-bot@chromium.org
467705adf0
save-draw*-restore -> noop-draw*-noop
...
save-drawA-drawB-drawC-restore always means drawA-drawB-drawC,
no matter what flags we use for save().
This one triggers all over the silk SKPs and in several of the bot SKPs, typically as save-drawBitmap-restore.
BUG=skia:2378
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/267793006
git-svn-id: http://skia.googlecode.com/svn/trunk@14618 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 17:17:48 +00:00
commit-bot@chromium.org
2db7fe7d3b
When solving the cubic line intersection directly fails, use binary search as a fallback.
...
The cubic line intersection math empirically works 99.99% of the time (fails 3100 out of 1B random tests) but when it fails, an intersection may be missed altogether.
The binary search is may not find a solution if the cubic line failed to find any solutions at all, but so far that case hasn't arisen.
BUG=skia:2504
TBR=reed@google.com
Author: caryclark@google.com
Review URL: https://codereview.chromium.org/266063003
git-svn-id: http://skia.googlecode.com/svn/trunk@14614 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 15:31:40 +00:00
commit-bot@chromium.org
2d91efffdb
4x allocation in PipeController is probably overkill.
...
When verylargebitmap GM runs in cross-process pipe mode, we're
requestBlock()ing ~200M to carry the bitmaps. The current
implementation ends up allocating ~800M, which is a bit wasteful.
SkGPipeWrite already rounds up to 16K, so just rely on that.
This change exposed several bugs in pipe:
- we don't reserve enough space in drawVertices
- we don't reserve enough space for factory names in cross-process mode
- we don't quite have the right check in needOpBytes to see if we needed to send off the current block and allocate a new one
SETUP_NOTIFY and generally calling doNotify() more often than necessary made things hard to debug and understand. Now the pipe always waits to send off its current block until it needs more space than that block can provide, or it's the final block. We can put these back if we need the proactive flushing, but it seems not necessary?
Removed an assert in DeferredCanvasTest, which is somtimes 2 (Debug), sometimes 3 (Release). It seemed like the other asserts were more essential, and this one was more of a white-box assertion. Still sound if we remove it?
BUG=skia:2478
R=scroggo@google.com , mtklein@google.com , reed@google.com , junov@chromium.org
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/267863002
git-svn-id: http://skia.googlecode.com/svn/trunk@14613 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 15:27:10 +00:00
commit-bot@chromium.org
f5bf3cf025
Add SaveLayer-Draw-Restore optimization.
...
This is like SkPictureRecord's remove_save_layer1 but works with all draw calls.
Interesting patterns removed:
SaveLayer-DrawRect-Restore: Silk SKPs, desk_weather
SaveLayer-DrawPath-Restore: desk_carsvg, desk_wowwiki, tabl_androidpolice
SaveLayer-DrawPosTextH-Restore: tabl_android_police
There may be others, but I stopped looking.
BUG=skia:2378
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/269813010
git-svn-id: http://skia.googlecode.com/svn/trunk@14610 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 14:47:44 +00:00
commit-bot@chromium.org
8cca4cc560
Split CPU and GPU DeferredCanvas tests
...
Nothing important, just happened to notice this and figured it was good hygiene.
DEF_TESTs run in parallel, while DEF_GPUTESTs run all run serially.
BUG=skia:
Committed: http://code.google.com/p/skia/source/detail?r=14603
R=junov@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/271483002
git-svn-id: http://skia.googlecode.com/svn/trunk@14608 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 14:33:57 +00:00
commit-bot@chromium.org
dbf25181bd
Revert of Split CPU and GPU DeferredCanvas tests ( https://codereview.chromium.org/271483002/ )
...
Reason for revert:
breaking the run tests steps on ChromeOS. See http://108.170.220.120:10117/builders/Test-ChromeOS-Alex-GMA3150-x86-Debug/builds/1669
Original issue's description:
> Split CPU and GPU DeferredCanvas tests
>
> Nothing important, just happened to notice this and figured it was good hygiene.
> DEF_TESTs run in parallel, while DEF_GPUTESTs run all run serially.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14603
R=junov@chromium.org , mtklein@google.com , mtklein@chromium.org
TBR=junov@chromium.org , mtklein@chromium.org , mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: djsollen@google.com
Review URL: https://codereview.chromium.org/270283003
git-svn-id: http://skia.googlecode.com/svn/trunk@14607 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 12:33:02 +00:00
skia.committer@gmail.com
a5b068cc05
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14605 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 03:04:15 +00:00
senorblanco@chromium.org
68250c8e7c
Fix for empty saveLayer() with a filter which affects transparent black.
...
If an saveLayer()/restore() is recorded, tilegrid/rtree will cull them
out and not draw anything. This is correct for most cases, but if the
paint in the saveLayer() is one that affects transparent black (e.g.,
it contains a color filter or image filter which affects transparent
black), this is incorrect: the filter should be applied.
Fixed by adding a no-op between the saveLayer() and restore(), and
adding a bbox node pointing at that node with the saveLayer()'s bounds.
This exposed a bug in SkPictureRecord.cpp's match(), where it would
assert if the NOOP was the last op seen. Fixed with an early-out before
calling peek_op_and_size().
BUG=skia:2254
Review URL: https://codereview.chromium.org/262363007
git-svn-id: http://skia.googlecode.com/svn/trunk@14604 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-06 22:52:55 +00:00
commit-bot@chromium.org
0992404e38
Split CPU and GPU DeferredCanvas tests
...
Nothing important, just happened to notice this and figured it was good hygiene.
DEF_TESTs run in parallel, while DEF_GPUTESTs run all run serially.
BUG=skia:
R=junov@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/271483002
git-svn-id: http://skia.googlecode.com/svn/trunk@14603 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-06 21:43:37 +00:00
commit-bot@chromium.org
1b546462bb
SaveLayer is not a draw.
...
Will keep thinking about the best way to handle this:
- leave as-is
- tag the records
- some range check on T::kType
- just list all Draw* in IsDraw
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/269543023
git-svn-id: http://skia.googlecode.com/svn/trunk@14602 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-06 21:32:19 +00:00
commit-bot@chromium.org
0205aba7d5
Infrastructure changes to support pull-saveLayers-forward task
...
This is split out of (First pass at pre-rendering saveLayers for GPU - https://codereview.chromium.org/261663003/ ).
It mainly:
Moves NeedsDeepCopy to somewhere more accessible (so GrPictureUtils.cpp can use it)
Moves ComputeAccelDataKey somewhere more accessible (so GPUPicture test can use it)
Adds unit test for picture saveLayer analysis (done in EXPERIMENTAL_optimize)
Adds new fields to SaveLayerInfo that are needed to pull forward layers
Committed: http://code.google.com/p/skia/source/detail?r=14571
R=bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/266203003
git-svn-id: http://skia.googlecode.com/svn/trunk@14586 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-06 12:02:22 +00:00
commit-bot@chromium.org
73fffeb83a
Add pattern matchers for SkRecord
...
This is a mid-level library for finding patterns of commands in an SkRecord. At the API level, it's a bit regex inspired. Some examples:
- Pattern1<Is<DrawRect>> matches a single DrawRect
- Pattern1<Star<Is<DrawRect>>> matches 0 or more DrawRects
- Pattern2<Is<ClipRect>, Is<DrawRect>> matches a single clip rect followed by a single draw rect
- Pattern3<Is<Save>, Star<IsDraw>, Is<Restore>> matches a single Save, followed by any number of Draws, followed by Restore
- Pattern1<Or<Is<DrawRect>, Is<ClipRect>>> matches a DrawRect or a ClipRect
- Pattern1<Not<Is<ClipRect>>> matches a command that's notClipRect.
Once you have a pattern, you can call .search() on it to step through ranges of matching commands. This means patterns can replace most of the custom iteration logic for optimization passes: the generic pattern searching steps through all the optimization candidates, which optimization-specific code further inspects and mutates.
SkRecordTraits is now unused. Bye bye!
Generated code and performance of SkRecordOpts is very similar to what it was before. (I had to use SK_ALWAYS_INLINE in a few places to make this so.)
BUG=skia:2378
R=fmalita@chromium.org , bungeman@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/263063002
git-svn-id: http://skia.googlecode.com/svn/trunk@14582 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-05 21:59:52 +00:00
robertphillips@google.com
300c6060c8
Revert r14571 (Infrastructure changes to support pull saveLayers forward task - https://codereview.chromium.org/266203003 ) due to breaking Android unit tests
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14578 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-05 19:24:23 +00:00
commit-bot@chromium.org
11c6b39cfa
Adds a mechanism for GrCacheable objects to notify the resource cache
...
when their size has changed. GrResourceCacheEntry now holds a
reference to the cache, and a cached value of the resource's most
recent size.
Also utilizes this new functionality for mipmaps, and adds a test for
changing resource sizes.
R=bsalomon@google.com , robertphillips@google.com
Author: cdalton@nvidia.com
Review URL: https://codereview.chromium.org/257093002
git-svn-id: http://skia.googlecode.com/svn/trunk@14576 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-05 19:09:13 +00:00
commit-bot@chromium.org
6b392b6111
Infrastructure changes to support pull-saveLayers-forward task
...
This is split out of (First pass at pre-rendering saveLayers for GPU - https://codereview.chromium.org/261663003/ ).
It mainly:
Moves NeedsDeepCopy to somewhere more accessible (so GrPictureUtils.cpp can use it)
Moves ComputeAccelDataKey somewhere more accessible (so GPUPicture test can use it)
Adds unit test for picture saveLayer analysis (done in EXPERIMENTAL_optimize)
Adds new fields to SaveLayerInfo that are needed to pull forward layers
R=bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/266203003
git-svn-id: http://skia.googlecode.com/svn/trunk@14571 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-05 18:06:14 +00:00
commit-bot@chromium.org
7066bf3fbf
Update tests/RecordOptsTest.cpp
...
- use REPORTER_ASSERT;
- assert the type first, then the pointer != NULL. This helps explain why ptr == NULL;
- add a simpler NoopSaveRestore test case, which can help debugging failures of the larger test case.
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/264043012
git-svn-id: http://skia.googlecode.com/svn/trunk@14570 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-05 17:09:05 +00:00
reed@google.com
3253f83605
fix double->float warning
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14568 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-05 16:32:16 +00:00
commit-bot@chromium.org
4e332f82fc
add rounding-using-doubles methods on SkScalar and SkRect
...
Inspired by the excellent repro case for https://crbug.com/364224
patch from issue 265933010
BUG=skia:
R=bungeman@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/267003002
git-svn-id: http://skia.googlecode.com/svn/trunk@14566 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-05 16:04:42 +00:00