aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
Commit message (Collapse)AuthorAge
* Sketch splitting SkPicture into an interface and SkBigPicture.Gravatar mtklein2015-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | Adds small pictures for drawRect(), drawTextBlob(), and drawPath(). These cover about 89% of draw calls from Blink SKPs, and about 25% of draw calls from our GMs. SkPicture handles: - serialization and deserialization - unique IDs Everything else is left to the subclasses: - playback(), cullRect() - hasBitmap(), hasText(), suitableForGPU(), etc. - LayerInfo / AccelData if applicable. The time to record a 1-op picture improves a good chunk (2 mallocs to 1), and the time to record a 0-op picture greatly improves (2 mallocs to none): picture_overhead_draw: 450ns -> 350ns picture_overhead_nodraw: 300ns -> 90ns BUG=skia: Review URL: https://codereview.chromium.org/1112523006
* use floor for mip-level choiceGravatar reed2015-05-06
| | | | | | | | this chrome change must land first: https://codereview.chromium.org/1131663002/ BUG=skia: Review URL: https://codereview.chromium.org/1131613002
* Make drawImage a virtual on SkDeviceGravatar reed2015-05-06
| | | | | | | | This reverts commit 06dad4b92f1fcb593bc686f9537d3e0d866b2241. BUG=485243 Review URL: https://codereview.chromium.org/1129843003
* Revert of Revert of Revert of Make drawImage a virtual on SkDevice (patchset ↵Gravatar reed2015-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #1 id:1 of https://codereview.chromium.org/1126273002/) Reason for revert: still breaking webglconformance Original issue's description: > Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1124003002/) > > Reason for revert: > retry now that some fixes (onDrawImage overrides) have landed in chrome/blink > > Original issue's description: > > Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/) > > > > Reason for revert: > > speculative to see if it unblocks DEPS roll > > > > Original issue's description: > > > Make drawImage a virtual on SkDevice > > > > > > Now with patch for SkDeferredCanvas > > > > > > This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57. > > > > > > BUG=skia: > > > > > > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8 > > > > TBR=robertphillips@google.com,mtklein@google.com,reed@google.com > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=skia: > > > > Committed: https://skia.googlesource.com/skia/+/3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b > > TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/620ba3afe09d4173c87537040fe50c1c1895fb1a TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1127993004
* Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 ↵Gravatar reed2015-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1124003002/) Reason for revert: retry now that some fixes (onDrawImage overrides) have landed in chrome/blink Original issue's description: > Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/) > > Reason for revert: > speculative to see if it unblocks DEPS roll > > Original issue's description: > > Make drawImage a virtual on SkDevice > > > > Now with patch for SkDeferredCanvas > > > > This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57. > > > > BUG=skia: > > > > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8 > > TBR=robertphillips@google.com,mtklein@google.com,reed@google.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1126273002
* Make SkFunction copyable so it can go in containers.Gravatar mtklein2015-05-06
| | | | | | | | | | | | This totally overhauls the implementation to use ordinary inheritance-based type erasure. I give up for now getting my manual vtable shenanigans to work with MSVC. Still those same "expected ; before ), also expected ) before ;" errors. I added support for uninitialized SkFunctions and operator=(), because it was fairly straightforward with this implementation. The main downside here is that I've removed the inline implementation. All SkFunctions involve a heap allocation, even when just wrapping function pointers. BUG=skia: Review URL: https://codereview.chromium.org/1056673002
* Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of ↵Gravatar reed2015-05-05
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1122643005/) Reason for revert: speculative to see if it unblocks DEPS roll Original issue's description: > Make drawImage a virtual on SkDevice > > Now with patch for SkDeferredCanvas > > This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8 TBR=robertphillips@google.com,mtklein@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1124003002
* Make drawImage a virtual on SkDeviceGravatar reed2015-05-05
| | | | | | | | | | Now with patch for SkDeferredCanvas This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57. BUG=skia: Review URL: https://codereview.chromium.org/1122643005
* remove dead code behind BOOL_ONGETINFOGravatar reed2015-05-05
| | | | | | | | | need this to land in chrome first https://codereview.chromium.org/1125573002 BUG=skia: TBR= Review URL: https://codereview.chromium.org/1123473004
* remove dead SK_SUPPORT_LEGACY_CUBIC_CHOPPER codeGravatar reed2015-05-05
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1116263005
* Revert of Make drawImage a virtual on SkDevice (patchset #3 id:40001 of ↵Gravatar reed2015-05-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/11188… (patchset #2 id:20001 of https://codereview.chromium.org/1122813002/) Reason for revert: did not update DeferredCanvas Original issue's description: > Make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/1118823004/)" > > Fixed serialization from prev CL > > This reverts commit 973d1f1f60f2710a268a3165aa4f3460502d4be5. > > BUG=skia:3803 > TBR= > > Committed: https://skia.googlesource.com/skia/+/5392785080001fe737fac9e5801fc2127a78d4fb TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:3803 Review URL: https://codereview.chromium.org/1123743006
* Fix typeface ids on Mac.Gravatar bungeman2015-05-04
| | | | | | | | | | The current typeface ids with CoreText rely on ATS (which causes memory use issues) or font data (which is unreliable, and will not work with axes and synthetics). This changes the code so that stream fonts never end up in the cache and always get a unique id, and system fonts will be given an id as they are used. Review URL: https://codereview.chromium.org/1125763002
* Make drawImage a virtual on SkDevice (patchset #3 id:40001 of ↵Gravatar reed2015-05-04
| | | | | | | | | | | | | https://codereview.chromium.org/1118823004/)" Fixed serialization from prev CL This reverts commit 973d1f1f60f2710a268a3165aa4f3460502d4be5. BUG=skia:3803 TBR= Review URL: https://codereview.chromium.org/1122813002
* Revert of make drawImage a virtual on SkDevice (patchset #3 id:40001 of ↵Gravatar reed2015-05-04
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1118823004/) Reason for revert: need to make serialization work for pictures, now that images are "real" Original issue's description: > make drawImage a virtual on SkDevice > > default impl will turn the Image into a (raster) bitmap and call drawBitmap. > > BUG=skia:3803 > > Committed: https://skia.googlesource.com/skia/+/f603fb3d0e5fa57c3f228d66945bef198b001135 TBR=bsalomon@google.com,robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:3803 Review URL: https://codereview.chromium.org/1122803002
* make drawImage a virtual on SkDeviceGravatar reed2015-05-04
| | | | | | | | default impl will turn the Image into a (raster) bitmap and call drawBitmap. BUG=skia:3803 Review URL: https://codereview.chromium.org/1118823004
* SkPictureShader: scale down if width or height is larger than maxTextureSizeGravatar gen.kim2015-05-03
| | | | | | | | | | Grdient renders black because of failure onCreateTexture if one of width or height is larger than maxTextureSize with --force-gpu-rasterization. BUG=chromium:473166 Review URL: https://codereview.chromium.org/1101513004
* remove unneeded SK_SUPPORT_LEGACY_IMAGEFILTER_TO_COLORFILTER flagGravatar reed2015-05-02
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1120033003
* clean up pre-storage in canvasGravatar reed2015-05-01
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1117213003
* SkTime: return timezone information; format in ISO-8601Gravatar halcanary2015-05-01
| | | | | | | | | | | Motivation: PDF/A metadata will need the creation date embedded in it. Also, GetDateTime returns local time in Win32. This now behaves the same as on Unix systems. BUG=skia:3110 Review URL: https://codereview.chromium.org/1109593002
* This replaces the texture creation/caching functions on GrContext with a ↵Gravatar bsalomon2015-04-30
| | | | | | GrTextureProvider interface. The goal is to pass this narrowly focused object in places that currently take a GrContext but don't need and shouldn't use its other methods. It also has an extended private interface for interacting with non-texture resource types. Review URL: https://codereview.chromium.org/1107973004
* add heuristic to pour small pictures into recordings, rather than ref'ingGravatar reed2015-04-30
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1118693003
* Add missing include to SkPictureContentInfo.Gravatar mtklein2015-04-30
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1113023003
* use pathops utils to improve precision of cubic chopping in scan converterGravatar reed2015-04-30
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1113963002
* Fix build warning: 'this' pointer cannot be null in well-defined C++ code; ↵Gravatar dongseong.hwang2015-04-30
| | | | | | comparison may be assumed to always evaluate to true [-Wtautological-undefined-compare] Review URL: https://codereview.chromium.org/1109933003
* Fix build warning: reference cannot be bound to dereferenced null pointer in ↵Gravatar dongseong.hwang2015-04-30
| | | | | | well-defined C++ code; comparison may be assumed to always evaluate to true [-Wtautological-undefined-compare] Review URL: https://codereview.chromium.org/1110353003
* Use colorfilter instead of imagefilter when possibleGravatar reed2015-04-29
| | | | | | | | needs https://codereview.chromium.org/1115713003 to land first in chrome BUG=skia: Review URL: https://codereview.chromium.org/986353002
* onCreateDevice -> NULL now means the caller should create its own (bitmap) ↵Gravatar reed2015-04-29
| | | | | | | | device BUG=skia: Review URL: https://codereview.chromium.org/1116453002
* minor fixes to cubics code and overall alignment of how bounds and tops are ↵Gravatar caryclark2015-04-29
| | | | | | | | | | | | computed for all curve types All but 17 extended tests work. A helper function is privately added to SkPath.h to permit a test to modify a given point in a path. BUG=skia:3588 Review URL: https://codereview.chromium.org/1107353004
* Straighten out SkPicture::AccelData APIs.Gravatar mtklein2015-04-29
| | | | | | | | | | Must have been we needed them to be weird (mutable, const setter) before. It doesn't look like that's necessary now... we can just pass it to the constructor. BUG=skia: Review URL: https://codereview.chromium.org/1112833003
* SkRWBuffer for thread-safe 'stream' sharingGravatar reed2015-04-28
| | | | | | | | | | | | | WIP - Can accumulate (write) data in one thread, and share snapshots of it in other threads ... e.g. network accumulates image data, and periodically we want to decode/draw it - If this sort of thing sticks, should we promote SkData to have the same generality as SkRBuffer? BUG=skia: TBR= Review URL: https://codereview.chromium.org/1106113002
* Fix SkTDynamicHash.h:183:29: warning: equality comparison with extraneous ↵Gravatar dongseong.hwang2015-04-28
| | | | | | parentheses [-Wparentheses-equality] Review URL: https://codereview.chromium.org/1115433004
* Decrement SkCanvas::fDeferredSaveCount in doSave()Gravatar fmalita2015-04-28
| | | | | | | | | | | | We're currently decrementing early in checkForDeferredSave(), but that means we break the getSaveCount() invariant during willSave() dispatch. Instead, we can defer to doSave(), until after willSave() is called. This allows overriders to call getSaveCount(). R=reed@google.com,robertphillips@google.com Review URL: https://codereview.chromium.org/1113603002
* De-proc Color32Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | | | | | | Also strips SK_SUPPORT_LEGACY_COLOR32_MATH, which is no longer needed. Seems handy to have SkTypes include the relevant intrinsics when we know we've got them, but I'm not married to it. Locally this looks like a pointlessly small perf win, but I'm mostly keen to get all the code together. BUG=skia: Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b Committed: https://skia.googlesource.com/skia/+/d65dc0cedd5b50dd407b6ff8fdc39123f11511cc CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Mips-Debug-Android-Trybot Review URL: https://codereview.chromium.org/1104183004
* Revert of De-proc Color32 (patchset #5 id:80001 of ↵Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1104183004/) Reason for revert: duh Original issue's description: > De-proc Color32 > > Also strips SK_SUPPORT_LEGACY_COLOR32_MATH, > which is no longer needed. > > Seems handy to have SkTypes include the relevant intrinsics when > we know we've got them, but I'm not married to it. > > Locally this looks like a pointlessly small perf win, but I'm mostly > keen to get all the code together. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b > > Committed: https://skia.googlesource.com/skia/+/d65dc0cedd5b50dd407b6ff8fdc39123f11511cc TBR=reed@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1102363006
* De-proc Color32Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | | Also strips SK_SUPPORT_LEGACY_COLOR32_MATH, which is no longer needed. Seems handy to have SkTypes include the relevant intrinsics when we know we've got them, but I'm not married to it. Locally this looks like a pointlessly small perf win, but I'm mostly keen to get all the code together. BUG=skia: Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b Review URL: https://codereview.chromium.org/1104183004
* Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARMGravatar mtklein2015-04-27
| | | | | | | | | | | | This is a logical no-op. Everything was using the equivalent of rsqrt1() before, and is now after. BUG=skia: Committed: https://skia.googlesource.com/skia/+/9de16283fdc8cc0d31a84f503578d0ecea4e8297 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot Review URL: https://codereview.chromium.org/1109913002
* Revert of De-proc Color32 (patchset #4 id:60001 of ↵Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1104183004/) Reason for revert: MIPS Original issue's description: > De-proc Color32 > > Also strips SK_SUPPORT_LEGACY_COLOR32_MATH, > which is no longer needed. > > Seems handy to have SkTypes include the relevant intrinsics when > we know we've got them, but I'm not married to it. > > Locally this looks like a pointlessly small perf win, but I'm mostly > keen to get all the code together. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b TBR=reed@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1108163002
* De-proc Color32Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | Also strips SK_SUPPORT_LEGACY_COLOR32_MATH, which is no longer needed. Seems handy to have SkTypes include the relevant intrinsics when we know we've got them, but I'm not married to it. Locally this looks like a pointlessly small perf win, but I'm mostly keen to get all the code together. BUG=skia: Review URL: https://codereview.chromium.org/1104183004
* Revert of Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision ↵Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | | | | | | | | | on ARM (patchset #2 id:20001 of https://codereview.chromium.org/1109913002/) Reason for revert: arm64 typos Original issue's description: > Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM > > This is a logical no-op. Everything was using the equivalent of rsqrt1() before, and is now after. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/9de16283fdc8cc0d31a84f503578d0ecea4e8297 TBR=reed@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1105233003
* Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARMGravatar mtklein2015-04-27
| | | | | | | | This is a logical no-op. Everything was using the equivalent of rsqrt1() before, and is now after. BUG=skia: Review URL: https://codereview.chromium.org/1109913002
* Mike's radial gradient CL with better float -> int.Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | | | patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001) This looks quite launchable. radial_gradient3, min of 100 samples: N5: 985µs -> 946µs MBP: 395µs -> 279µs On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time. Is that something we could do in float math rather than with a lookup table? BUG=skia: CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot,Build-Ubuntu-GCC-Arm7-Release-Android_NoNeon-Trybot Committed: https://skia.googlesource.com/skia/+/abf6c5cf95e921fae59efb487480e5b5081cf0ec Review URL: https://codereview.chromium.org/1109643002
* Revert of Mike's radial gradient CL with better float -> int. (patchset #7 ↵Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:120001 of https://codereview.chromium.org/1109643002/) Reason for revert: compile failures. Original issue's description: > Mike's radial gradient CL with better float -> int. > > patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001) > > This looks quite launchable. radial_gradient3, min of 100 samples: > N5: 985µs -> 946µs > MBP: 395µs -> 279µs > > On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time. Is that something we could do in float math rather than with a lookup table? > > BUG=skia: > > CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Debug-Trybot,Test-Android-GCC-Nexus9-CPU-Denver-Arm64-Debug-Trybot > > Committed: https://skia.googlesource.com/skia/+/abf6c5cf95e921fae59efb487480e5b5081cf0ec TBR=reed@google.com,robertphillips@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1109883003
* Mike's radial gradient CL with better float -> int.Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001) This looks quite launchable. radial_gradient3, min of 100 samples: N5: 985µs -> 946µs MBP: 395µs -> 279µs On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time. Is that something we could do in float math rather than with a lookup table? BUG=skia: CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Debug-Trybot,Test-Android-GCC-Nexus9-CPU-Denver-Arm64-Debug-Trybot Review URL: https://codereview.chromium.org/1109643002
* Reduce ref counting in SkPictureRecorder.Gravatar mtklein2015-04-27
| | | | | | | | | | | | | | | | This may be a small help to slimming paint: picture_overhead_draw 1.25us -> 1.22us 0.98x picture_overhead_nodraw 318ns -> 276ns 0.87x It certainly cannot hurt performance. BUG=chromium:470553 TBR=reed@google.com No public API changes. Review URL: https://codereview.chromium.org/1098183003
* Reduce sizeof(SkPicture::Analysis) from 24 bytes to 2 bytes.Gravatar jbroman2015-04-27
| | | | | | | | | | | | | | | | | | This saves "up to" 22 bytes per SkPicture. Due to alignment, this reduces sizeof(SkPicture): - from 88 to 72 bytes on Linux x64 - from 68 to 48 bytes on Android (with Chrome's build settings) It also somewhat simplifies the GPU veto logic. BUG=skia: [mtklein] No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/1060863004
* Cleanup: Remove unnecessary double-semicolons.Gravatar tfarina2015-04-27
| | | | | | | | | | | | | | | The entries were found by the following command line: $ find . -regex ".*\.[cChH]\(pp\)?" | xargs git grep -e ';;' --and --not -e 'for *(.*;;' Which is a combination of http://stackoverflow.com/a/3858879 and http://gitster.livejournal.com/27674.html BUG=None R=mtklein@google.com Review URL: https://codereview.chromium.org/1088763005
* Fix some lingering typosGravatar robertphillips2015-04-24
| | | | Review URL: https://codereview.chromium.org/1101293003
* Remove MSAA check from Ganesh veto (dashed paths are no longer slow).Gravatar senorblanco2015-04-22
| | | | | | | R=egdaniel@google.com BUG=skia: Review URL: https://codereview.chromium.org/1098753004
* O(1) SkPictureUtils::ApproxBytesUsed()Gravatar mtklein2015-04-21
| | | | | | | | | | Chrome wants to call this more often, and it's quite slow today. Seems like this could be clearer if SkPictureUtils::ApproxBytesUsed() were SkPicture::approxBytesUsed(). BUG=chromium:471873 Review URL: https://codereview.chromium.org/1090943004
* Revert of Convert Color32 code to perfect blend. (patchset #6 id:100001 of ↵Gravatar mtklein2015-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1098913002/) Reason for revert: Xfermode_SrcOver not looking encouraging. Up to 50% regressions. https://perf.skia.org/#3242 Original issue's description: > Convert Color32 code to perfect blend. > > Before we commit to blend_256_round_alt, let's make sure blend_perfect is > really slower in practice (i.e. regresses on perf.skia.org). > > blend_perfect is really the most desirable algorithm if we can afford it. Not > only is it correct, but it's easy to think about and break into correct pieces: > for instance, its div255() doesn't require any coordination with the multiply. > > This looks like a 30% hit according to microbenches. That said, microbenches > said my previous change would be a 20-25% perf improvement, but it didn't end > up showing a significant effect at a high level. > > As for correctness, I see a bunch of off-by-1 compared to blend_256_round_alt > (exactly what we'd expect), and one off-by-3 in a GM that looks like it has a > bunch of overdraw. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/61221e7f87a99765b0e034020e06bb018e2a08c2 TBR=reed@google.com,fmalita@chromium.org,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1083923006