aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
Commit message (Collapse)AuthorAge
* Add SkSurfaceCharacterization operator== && !=Gravatar Robert Phillips2018-04-04
| | | | | | | | | TBR=bsalomon@google.com Change-Id: Ic58849dcb3be1f00431f897af328f6f3c3f00d75 Reviewed-on: https://skia-review.googlesource.com/118340 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add API for SkTextBlob serialization into caller's memory.Gravatar Khushal2018-04-04
| | | | | | | | | | R=reed@google.com Change-Id: Iaeb67504aabf0dc036e81fa23c1a3c949b72b2b9 Reviewed-on: https://skia-review.googlesource.com/114262 Commit-Queue: Khusal Sagar <khushalsagar@chromium.org> Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Clean up buffering and serializatoin.Gravatar Herb Derby2018-04-04
| | | | | | | | | BUG=skia:7515 Change-Id: Id580e8f464c6263fa32a5d6347f505b00bba29d7 Reviewed-on: https://skia-review.googlesource.com/118460 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Catch infinite numbers in computeMatricesGravatar Kevin Lubick2018-04-03
| | | | | | | | Bug: skia:7433 Change-Id: I54ec095a2e6a3596f99e3659c947c6489a68ff47 Reviewed-on: https://skia-review.googlesource.com/118164 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Fix non-GPU release botsGravatar Robert Phillips2018-04-03
| | | | | | | | TBR=bsalomon@google.com Change-Id: I8b0a6ff0ca7674c94bfbc739d313cfac5a16596f Reviewed-on: https://skia-review.googlesource.com/118100 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Speculative fix for crbug.com/823920Gravatar Brian Salomon2018-04-03
| | | | | | | | Bug: chromium:823920 Change-Id: I679cdf848280a26b8e353b51750823f497e50a67 Reviewed-on: https://skia-review.googlesource.com/117861 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Cleanup Ops - remove extra bytes sent and receivedGravatar Herb Derby2018-04-02
| | | | | | | | | BUG=skia:7515 Change-Id: I0a1da98cbf20e39fec9f318e7aa9e253bd3878b4 Reviewed-on: https://skia-review.googlesource.com/117864 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Simplify SkDrawTiler; check emtpy pixmap and overflowGravatar Yuqian Li2018-04-02
| | | | | | | | | | Not sure whether this will fix b/77249109, but we can have a try. Bug: b/77249109 Change-Id: Ia569cb130758dd0a63bfe2ecb29e61c75716c955 Reviewed-on: https://skia-review.googlesource.com/117460 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* SkScalerContext::getMetrics to not request metrics it will ignore.Gravatar Ben Wagner2018-04-02
| | | | | | | | | | | | | | | | | | Before this change SkScalerContext::getMetrics always calls generateMetrics to force the subclass to create full metrics. However, if the SkScalerContext is going to draw from outlines then there is no reason to do so since it is immediately going to overwrite those metrics by computing its own from the path. This also puts off other decisions being made based on the glyph metrics until after the metrics are fully computed. The logic in SkScalerContext::getImage is updated to be similar to the logic in the new SkScalerContext::getMetrics. Change-Id: I1798c9244277fab85595fb39fc3a85ef7eb33620 Reviewed-on: https://skia-review.googlesource.com/117085 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert "implement SkTDArray with std::vector"Gravatar Mike Klein2018-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 80e1d56e198c5fd9fe6db0c945bd558053a8dc6a. Reason for revert: SkRTree.cpp:57 asserting, probably this? Original change's description: > implement SkTDArray with std::vector > > It's always worth seeing if we can get away with replacing custom data > structures with ones from the standard library. Our array-like types > are all good candidates to replace with std::vector, and it's especially > easy to start with SkTDArray. Unlike the others, it has no preallocated > S-variant, which is tricky to make work with std::vector. > > SkTDArray also has known integer overflow bugs, leading to out of range > writes. It'd be _very_ nice to ditch it for a better standard vector. > > I removed a bunch of unused or little-used methods, and updated a couple > call sites that used methods in unusual or dangerous ways. > > I've had to tweak GrAAConvexTessellator and SkBaseShadowTessellator just > a touch to work within the constraints of an std::vector impl. It's not > intended to be legal to write to the reserved-but-not-counted elements > of an SkTDArray, but you can get away with it in our old implementation. > This version now uses setCount() to actually reserve and count them, and > should have the same performance and use the same amount of memory. > > The PathMeasure_explosion GM I added recently to reproduce this bug now > draws without triggering undefined behavior or ASAN errors, provided you > have ~40GB of RAM. > > Bug: skia:7674 > > Change-Id: I4eacae18a976cd4a6d218102f8ca5d973d4d7d0e > Reviewed-on: https://skia-review.googlesource.com/115982 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Mike Klein <mtklein@chromium.org> TBR=mtklein@chromium.org,bungeman@google.com,brianosman@google.com Change-Id: Icffd9f22fe89746a970ff598e1a05c774960bc0e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7674 Reviewed-on: https://skia-review.googlesource.com/117901 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* implement SkTDArray with std::vectorGravatar Mike Klein2018-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's always worth seeing if we can get away with replacing custom data structures with ones from the standard library. Our array-like types are all good candidates to replace with std::vector, and it's especially easy to start with SkTDArray. Unlike the others, it has no preallocated S-variant, which is tricky to make work with std::vector. SkTDArray also has known integer overflow bugs, leading to out of range writes. It'd be _very_ nice to ditch it for a better standard vector. I removed a bunch of unused or little-used methods, and updated a couple call sites that used methods in unusual or dangerous ways. I've had to tweak GrAAConvexTessellator and SkBaseShadowTessellator just a touch to work within the constraints of an std::vector impl. It's not intended to be legal to write to the reserved-but-not-counted elements of an SkTDArray, but you can get away with it in our old implementation. This version now uses setCount() to actually reserve and count them, and should have the same performance and use the same amount of memory. The PathMeasure_explosion GM I added recently to reproduce this bug now draws without triggering undefined behavior or ASAN errors, provided you have ~40GB of RAM. Bug: skia:7674 Change-Id: I4eacae18a976cd4a6d218102f8ca5d973d4d7d0e Reviewed-on: https://skia-review.googlesource.com/115982 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* fix SkRRect fuzzer assertGravatar Cary Clark2018-04-02
| | | | | | | | | | | | | | | | | | | fuzzer bug triggers an assert in SkRRect::isValid because on radius is zero and the other, while small, is not. The radii are normally both set to zero if one is zero in SkRRect::setRectRadii. However, subsequently scaleRadii may set one to zero when normalizing the pair. Move the clamping code out of setRectRadii so it can be called from scaleRadii as well. R=reed@google.com Bug: skia: Change-Id: Ib9a86da7212567b2f4b83d99a41cf9ba2c30e9b9 Reviewed-on: https://skia-review.googlesource.com/115701 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* SkAdvancedTypefaceMetrics: distinguish between font namesGravatar Hal Canary2018-03-29
| | | | | | | Change-Id: I7d094c7327fae7a6da42b118858c59ab524ee6ae Reviewed-on: https://skia-review.googlesource.com/117157 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: type3: more descriptor valuesGravatar Hal Canary2018-03-29
| | | | | | | | | Also: add fXHeight to SkAdvancedTypefaceMetrics.h Change-Id: I28314cf93ca9808216ee34c202a0fa9fc2ffe301 Reviewed-on: https://skia-review.googlesource.com/117155 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkDynamicMemoryWStream: clean up, asserts, etc.Gravatar Hal Canary2018-03-29
| | | | | | | | BUG=chromium:825476 Change-Id: Ied7d5e8313781821acc778d784ecade46b93ca22 Reviewed-on: https://skia-review.googlesource.com/116860 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Various cleanup to remote_demoGravatar Herb Derby2018-03-27
| | | | | | | | | | | | | Integrate SkRemoteGlyphCacheRenderer into SkStrikeServer Add a Timer. Remove unused code. BUG=skia:7515 Change-Id: Idffb477af71cbcc4035df190e29e8910b61aa6e5 Reviewed-on: https://skia-review.googlesource.com/116485 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* initial SkSLJIT checkinGravatar Ethan Nicholas2018-03-27
| | | | | | | | | Docs-Preview: https://skia.org/?cl=112204 Bug: skia: Change-Id: I10042a0200db00bd8ff8078467c409b1cf191f50 Reviewed-on: https://skia-review.googlesource.com/112204 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* cache SkMatrix44 type in makeColorSpin()Gravatar Mike Klein2018-03-27
| | | | | | | | | | | This helps prevent races on getType() later, e.g. https://luci-milo.appspot.com/swarming/task/3c80715df637a810/steps/symbolized_dm/0/stdout Change-Id: I3dbc9f6bf2fddff9ca416b0001bfd5da123e6b25 Reviewed-on: https://skia-review.googlesource.com/116466 Commit-Queue: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Add SkColorSpaceXform_skcmsGravatar Brian Osman2018-03-27
| | | | | | | | | | | Currently only enabled in Skia dev builds. Has some diffs in GMs and images, but (hopefully) nothing major. Bug: skia: Change-Id: Ifdf5d2804e59f555a3dc84f657e438dd589a2751 Reviewed-on: https://skia-review.googlesource.com/116520 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Reland "Use DAA for small cubics and non-convex paths that fit into a mask"Gravatar Yuqian Li2018-03-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 107d53971dab5245e88885f095aef52fd52942d3. Reason for revert: Ready to rebaseline Original change's description: > Revert "Use DAA for small cubics and non-convex paths that fit into a mask" > > This reverts commit 1875e053845c4d377a0f64f7233bdb9dc00bdce1. > > Reason for revert: > > I don't think there's anything wrong with this, but it looks like Yuqian is out today and there is a large number of GM, SKP, and SVG images to triage from this. This is just a triage-by-revert... should be fine to reland when you're ready to triage. > > Original change's description: > > Use DAA for small cubics and non-convex paths that fit into a mask > > > > I forgot to benchmark svgs and it turns out that DAA is specifically > > good for the small cubics and small non-convex paths in svgs. This > > should make our svg performance fast again: > > > > 2.84% faster in svgparse_Florida-StateSeal.svg_1 > > 2.90% faster in svgparse_NewYork-StateSeal.svg_1 > > 2.95% faster in svgparse_Seal_of_Texas.svg_1 > > 3.05% faster in car.svg_1 > > 3.53% faster in svgparse_Vermont_state_seal.svg_1 > > 3.68% faster in svgparse_Wyoming-StateSeal.svg_1 > > 4.88% faster in svgparse_Minnesota-StateSeal.svg_1 > > 5.22% faster in svgparse_NewMexico-StateSeal.svg_1 > > 6.49% faster in svgparse_fsm.svg_1 > > > > > > Bug: skia: > > Change-Id: Ia149944443d72c12c3dda178cb5ebc89d6d0bf18 > > Reviewed-on: https://skia-review.googlesource.com/116185 > > Reviewed-by: Cary Clark <caryclark@google.com> > > Commit-Queue: Yuqian Li <liyuqian@google.com> > > TBR=caryclark@google.com,liyuqian@google.com,reed@google.com,caryclark@skia.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Bug: skia: > Change-Id: I232f34dcea1cdabef768879a261fe6796f3e4a79 > Reviewed-on: https://skia-review.googlesource.com/116400 > Reviewed-by: Mike Klein <mtklein@google.com> > Commit-Queue: Mike Klein <mtklein@google.com> TBR=mtklein@google.com,caryclark@google.com,liyuqian@google.com,reed@google.com,caryclark@skia.org Change-Id: I6a413e3a2f1ce9182f9e209f6e2654a602170378 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/116620 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* Remove SkAutoGlyphCacheGravatar Herb Derby2018-03-27
| | | | | | | Change-Id: Ia485ce5acd70730d461ce81104595a6b961f5ca6 Reviewed-on: https://skia-review.googlesource.com/116183 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Move cache difference code into remote cache filesGravatar Herb Derby2018-03-26
| | | | | | | | | BUG=skia:7515 Change-Id: I59e75d460b4ed4d0a737c833520b2335808a4ce4 Reviewed-on: https://skia-review.googlesource.com/115706 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* detect ASIMDHP on ARM64Gravatar Mike Klein2018-03-26
| | | | | | | | | | | | | | (ASIMDHP == "advanced SIMD half-precision" == NEON half-float compute.) Testing: printed features after detection Pixel 1: 0x08 Galaxy S9: 0x18 (All as expected.) Change-Id: I3c6987d9ad50b0eb244c2be4354c1c13fdd24815 Reviewed-on: https://skia-review.googlesource.com/116480 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Use DAA for small cubics and non-convex paths that fit into a mask"Gravatar Mike Klein2018-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1875e053845c4d377a0f64f7233bdb9dc00bdce1. Reason for revert: I don't think there's anything wrong with this, but it looks like Yuqian is out today and there is a large number of GM, SKP, and SVG images to triage from this. This is just a triage-by-revert... should be fine to reland when you're ready to triage. Original change's description: > Use DAA for small cubics and non-convex paths that fit into a mask > > I forgot to benchmark svgs and it turns out that DAA is specifically > good for the small cubics and small non-convex paths in svgs. This > should make our svg performance fast again: > > 2.84% faster in svgparse_Florida-StateSeal.svg_1 > 2.90% faster in svgparse_NewYork-StateSeal.svg_1 > 2.95% faster in svgparse_Seal_of_Texas.svg_1 > 3.05% faster in car.svg_1 > 3.53% faster in svgparse_Vermont_state_seal.svg_1 > 3.68% faster in svgparse_Wyoming-StateSeal.svg_1 > 4.88% faster in svgparse_Minnesota-StateSeal.svg_1 > 5.22% faster in svgparse_NewMexico-StateSeal.svg_1 > 6.49% faster in svgparse_fsm.svg_1 > > > Bug: skia: > Change-Id: Ia149944443d72c12c3dda178cb5ebc89d6d0bf18 > Reviewed-on: https://skia-review.googlesource.com/116185 > Reviewed-by: Cary Clark <caryclark@google.com> > Commit-Queue: Yuqian Li <liyuqian@google.com> TBR=caryclark@google.com,liyuqian@google.com,reed@google.com,caryclark@skia.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: skia: Change-Id: I232f34dcea1cdabef768879a261fe6796f3e4a79 Reviewed-on: https://skia-review.googlesource.com/116400 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Move GrPixelConfig to GrTypesPrivGravatar Brian Salomon2018-03-23
| | | | | | | | | BUG= skia:6718 Change-Id: I254a5d289c1216e580b8f7fe613236c090d0e901 Reviewed-on: https://skia-review.googlesource.com/116196 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Use DAA for small cubics and non-convex paths that fit into a maskGravatar Yuqian Li2018-03-23
| | | | | | | | | | | | | | | | | | | | | | | I forgot to benchmark svgs and it turns out that DAA is specifically good for the small cubics and small non-convex paths in svgs. This should make our svg performance fast again: 2.84% faster in svgparse_Florida-StateSeal.svg_1 2.90% faster in svgparse_NewYork-StateSeal.svg_1 2.95% faster in svgparse_Seal_of_Texas.svg_1 3.05% faster in car.svg_1 3.53% faster in svgparse_Vermont_state_seal.svg_1 3.68% faster in svgparse_Wyoming-StateSeal.svg_1 4.88% faster in svgparse_Minnesota-StateSeal.svg_1 5.22% faster in svgparse_NewMexico-StateSeal.svg_1 6.49% faster in svgparse_fsm.svg_1 Bug: skia: Change-Id: Ia149944443d72c12c3dda178cb5ebc89d6d0bf18 Reviewed-on: https://skia-review.googlesource.com/116185 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* lock before using fCacheKeys in ~SkImageFilter()Gravatar Mike Klein2018-03-22
| | | | | | | | | | | | | | | | | | No other code can be using an SkImageFilter() while it's being destroyed, so there's not a chance of a race per-se here. But, because we have not acquired fMutex, there is technically a possibility that the destructor sees an outdated version of fCacheKeys, not necessarily reflecting the last change(s) made while another core held the mutex. This is an unlikely case, but it's worth fixing by locking in the destructor. This will always be uncontended, and so very cheap. Bug: skia:7666 Change-Id: I9f705bc6e8e99162b90d59b30b8dd51c4f238970 Reviewed-on: https://skia-review.googlesource.com/115929 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Better decisions about choosing AAA versus DAAGravatar Yuqian Li2018-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Chrome perf regressions (817942, 819185) are caused by the bad choices to use DAA instead of AAA for stroking simple curves. (BTW, in my tests, DAA is still faster than SAA so it's not too much of a regression.) We previously only considered the number of line segments, but not the length of each segment. That leads to our wrong judgement of the path complexity (the number of intersections per scan line) when there are many short line segments. The change will bring the following performance change to our nanobench: 8.45% slower in clip_strategy_path_10 8.39% slower in draw_stroke_bezier_quad_square_bevel_10 3.91% slower in chart_aa 3.76% faster in lines 6.29% faster in path_stroke_big_oval 22.81% faster in path_stroke_big_circle 24.44% faster in giantdashline_vert_2 The two slower cases, clip_strategy_path_10 and draw_stroke_bezier_quad_square_bevel_10 are caused by choosing AAA over DAA. Those two tests do seem to be simple strokes. I'll later investigate why AAA is slower than DAA for those two cases. For now, I think that this change is sufficient to address those chromium perf regresssions. Bug: chromium:817942 chromium:819185 Change-Id: I1d13c968b17f257b4ede4c70e552db5016baf1ab Reviewed-on: https://skia-review.googlesource.com/115583 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* Reland "Remove legacy precision boundary"Gravatar Yuqian Li2018-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit dab15f7a02ddaa2a6977a14d5d04955bd39350ab. Reason for revert: the Android roll is broken by something else: b/76126268 Original change's description: > Revert "Remove legacy precision boundary" > > This reverts commit a2513c14c4e143984b2eec07f5263b5cdc6c84bb. > > Reason for revert: This is breaking the Android roll. > > Original change's description: > > Remove legacy precision boundary > > > > Bug: skia:7731 > > Change-Id: I86a87b960541c2bc7b099ca9f609342cb0bbf563 > > Reviewed-on: https://skia-review.googlesource.com/115652 > > Reviewed-by: Cary Clark <caryclark@google.com> > > Commit-Queue: Yuqian Li <liyuqian@google.com> > > TBR=caryclark@google.com,fmalita@chromium.org,liyuqian@google.com,reed@google.com > > Change-Id: I45b14f5a84e97cc1022b99c414f90126d368f598 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia:7731 > Reviewed-on: https://skia-review.googlesource.com/115840 > Reviewed-by: Derek Sollenberger <djsollen@google.com> > Commit-Queue: Derek Sollenberger <djsollen@google.com> TBR=djsollen@google.com,caryclark@google.com,fmalita@chromium.org,liyuqian@google.com,reed@google.com Change-Id: I5d957cb7be9cc578672079e98ab5e131ad249f70 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7731 Reviewed-on: https://skia-review.googlesource.com/115940 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Support GL_RGB textures and render targets.Gravatar Brian Salomon2018-03-22
| | | | | | | | | Bug= skia:7533 Change-Id: Iba30e90dbf2574368b773bb5cf2ebd5219559717 Reviewed-on: https://skia-review.googlesource.com/108188 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Remove legacy precision boundary"Gravatar Derek Sollenberger2018-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a2513c14c4e143984b2eec07f5263b5cdc6c84bb. Reason for revert: This is breaking the Android roll. Original change's description: > Remove legacy precision boundary > > Bug: skia:7731 > Change-Id: I86a87b960541c2bc7b099ca9f609342cb0bbf563 > Reviewed-on: https://skia-review.googlesource.com/115652 > Reviewed-by: Cary Clark <caryclark@google.com> > Commit-Queue: Yuqian Li <liyuqian@google.com> TBR=caryclark@google.com,fmalita@chromium.org,liyuqian@google.com,reed@google.com Change-Id: I45b14f5a84e97cc1022b99c414f90126d368f598 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7731 Reviewed-on: https://skia-review.googlesource.com/115840 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
* Remove legacy precision boundaryGravatar Yuqian Li2018-03-21
| | | | | | | | Bug: skia:7731 Change-Id: I86a87b960541c2bc7b099ca9f609342cb0bbf563 Reviewed-on: https://skia-review.googlesource.com/115652 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* change canvas-state to just record clip boundsGravatar Mike Reed2018-03-21
| | | | | | | | | | | | This reflects the long-standing restrictions in our clients (webview) and the reality of the gpu target which just uses scissors. It also removes one of the few callers of canvas::clipRegion, which we'd like to remove. Bug: skia: Change-Id: Ie3b3c6e8752f82cddef256f753000f9da4bdbdee Reviewed-on: https://skia-review.googlesource.com/113260 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add texture-specific flags for External & Rectangle texturesGravatar Robert Phillips2018-03-21
| | | | | | | | | | | | | | | | For DDLs, Ganesh needs to know about External & Rectangle textures prior to instantiation (or PromiseImage fulfillment). These new flags allow the client to provide this information when the lazyProxy is created. The new texture flags work analogously to the render target flags: GrSurface and GrSurfaceProxy get a new set of accessors for the new flags The new flags are set appropriately on a GrGLTexture when it is created For wrapped texture proxies the flags are just copied off of the GrSurface For lazy-proxies/promise-images the flags are computed up front and passed to the proxy The GrSurfaceProxy/GrSurface flags equivalence is verified in GrSurfaceProxy::assign Change-Id: Ia8e1998aa0a36ce4481bfd9e56be21f990e83148 Reviewed-on: https://skia-review.googlesource.com/114985 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Simplify format_rowbyts calculation.Gravatar Herb Derby2018-03-21
| | | | | | | | | As per comment in change 114371. Change-Id: I9724d5df205bb1430ebd3371677cce344372decc Reviewed-on: https://skia-review.googlesource.com/115610 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Try to have glyph count go through to allow easier glyphid setsGravatar Herb Derby2018-03-21
| | | | | | | Change-Id: I402e7240629db58c4212049583d6a06bcf7dcc40 Reviewed-on: https://skia-review.googlesource.com/115606 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* handle extreme dashesGravatar Cary Clark2018-03-21
| | | | | | | | | | | | | Make searching indices unsigned so intermediate middle doesn't overflow. Verified fix runs test in skia:7675 successfully. R=reed@google.com Bug: skia:7675 Change-Id: I76be1d3fee8875ae9eb2b18eb070ef66c8006c03 Reviewed-on: https://skia-review.googlesource.com/114798 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
* Allow only Android to use SkAutoGlyphCacheNoGammaGravatar Herb Derby2018-03-20
| | | | | | | Change-Id: Id7b67bc1e4e994f96037266adf7dc159980e4169 Reviewed-on: https://skia-review.googlesource.com/115244 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Regularize SkGlyphCache creation.Gravatar Herb Derby2018-03-20
| | | | | | | | | | | | | This allows no need for downcasting for specialized use of SkScalerContext for the remote case. This allows cache priming to be used in a single process. BUG=skia:7515 Change-Id: I963a50e36af9deef5a3414fc8a4c94ccfc38deaf Reviewed-on: https://skia-review.googlesource.com/115121 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* detect nonfinite cubic pointsGravatar Mike Reed2018-03-20
| | | | | | | | | Bug: oss-fuzz:7031 Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD Change-Id: I657c0652dc863256f445a84c084ccc37d287f534 Reviewed-on: https://skia-review.googlesource.com/115222 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Reland "fix nextContour bug"Gravatar Mike Reed2018-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0a86820f2fe3b62f2a5ac2917a1ef342dbe53722. Reason for revert: fix has landed in CTS Original change's description: > Revert "fix nextContour bug" > > This reverts commit 473f69276f1854db80e094cc4af091f7f8a5b00b. > > Reason for revert: a CTS test PathMeasureTest.android.graphics.cts.PathMeasureTest.testNextContour is failing > > Original change's description: > > fix nextContour bug > > > > Calling nextContour() needs to ensure that we've already measured the "current" one. > > > > Bug: skia: > > Change-Id: I501c26d0b068028d67103888f06ec89125a5407a > > Reviewed-on: https://skia-review.googlesource.com/114692 > > Reviewed-by: Cary Clark <caryclark@google.com> > > Commit-Queue: Mike Reed <reed@google.com> > > TBR=caryclark@google.com,reed@google.com > > Change-Id: I7f1e08651dfe73c02158b209dc28af2b174e246f > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/114823 > Reviewed-by: Stan Iliev <stani@google.com> > Commit-Queue: Stan Iliev <stani@google.com> TBR=caryclark@google.com,reed@google.com,stani@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: skia: Change-Id: I0fd61473ef0df62722cf6c6b86f1277f580e4ab1 Reviewed-on: https://skia-review.googlesource.com/115340 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* More removal of auto glyph cache.Gravatar Herb Derby2018-03-20
| | | | | | | | | Working on the last constructor. Change-Id: Iad80c3fd13be47ac46d9037af522b3b3337426fd Reviewed-on: https://skia-review.googlesource.com/115243 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Reland "Check the boundary while cumulating deltas in a mask"Gravatar Yuqian Li2018-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2ac541e66ce1afe174b31c24705ca47891816078. Reason for revert: try a new fix; the old one doesn't work because the deltas are not sorted. We use masks specifically because we don't want to sort deltas. Original change's description: > Revert "Check the boundary while cumulating deltas in a mask" > > This reverts commit d9779bcf93c2e11699230a54214309732b9161a7. > > Reason for revert: breaks gold > > Original change's description: > > Check the boundary while cumulating deltas in a mask > > > > Without the fix, > > > > ./out/Debug/dm --config t8888 -m complexclip_bw > > > > will trigger the assert. > > > > Note that this boundary check is already in place when deltas are > > cumulated without using a mask. > > > > Bug: skia: > > Change-Id: I68bfe2b7196d440743d3a7535d097bb8ec7689c3 > > Reviewed-on: https://skia-review.googlesource.com/113210 > > Commit-Queue: Yuqian Li <liyuqian@google.com> > > Reviewed-by: Cary Clark <caryclark@skia.org> > > TBR=liyuqian@google.com,reed@google.com,caryclark@skia.org > > Change-Id: Ice0e3618b02ef48b0f2a9f0662a12f76078e984a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/113170 > Reviewed-by: Yuqian Li <liyuqian@google.com> > Commit-Queue: Yuqian Li <liyuqian@google.com> TBR=liyuqian@google.com,reed@google.com,caryclark@skia.org Change-Id: Ia7a3608a54bed23827ed014213dcd6248adb271d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7731 Reviewed-on: https://skia-review.googlesource.com/113520 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* remove imageinfo flatten altogetherGravatar Cary Clark2018-03-19
| | | | | | | | | | | | | If SkImageInfo flatten and unflatten aren't referenced outside of one test, perhaps they can be removed altogether. R=reed@google.com Bug: skia:6898 Change-Id: Ia6f82b66d4496a628ad95c386d1865793f3e31a9 Reviewed-on: https://skia-review.googlesource.com/115074 Commit-Queue: Cary Clark <caryclark@skia.org> Reviewed-by: Mike Reed <reed@google.com>
* Revert "Revert "New read pixels implementation that is simpler but does all ↵Gravatar Brian Salomon2018-03-19
| | | | | | | | | | | | conversions on CPU."" This reverts commit be5947c2f38a79b7c709accfb1047d8fd06a0227. Bug: skia: Change-Id: I06dc15b31042d7827511d0ac2a7f4262c3f09622 Reviewed-on: https://skia-review.googlesource.com/115079 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "New read pixels implementation that is simpler but does all ↵Gravatar Brian Salomon2018-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | conversions on CPU." This reverts commit c9a642edf2d1c7f5380fe829adbb1a692f9969a6. Reason for revert: 1010102 gms broke Original change's description: > New read pixels implementation that is simpler but does all conversions on CPU. > > Change-Id: Ia548cd24a8544b35a233311706faf48de353b7cf > Reviewed-on: https://skia-review.googlesource.com/109902 > Commit-Queue: Brian Salomon <bsalomon@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com Change-Id: I7724a6eef79885ba2a32c1ac871e5b2a9a3c0c12 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/115140 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* New read pixels implementation that is simpler but does all conversions on CPU.Gravatar Brian Salomon2018-03-19
| | | | | | | Change-Id: Ia548cd24a8544b35a233311706faf48de353b7cf Reviewed-on: https://skia-review.googlesource.com/109902 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* handle divide by zero in paintGravatar Mike Reed2018-03-19
| | | | | | | | Bug: oss-fuzz:7003 Change-Id: Ie3266292ca94a28cc7023ed5255895d25f0d4dc8 Reviewed-on: https://skia-review.googlesource.com/115041 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Remove a ctor from SkAutoGlyphCache; removal continues.Gravatar Herb Derby2018-03-19
| | | | | | | | | | | This change SkAutoGlyphCache with one remaining ctor, then it's time to remove SkAutoGlyphCacheNoGamma, which is used but Android. Change-Id: I0f75ccb4139700d0b678492173f50ac0580d20cd Reviewed-on: https://skia-review.googlesource.com/115007 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Avoid bad alloc in SkReadBufferGravatar Kevin Lubick2018-03-19
| | | | | | | | | | | The fuzzer enjoyed tripping over this. Bug: skia: Change-Id: Ia7f4821404936266c77462232d7a64591580c2e0 Reviewed-on: https://skia-review.googlesource.com/114983 Commit-Queue: Kevin Lubick <kjlubick@google.com> Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>