aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
Commit message (Collapse)AuthorAge
* Revert "Add color spin test for SkColorSpaceXformCanvas"Gravatar Eric Boren2017-03-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cb01aec63bcb3dee52afcf3605bcd64166b873c0. Reason for revert: Breaks Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE Original change's description: > Add color spin test for SkColorSpaceXformCanvas > > Also changes behavior to treat nullptr srcs as sRGB. > > Testing locally, it looks like 353 gms have no diffs from 8888. > There are 269 diffs - some are fine (gms that do color space stuff) > and some are bugs. > > BUG=skia: > > Change-Id: I55c2825f4f4b857e0b0a0ec050c6db82ac881492 > Reviewed-on: https://skia-review.googlesource.com/9738 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Matt Sarett <msarett@google.com> > TBR=mtklein@google.com,msarett@google.com,brianosman@google.com,reviews@skia.org # Not skipping CQ checks because original CL landed > 1 day ago. BUG=skia: Change-Id: I70bb69f747b863d267494e37a60888a51ab0184c Reviewed-on: https://skia-review.googlesource.com/9823 Reviewed-by: Eric Boren <borenet@google.com> Commit-Queue: Eric Boren <borenet@google.com>
* More SkVertices implementation workGravatar Mike Reed2017-03-17
| | | | | | | | | | | | | | | | - change virtuals to take const SkVertices*, as we do for TextBobs and Images - override onDrawVerticesObject in recording canvases - deserialize raw-vertices into SkVertices object Possibly a follow-on would intercept the raw-form directly in canvas, and remove the virtual, and only support the object form. BUG=skia:6366 Change-Id: I57a932667ccb3b3b004beb802ac3ae6898e3c6e0 Reviewed-on: https://skia-review.googlesource.com/9633 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* remove unused VerticesFlagsGravatar Mike Reed2017-03-16
| | | | | | | | | | | | Deferring removing the flags parameter from the virtuals until a later CL (as it collides with another related CL) BUG=skia:6366 Change-Id: I817fae3df03ecebe5ec3532f691ed06deab890e6 Reviewed-on: https://skia-review.googlesource.com/9739 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert[4] "store vertices arrays inline with object""""Gravatar Mike Reed2017-03-16
| | | | | | | | | | | This reverts commit 0c492cfe1713d6895d1d513e754d938ff0faa5e5. BUG=skia: Change-Id: I63bce834fee6dd6f043b3889ac4ec287dd03d2e6 Reviewed-on: https://skia-review.googlesource.com/9809 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert[3] "store vertices arrays inline with object"""Gravatar Mike Reed2017-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7d9f9e30204ee8a380443b868e4cc281319a2051. Reason for revert: speculative revert to try to fix google3 Original change's description: > Revert[2] "store vertices arrays inline with object"" > > This reverts commit 9e62df6ecd1000860ad19ab9425579dfb7002ba0. > > Reason for revert: behavior in reader32 fixed > > Fix is here: https://skia-review.googlesource.com/c/9729/ > > Original change's description: > > Revert "store vertices arrays inline with object" > > > > This reverts commit eaaebb19a17d213355e7a70e0cfabe4ba61929d4. > > > > Reason for revert: may call SkReader32::read(null, 0) -- reader needs to handle this > > > > Original change's description: > > > store vertices arrays inline with object > > > > > > Also unify some of naming (esp. around texCoords) > > > > > > BUG=skia:6366 > > > > > > Change-Id: I5a6793f029cccf0cd0a2c1d180b259ce4eab526f > > > Reviewed-on: https://skia-review.googlesource.com/9705 > > > Commit-Queue: Mike Reed <reed@google.com> > > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > > > > > > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=skia:6366 > > > > Change-Id: Ie421654bcd74d74f8be6676291e3d6e16e2a7a16 > > Reviewed-on: https://skia-review.googlesource.com/9727 > > Reviewed-by: Mike Reed <reed@google.com> > > Commit-Queue: Mike Reed <reed@google.com> > > > > TBR=bsalomon@google.com,reviews@skia.org,reed@google.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia:6366 > > Change-Id: I1f12108fff8f551d66455cfadd6d5dd9412e9aa8 > Reviewed-on: https://skia-review.googlesource.com/9760 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bsalomon@google.com,reviews@skia.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:6366 Change-Id: Ie23130a07fbecd5664e37291bc167008a6b496bc Reviewed-on: https://skia-review.googlesource.com/9806 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Remove budgeted parameter from SkSurface::makeImageSnapshot"Gravatar Yuqian Li2017-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b64bcbdc3a5aa7b9e3ff216e4617ddc1db9260b5. Reason for revert: Android build failed as shown below. frameworks/base/libs/hwui/VkLayer.cpp:32:41: error: too many arguments to function call, expected 0, have 1 mImage = surface->makeImageSnapshot(SkBudgeted::kNo); Original change's description: > Remove budgeted parameter from SkSurface::makeImageSnapshot > > This unused feature complicates MDB. > > Chrome compiles locally for me with this CL. > > Change-Id: I611e464885fb984030eace43ead42cf39d0e7f72 > Reviewed-on: https://skia-review.googlesource.com/9734 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Iae6e313c15b2352bd0d4fc7b5629de0a51ac398e Reviewed-on: https://skia-review.googlesource.com/9788 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Support all gradient types in SkColorSpaceXformCanvas.Gravatar Mike Klein2017-03-16
| | | | | | | | | | | | This shader introspection still doesn't seem like the right way to go, but while we've got it might as well fill in the rest of gradient types. These are low-hanging and among the most egregious gbr-8888/8888 diffs. Change-Id: Iaee67b615e49873c3aa8e2a67396a311efa75060 Reviewed-on: https://skia-review.googlesource.com/9746 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Remove budgeted parameter from SkSurface::makeImageSnapshotGravatar Robert Phillips2017-03-16
| | | | | | | | | | | This unused feature complicates MDB. Chrome compiles locally for me with this CL. Change-Id: I611e464885fb984030eace43ead42cf39d0e7f72 Reviewed-on: https://skia-review.googlesource.com/9734 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add color spin test for SkColorSpaceXformCanvasGravatar Matt Sarett2017-03-15
| | | | | | | | | | | | | | | Also changes behavior to treat nullptr srcs as sRGB. Testing locally, it looks like 353 gms have no diffs from 8888. There are 269 diffs - some are fine (gms that do color space stuff) and some are bugs. BUG=skia: Change-Id: I55c2825f4f4b857e0b0a0ec050c6db82ac881492 Reviewed-on: https://skia-review.googlesource.com/9738 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* SkDynamicMemoryWStream::detachAsStream() returns unique_ptrGravatar Hal Canary2017-03-15
| | | | | | | | https://crrev.com/2747183002 must land first. Change-Id: I65d1285a24d63c2c2f18662d511dea1c399511e1 Reviewed-on: https://skia-review.googlesource.com/9682 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* SkColorSpaceXformCanvas: simple support for shadersGravatar Mike Klein2017-03-15
| | | | | | | | | | | | | | So far it looks like we can hit the major shader subclasses without needing to add new calls to SkShader. Not married to this approach, but it's a big head start. I've left out nonlinear gradient types just to keep this CL clear. Will follow up with them... they won't be interestingly different. Change-Id: I8711ff464f384d8be1671c139ba10a20502d9c0f Reviewed-on: https://skia-review.googlesource.com/9742 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert[2] "store vertices arrays inline with object""Gravatar Mike Reed2017-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9e62df6ecd1000860ad19ab9425579dfb7002ba0. Reason for revert: behavior in reader32 fixed Fix is here: https://skia-review.googlesource.com/c/9729/ Original change's description: > Revert "store vertices arrays inline with object" > > This reverts commit eaaebb19a17d213355e7a70e0cfabe4ba61929d4. > > Reason for revert: may call SkReader32::read(null, 0) -- reader needs to handle this > > Original change's description: > > store vertices arrays inline with object > > > > Also unify some of naming (esp. around texCoords) > > > > BUG=skia:6366 > > > > Change-Id: I5a6793f029cccf0cd0a2c1d180b259ce4eab526f > > Reviewed-on: https://skia-review.googlesource.com/9705 > > Commit-Queue: Mike Reed <reed@google.com> > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > > > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia:6366 > > Change-Id: Ie421654bcd74d74f8be6676291e3d6e16e2a7a16 > Reviewed-on: https://skia-review.googlesource.com/9727 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bsalomon@google.com,reviews@skia.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:6366 Change-Id: I1f12108fff8f551d66455cfadd6d5dd9412e9aa8 Reviewed-on: https://skia-review.googlesource.com/9760 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* must check for zero-length in reader32::read() before calling memcpyGravatar Mike Reed2017-03-15
| | | | | | | | | | | | | memcpy's behavior is undefined if the dst-ptr is null, but reader32 supports null as long as the size is 0, so it needs to check explicitly before calling memcpy. This is implemented (now) by calling sk_careful_memcpy. BUG=skia: Change-Id: I7033cc5e6d724f50f0aafd9808e297b953848aa7 Reviewed-on: https://skia-review.googlesource.com/9729 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "store vertices arrays inline with object"Gravatar Mike Reed2017-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit eaaebb19a17d213355e7a70e0cfabe4ba61929d4. Reason for revert: may call SkReader32::read(null, 0) -- reader needs to handle this Original change's description: > store vertices arrays inline with object > > Also unify some of naming (esp. around texCoords) > > BUG=skia:6366 > > Change-Id: I5a6793f029cccf0cd0a2c1d180b259ce4eab526f > Reviewed-on: https://skia-review.googlesource.com/9705 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:6366 Change-Id: Ie421654bcd74d74f8be6676291e3d6e16e2a7a16 Reviewed-on: https://skia-review.googlesource.com/9727 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* store vertices arrays inline with objectGravatar Mike Reed2017-03-15
| | | | | | | | | | | Also unify some of naming (esp. around texCoords) BUG=skia:6366 Change-Id: I5a6793f029cccf0cd0a2c1d180b259ce4eab526f Reviewed-on: https://skia-review.googlesource.com/9705 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Retract GrContext from src/gpu/effectsGravatar Robert Phillips2017-03-15
| | | | | | | Change-Id: Iceb7263098286bafb2605ef17d1fe6bb25d71e97 Reviewed-on: https://skia-review.googlesource.com/9693 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* SkDynamicMemoryWStream::detachAsData more memory efficentGravatar Hal Canary2017-03-15
| | | | | | | | | | I did some testing with very large datasets, and the difference in max RSS is measurable and significant. Change-Id: I6bb2f795d5b4f6ebdba42c3089dc85a278355d48 Reviewed-on: https://skia-review.googlesource.com/9686 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* add uniqueIDGravatar Mike Reed2017-03-15
| | | | | | | | | BUG=skia:6366 Change-Id: Ie3215a392040be645524a2294d824d953ba3a1b6 Reviewed-on: https://skia-review.googlesource.com/9703 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add GrRenderTargetContext::resourceProvider & GrResourceProvider::capsGravatar Robert Phillips2017-03-14
| | | | | | | | | and retract GrSurfaceContextPriv a bit Change-Id: Id47af1052f9bda4fe7c85b3ce46b3ebe37797524 Reviewed-on: https://skia-review.googlesource.com/9647 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Begin implementation of SkImage_Base::makeColorSpaceGravatar Matt Sarett2017-03-14
| | | | | | | | | | | | | | Originally: https://skia-review.googlesource.com/9622 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release,Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Debug-Android BUG=skia: Change-Id: I7ef1daaab32892399e3333e4b2fc75d70a1900e4 Reviewed-on: https://skia-review.googlesource.com/9651 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* vertices to/from dataGravatar Mike Reed2017-03-14
| | | | | | | | | | | precursor to enabling serialization in pictures BUG=skia:6366 Change-Id: Iba89aa98f389b3281e7705d041e3337e89071f03 Reviewed-on: https://skia-review.googlesource.com/9680 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* add SkVertices::BuilderGravatar Mike Reed2017-03-14
| | | | | | | | | | | | | | | | | | Possible next iterations: - remove another allocation use the SkData trick to share the object and its (trailing) data - store a bit that tells use to free each pointer, allowing the builder to "adopt" some allocations instead of copy. Larger idea: - merge with drawPoints to have a single object for both. BUG=skia:6366 Change-Id: Iec33239aa2ad5d00b36469ca0b88934ddf6f22eb Reviewed-on: https://skia-review.googlesource.com/9604 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Begin implementation of SkImage_Base::makeColorSpace"Gravatar Mike Reed2017-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 98629efdde9236e444d7b3fa644eaab3a1301566. Reason for revert: unittest failures Failures: ../../../tests/ImageTest.cpp:1099 0x28 == SkGetPackedR32(*p3Bitmap.getAddr32(0, 0)) ../../../tests/ImageTest.cpp:1100 0x40 == SkGetPackedG32(*p3Bitmap.getAddr32(0, 0)) ../../../tests/ImageTest.cpp:1101 0x5E == SkGetPackedB32(*p3Bitmap.getAddr32(0, 0)) Original change's description: > Begin implementation of SkImage_Base::makeColorSpace > > BUG=skia: > > Change-Id: Idf946faa64dad32a28070a430926a8225dbf6e5a > Reviewed-on: https://skia-review.googlesource.com/9622 > Commit-Queue: Matt Sarett <msarett@google.com> > Reviewed-by: Brian Osman <brianosman@google.com> > TBR=mtklein@google.com,msarett@google.com,brianosman@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I6ce2a28ca581f7d01322588c2435133d8c6a2435 Reviewed-on: https://skia-review.googlesource.com/9649 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Expose SkColorSpaceTransferFn inversion functionGravatar Brian Osman2017-03-14
| | | | | | | | | | | Also adds tolerance to checks against zero BUG=skia: Change-Id: I2ad5737c6eef7e3ed52a685dceb347a434607336 Reviewed-on: https://skia-review.googlesource.com/9643 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Remove unused SkBitmap::RLEPixelsGravatar Leon Scroggins III2017-03-14
| | | | | | | | | | TBR=reed@google.com Change-Id: I14a75b7cad89aa7eb4b146a5d269856a4ad5d821 Reviewed-on: https://skia-review.googlesource.com/9646 Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Begin implementation of SkImage_Base::makeColorSpaceGravatar Matt Sarett2017-03-14
| | | | | | | | | BUG=skia: Change-Id: Idf946faa64dad32a28070a430926a8225dbf6e5a Reviewed-on: https://skia-review.googlesource.com/9622 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Consolidate Proxy caching code in GrResourceProviderGravatar Robert Phillips2017-03-14
| | | | | | | | | | | This doesn't implement the GrSurfaceProxy-based caching but just carves out a space for it. Split out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: Iec87b45e3264b349d7804f63e361e970b925e335 Reviewed-on: https://skia-review.googlesource.com/9626 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Purge GrTextBlobCache entries on SkTextBlob deletionGravatar Florin Malita2017-03-14
| | | | | | | | | Similar to the SkImage purge mechanism. Change-Id: I0b7fb1bad507a3c7f30a4f7514bedd894d1748ac Reviewed-on: https://skia-review.googlesource.com/9631 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Preparatory ProxificationGravatar Robert Phillips2017-03-14
| | | | | | | | | This is pulled out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: I93e233cd80d98c848d79272423cb58505d72ff3e Reviewed-on: https://skia-review.googlesource.com/9559 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Increase precision of equality checking for color space transfer fnsGravatar Matt Sarett2017-03-14
| | | | | | | | | BUG=skia: Change-Id: I7b921d34539c071e63a47fb7151dc1dcdaa08cb3 Reviewed-on: https://skia-review.googlesource.com/9636 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Remove GrClipsStackClip member from SkGpuDeviceGravatar Brian Salomon2017-03-13
| | | | | | | Change-Id: Ibfbfeda86e3d6a819bf198af5c36852744897fb8 Reviewed-on: https://skia-review.googlesource.com/9635 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Chris Dalton <csmartdalton@google.com>
* More SkCSXformCanvas work.Gravatar Mike Klein2017-03-13
| | | | | | | | | | | | | | - handle color arrays in drawPatch(), drawVertices(), drawAtlas() - color filters Color filter support is a one-off for SkModeColorFilter. I don't know any other color filters that are parameterized by a color. If there are any/many, we may want to wire up something more comprehensive here. Change-Id: Ibc89574e3a32d38af3bc2443a7d4bac0bb52d493 Reviewed-on: https://skia-review.googlesource.com/9601 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* SkColorSpaceXformCanvasGravatar Mike Klein2017-03-13
| | | | | | | | | | | | | | | TODO: images shaders color filters image filters a couple stray color arrays Change-Id: Ib91639bb0a6a00af737dd5186180011fe5120860 Reviewed-on: https://skia-review.googlesource.com/9529 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* use AutoRestore instead of making a copy of the clipstackGravatar Mike Reed2017-03-13
| | | | | | | | | BUG=skia: Change-Id: I86683156926f7c63c83790eaf313112ba5fab763 Reviewed-on: https://skia-review.googlesource.com/9532 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Remove SK_SUPPORT_LEGACY_BROKEN_LERP supportGravatar Florin Malita2017-03-13
| | | | | | | | | | | | | | Chromium change landed. BUG=chromium:696216 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I3e67392b0fdad8c5a3ad256e4f190123dff6c846 Reviewed-on: https://skia-review.googlesource.com/9551 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Remove run count field from SkTextBlob.Gravatar Florin Malita2017-03-13
| | | | | | | | | | | | | We can flag the last run record instead. Run iteration is always sequential, so no penalty. As a side effect, we can no longer allow instantiation of zero-run text blobs - but that seems like a good idea anyway. Change-Id: I7ca80c4780623d5a188f92dfe6d6fe152f20f666 Reviewed-on: https://skia-review.googlesource.com/9149 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* disable assert until I can understand why it fails in cc_unittestsGravatar Mike Reed2017-03-10
| | | | | | | | | | BUG=skia: Change-Id: I475b7b43e17f17f8f2a50e93ae0ce8a5b918b041 NOTRY=True Reviewed-on: https://skia-review.googlesource.com/9547 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Fix SkFILEStream.Gravatar Ben Wagner2017-03-10
| | | | | | | Change-Id: I8c66e4e3e857227aed3d0bc497982f4c0d96d917 Reviewed-on: https://skia-review.googlesource.com/9498 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* Check for bad bounds in picture cullboundsGravatar Mike Reed2017-03-10
| | | | | | | | | BUG=skia: Change-Id: Icaed150fa005ba7539bcca4646710b42dfcbf94a Reviewed-on: https://skia-review.googlesource.com/9536 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* re-guard against negative dimensions on no-draw canvasGravatar Mike Reed2017-03-10
| | | | | | | | | | | | We used to (incidentally) guard for this when we used bitmapdevice as our backnig. Now that we have a (faster) nodrawdevice, we need to explicitly guard for it. BUG=skia: Change-Id: I9cbbf064cbfced78f0004a2e5aff60aa3ded6215 Reviewed-on: https://skia-review.googlesource.com/9530 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Partially defer SkImage_GpuGravatar Robert Phillips2017-03-10
| | | | | | | | | One of SkImageCacherator, GrBitmapTextureMaker, GrImageTextureMaker, GrTextureAdjuster, GrTextureProducer or SkImage has to take the first step. This is probably the least odd of the options. Change-Id: Ie167034553451f4b3633a5a1548dbd4d75839b3d Reviewed-on: https://skia-review.googlesource.com/9488 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* clipstacks can be on the stack or embedded, therefore should not be ref-countedGravatar Mike Reed2017-03-10
| | | | | | | | | BUG=skia: Change-Id: I7e16034d463a1db1baac404f775cf33076cbbf73 Reviewed-on: https://skia-review.googlesource.com/9509 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Clients can provide preallocated storage to clipstackGravatar Mike Reed2017-03-10
| | | | | | | | | | | | | | | | | | | | This allows devices (gpu, pdf) which are themselves always dynamically allocated (since they are reference counted) to provide storage to clipstack, allowing it to avoid calls to malloc. Previously this was attempted by embedding the storage directly in clipstack, but that increased the size of clipstack in all instances, even those where it might be on the stack. This can be problematic for small-stack environments like servers. See previous (reverted) CL: https://skia-review.googlesource.com/c/9522/ BUG=skia: Change-Id: Ifc7f5ef411303f33513195b1502ea9f281e995c5 Reviewed-on: https://skia-review.googlesource.com/9508 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "prealloc room for some number of Elements to avoid malloc"Gravatar Mike Reed2017-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 94cbbba96f1a2a425663e631c09591023f2e48d7. Reason for revert: exceeded stack-size on g3 (in SkPDFDevice.cpp:1552 Original change's description: > prealloc room for some number of Elements to avoid malloc > > I chose 16, as in my test case from android, the depth was > at least 9. Possibly we could make it even smaller if our > underlying impl (SkDeque) would never prune its allocations, > so that we don't malloc repeatedly if we save/restore/save/restore > across the boundary of the first/nth chunk... > > BUG=skia: > > Change-Id: Id3f0b900b1931f713f80a664f2b4b142f264be8d > Reviewed-on: https://skia-review.googlesource.com/9522 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I22c45970b1e3f585087ed22f75c300df00c8124d Reviewed-on: https://skia-review.googlesource.com/9505 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* prealloc room for some number of Elements to avoid mallocGravatar Mike Reed2017-03-10
| | | | | | | | | | | | | | | I chose 16, as in my test case from android, the depth was at least 9. Possibly we could make it even smaller if our underlying impl (SkDeque) would never prune its allocations, so that we don't malloc repeatedly if we save/restore/save/restore across the boundary of the first/nth chunk... BUG=skia: Change-Id: Id3f0b900b1931f713f80a664f2b4b142f264be8d Reviewed-on: https://skia-review.googlesource.com/9522 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add tolerance to quadratic and linear cubic detectionGravatar csmartdalton2017-03-09
| | | | | | | | | | | | Otherwise these can be misclassified as cusps since there is already tolerance in the discriminant test. BUG=skia: Change-Id: Id02c12f671714cebf799953ebed5335ee4c4d52a Reviewed-on: https://skia-review.googlesource.com/9355 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* make GrPaint.h private -- IWYUGravatar Mike Reed2017-03-09
| | | | | | | | | | | prerequisit: https://codereview.chromium.org/2743533002/ BUG=skia: Change-Id: I8c2f34a6df165744ddeaeabb562cd6d6a9679b6a Reviewed-on: https://skia-review.googlesource.com/9461 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* move intermediate patheffect classes inside srcGravatar Mike Reed2017-03-09
| | | | | | | | | BUG=skia: Change-Id: I49d2079ff35c7d228839940a57ba29169cb5b310 Reviewed-on: https://skia-review.googlesource.com/9462 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Optimize mipmap downsample_2_2 in sRGB modeGravatar Matt Sarett2017-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reland of: https://skia-review.googlesource.com/c/9386/ Desktop (HP z620) Before: mipmap_build_2048x2048_0_gamma 10.5 ms mipmap_build_2048x2048_1_gamma 77.1 ms After: mipmap_build_2048x2048_0_gamma 10.5 ms mipmap_build_2048x2048_1_gamma 41.0 ms Pixel XL Before: mipmap_build_2048x2048_0_gamma 160 ms mipmap_build_2048x2048_1_gamma 1.5 s After: mipmap_build_2048x2048_0_gamma 160 ms mipmap_build_2048x2048_1_gamma 570 ms Also provides marginal performance improvements for other sRGB downsamples. CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind_PreAbandonGpuContext BUG=skia: Change-Id: Ia82fc2ef795e1bb63a4a9deac5e38f5fde39f651 Reviewed-on: https://skia-review.googlesource.com/9455 Reviewed-by: Matt Sarett <msarett@google.com>
* Switch GrYUVProvider over to GrTextureProxiesGravatar Robert Phillips2017-03-08
| | | | | | | | | This is split out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: I302e6b4c1ffed449a990288ec06f2dfdcdadf1f8 Reviewed-on: https://skia-review.googlesource.com/9448 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>