aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/record
Commit message (Collapse)AuthorAge
* Try out SkMatrix::Concat.Gravatar commit-bot@chromium.org2014-05-19
| | | | | | | | | | | | | 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
* Don't clobber initial transform with SetMatrix.Gravatar commit-bot@chromium.org2014-05-19
| | | | | | | | | | | 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
* Effects on the paint also prevent layer merge optimization.Gravatar commit-bot@chromium.org2014-05-14
| | | | | | | | | | | BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/287953002 git-svn-id: http://skia.googlecode.com/svn/trunk@14743 2bbb7eff-a529-9590-31e7-b0007b416f81
* DM: Add --skps.Gravatar commit-bot@chromium.org2014-05-14
| | | | | | | | | | | | | | | This does render_pictures, plus checks SkRecord optimizations. Disable an SkRecord optimization that draws several bot SKPs wrong. (To be investigated.) BUG=skia:2378 R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/270543004 git-svn-id: http://skia.googlecode.com/svn/trunk@14739 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add timing to dump_record.Gravatar commit-bot@chromium.org2014-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prints microsecond timing for each command in the left-hand column: optimized flat/http___mobile_news_sandbox_google_com_news_pt0_scroll_layer_7.skp 4.0 1 Save 2075.0 2 DrawRect 104.0 3 BoundedDrawPosTextH 135.4 4 DrawRect 9.4 5 DrawRect 5.6 6 DrawRect 8.2 7 DrawRect 6.8 8 DrawRect ... (I'm sure Rietveld will just mangle the crap out of that. It's helpfully right-aligned.) To do this, I made Draw from SkRecordDraw Skia-public as SkRecords::Draw, and time it command-by-command. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/272723007 git-svn-id: http://skia.googlecode.com/svn/trunk@14672 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split Star into Star (stores nothing) and List (stores matches).Gravatar commit-bot@chromium.org2014-05-08
| | | | | | | | | | | | | | | | | | | 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
* Noop away PushCull/PopCull pairs with nothing between them.Gravatar commit-bot@chromium.org2014-05-08
| | | | | | | | | | | 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
* Move paints to the front of draw structs.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | 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
* Convert all SkRecordPattern matchers into SkRecord mutators.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | | | - 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
* Statically initialize those zero-size singletons.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | This way GCC/Clang don't generate the magic static code to call the pointless T::T() once in a threadsafe way. = {} is plenty initialized. BUG=skia:2378 Committed: http://code.google.com/p/skia/source/detail?r=14623 R=bungeman@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/270353003 git-svn-id: http://skia.googlecode.com/svn/trunk@14626 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Statically initialize those zero-size singletons. ↵Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/270353003/) Reason for revert: breaks windows bots Original issue's description: > Statically initialize those zero-size singletons. > > This way GCC/Clang don't generate the magic static code to call the > pointless T::T() once in a threadsafe way. = {} is plenty initialized. > > BUG=skia:2378 > > Committed: http://code.google.com/p/skia/source/detail?r=14623 R=bungeman@google.com, mtklein@chromium.org TBR=bungeman@google.com, mtklein@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia:2378 Author: mtklein@google.com Review URL: https://codereview.chromium.org/270363005 git-svn-id: http://skia.googlecode.com/svn/trunk@14625 2bbb7eff-a529-9590-31e7-b0007b416f81
* Statically initialize those zero-size singletons.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | This way GCC/Clang don't generate the magic static code to call the pointless T::T() once in a threadsafe way. = {} is plenty initialized. BUG=skia:2378 R=bungeman@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/270353003 git-svn-id: http://skia.googlecode.com/svn/trunk@14623 2bbb7eff-a529-9590-31e7-b0007b416f81
* Partially restore small-T optimization for very small (empty) T.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | This is particularly helpful for SkRecord::replace<NoOp>, which now doesn't go off and allocate a pointless byte. BUG=skia:2378 R=fmalita@chromium.org, bungeman@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/269543025 git-svn-id: http://skia.googlecode.com/svn/trunk@14622 2bbb7eff-a529-9590-31e7-b0007b416f81
* save-draw*-restore -> noop-draw*-noopGravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | 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
* Add SaveLayer-Draw-Restore optimization.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | | | | 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
* SaveLayer is not a draw.Gravatar commit-bot@chromium.org2014-05-06
| | | | | | | | | | | | | | | | | 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
* Add pattern matchers for SkRecordGravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Backfill unit tests for SkRecordGravatar commit-bot@chromium.org2014-04-30
| | | | | | | | | | | BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/251133008 git-svn-id: http://skia.googlecode.com/svn/trunk@14455 2bbb7eff-a529-9590-31e7-b0007b416f81
* Don't bother doing the empty clip check in SkRecordDraw.Gravatar commit-bot@chromium.org2014-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | On Mike's suggestion, I tested out not doing any empty-clip check at all in SkRecordDraw, given that mostly we'll do that again anyway inside SkCanvas. Most SKPs are identical to the status quo, whether bot or silk, played back in tiles or full. Average playback performance, both arithmetic and geometric mean, is also unchanged. A handful of SKPs do draw faster or slower reliably, particularly when tiled. E.g. a cnn tile draws about 40% faster, a cuteoverload tile about 20% slower. Their profiles look pretty much the same before and after, so I can't really explain the changes. I'd say, given that performance is mostly identical and very identical in bulk, we might as well remove this code. It's nice to keep SkRecordDraw as dumb as possible. BUG=skia:2378 R=reed@google.com, fmalita@chromium.org, mtklein@google.com, borenet@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/258183002 git-svn-id: http://skia.googlecode.com/svn/trunk@14433 2bbb7eff-a529-9590-31e7-b0007b416f81
* Simplify empty-clip check.Gravatar commit-bot@chromium.org2014-04-28
| | | | | | | | | | | | | | | | No measurable playback speed difference, but simpler code. This makes sense: I'm seeing SkRecordDraw at ~0.25% of playback cost. We can pretty much do whatever we want in there for free if it helps avoid real work. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com, reed@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/260143002 git-svn-id: http://skia.googlecode.com/svn/trunk@14419 2bbb7eff-a529-9590-31e7-b0007b416f81
* Start using type traits in src/record instead of macros.Gravatar commit-bot@chromium.org2014-04-28
| | | | | | | | | | | | | Simplified skip logic by always running clip commands. No performance difference on bot or silk SKPs. BUG=skia:2378 R=bungeman@google.com, fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/258693006 git-svn-id: http://skia.googlecode.com/svn/trunk@14410 2bbb7eff-a529-9590-31e7-b0007b416f81
* Proof of adoption in SkRecord::replace.Gravatar commit-bot@chromium.org2014-04-24
| | | | | | | | | | | | | | | | | | It used to be an unenforced requirement that callers take ownership of the command which was replaced when calling SkRecord::replace. Now we can enforce it, by splitting replace into two modes: - T* replace(i): always destroys the existing command for you - T* replace(i, proofOfAdoption): proofOfAdoption is checked to make sure the caller has adopted the existing command before replacing it. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/248053008 git-svn-id: http://skia.googlecode.com/svn/trunk@14352 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rearrange SkRecord public API to fit better with cc/resources/pictureGravatar commit-bot@chromium.org2014-04-24
| | | | | | | | | | | BUG=skia:2378 R=reed@google.com, danakj@chromium.org, enne@chromium.org, mtklein@google.com, robertphillips@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/248033002 git-svn-id: http://skia.googlecode.com/svn/trunk@14351 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make drawText calls non-virtual, to ease SkFont and TextBlob ↵Gravatar reed@google.com2014-04-23
| | | | | | | | | | | | | | | (https://codereview.chromium.org/243853006/)" associated chrome change (to be committed with DEPS roll) https://codereview.chromium.org/248693002/ This reverts commit bfaceb53f58c9625b5471fcff35b5ca9ca3ae29c. TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/248083002 git-svn-id: http://skia.googlecode.com/svn/trunk@14321 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of make drawText calls non-virtual, to ease SkFont and TextBlob ↵Gravatar commit-bot@chromium.org2014-04-22
| | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/243853006/) Reason for revert: need to test more the code-path where we don't opt into the new virtuals Original issue's description: > make drawText calls non-virtual, to ease SkFont and TextBlob > > BUG=skia: > > Committed: http://code.google.com/p/skia/source/detail?r=14307 R=robertphillips@google.com TBR=robertphillips@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: reed@google.com Review URL: https://codereview.chromium.org/247983003 git-svn-id: http://skia.googlecode.com/svn/trunk@14314 2bbb7eff-a529-9590-31e7-b0007b416f81
* make drawText calls non-virtual, to ease SkFont and TextBlobGravatar commit-bot@chromium.org2014-04-22
| | | | | | | | | | | BUG=skia: R=robertphillips@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/243853006 git-svn-id: http://skia.googlecode.com/svn/trunk@14307 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix build: Windows has dibs on IGNOREGravatar commit-bot@chromium.org2014-04-22
| | | | | | | | | | | | | | | Also, make sure to undef macros after we're done with them. BUG=skia: NOTRY=true R=bungeman@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/247573003 git-svn-id: http://skia.googlecode.com/svn/trunk@14305 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactor SkRecord opts, converting playback optimizations where possible.Gravatar commit-bot@chromium.org2014-04-22
| | | | | | | | | | | | | | | | | This adds back two optimizations from SkPicture: drawPosText strength reduction to drawPosTextH, and pointless save-foo-restore blocks are noop'd away. The small-T optimization in SkRecord gets in the way of implementing replace(), so I removed it. Just to keep the API focused, I removed the methods on SkRecord that iterate over i for you; it's just as efficient to do it yourself, and all of the interesting code does its own custom iteration. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/245853002 git-svn-id: http://skia.googlecode.com/svn/trunk@14300 2bbb7eff-a529-9590-31e7-b0007b416f81
* anticipate more optimizations by renaming some files and methodsGravatar commit-bot@chromium.org2014-04-21
| | | | | | | | | | | | | also, call the new SkRecordOptimize in bench_playback BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/243243003 git-svn-id: http://skia.googlecode.com/svn/trunk@14277 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkRecord bug fixesGravatar commit-bot@chromium.org2014-04-15
| | | | | | | | | | | | | | | | | | | 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
* SkRecordDraw: use SkCanvas::quickRejectY for text drawsGravatar commit-bot@chromium.org2014-04-14
| | | | | | | | | | | | | | | 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
* SkRecord: turn on cull annotation pass in public API.Gravatar commit-bot@chromium.org2014-04-14
| | | | | | | | | | | | | | | 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
* Mark our territory with (C).Gravatar commit-bot@chromium.org2014-04-11
| | | | | | | | | | | 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
* Add a focused public API for src/record.Gravatar commit-bot@chromium.org2014-04-10
| | | | | | | | | | | BUG=skia:2378 R=reed@google.com, robertphillips@google.com, mtklein@google.com, fmalita@chromium.org Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/233053005 git-svn-id: http://skia.googlecode.com/svn/trunk@14146 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkRecordDraw: don't bother clipping an empty clip down furtherGravatar commit-bot@chromium.org2014-04-10
| | | | | | | | | | | BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com, fmalita@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/231933003 git-svn-id: http://skia.googlecode.com/svn/trunk@14126 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkRecordDraw: skip draw ops when the clip is emptyGravatar commit-bot@chromium.org2014-04-09
| | | | | | | | | | | | | | - Adds tests for SkRecordDraw's two main features: cull- and clip- based skipping. - Adds full SkCanvas semantic mode to SkRecorder, so it can be used as a target for SkRecordDraw. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/231653002 git-svn-id: http://skia.googlecode.com/svn/trunk@14124 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-04-09
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@14102 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkRecord: make culling work if SkRecordAnnotateCullingPairs is called.Gravatar commit-bot@chromium.org2014-04-08
| | | | | | | | | | | | | | | | - Allow stateful functors; allow visit()/mutate() at a given index; add count(). - Annotate cull push/pop pairs on the PushCull records. (tested) - Use those annotations to skip ahead in SkRecordDraw. (not yet tested beyond dm --skr) - Make SkRecordDraw a function, move its implementation to a .cpp. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/229523002 git-svn-id: http://skia.googlecode.com/svn/trunk@14101 2bbb7eff-a529-9590-31e7-b0007b416f81
* Start on some unwritten SkRecord TODOs:Gravatar commit-bot@chromium.org2014-04-08
| | | | | | | | | | | | | | - add SK_OVERRIDE for SkCanvas methods in SkRecorder - start on unit tests, here just for SkRecord itself BUG=skia:2378 R=fmalita@google.com, mtklein@google.com, fmalita@chromium.org Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/228723003 git-svn-id: http://skia.googlecode.com/svn/trunk@14097 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add push/pop cull to SkRecord.Gravatar commit-bot@chromium.org2014-04-08
| | | | | | | | | | | BUG=skia:2378 R=fmalita@google.com, mtklein@google.com, fmalita@chromium.org Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/224723026 git-svn-id: http://skia.googlecode.com/svn/trunk@14091 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkRecord strawmanGravatar commit-bot@chromium.org2014-04-01
Record performance as measured by bench_record (out/Release/bench_record --skr) improves by at least 1.9x, at most 6.7x, arithmetic mean 2.6x, geometric mean 3.0x. So, good. Correctness as measured by DM (out/Debug/dm --skr) is ~ok. One GM (shadertext2) fails because we're assuming all paint effects are immutable, but SkShaders are still mutable. To do after this CL: - measure playback speed - catch up feature-wise to SkPicture - match today's playback speed BUG=skia: R=robertphillips@google.com, bsalomon@google.com, reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/206313003 git-svn-id: http://skia.googlecode.com/svn/trunk@14010 2bbb7eff-a529-9590-31e7-b0007b416f81