aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
Commit message (Collapse)AuthorAge
...
* Remove DetachCache and AttachCache.Gravatar Herb Derby2018-03-12
| | | | | | | Change-Id: I78697bed25f5d26ad91318b1fa3efbfc697a428a Reviewed-on: https://skia-review.googlesource.com/113275 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Small cleanups suggested by ClangTidyGravatar Kevin Lubick2018-03-12
| | | | | | | | | Bug: skia: Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD Change-Id: Idd95e359838fdaecbdccc3a2c5a1b36971f20b8b Reviewed-on: https://skia-review.googlesource.com/113703 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Kevin Lubick <kjlubick@google.com>
* harden pathmeasure and fix empty caseGravatar Cary Clark2018-03-12
| | | | | | | | | | | | | | | | | | | | change int to unsigned (just make it uniform, part of it was already unsigned) change path by pointer to path by value since it will be copied on write; fixes bug where path changes from underneath measure Allow empty paths to still initialize measure state. This fixes the GM failure from the earlier check-in attempt in CL 113269. R=reed@google.com Bug: skia:7675 Change-Id: I6296bbf75296ead826e54662b025277dd226e2b8 Reviewed-on: https://skia-review.googlesource.com/113246 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* remove unused ConvertRadiusToSigma from SkBlurMaskFilterGravatar Mike Reed2018-03-12
| | | | | | | | Bug: skia: Change-Id: I1726f22fc40ad61b1b0485bcda6d383614da1fdb Reviewed-on: https://skia-review.googlesource.com/113463 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* with no more offline codegen, seed_shader can be normalGravatar Mike Klein2018-03-11
| | | | | | | | | | | | | | We passed this iota array as an argument before because it was generating awkward code for our object file parser to handle (relocations, other weird things, can't quite remember). Now that we're compiling pipeline code normally, we can make seed_shader a normal stage again, with no special iota ctx pointer needed. Change-Id: I3929d61bfb6f914248f360c2c2326ce3d1f23163 Reviewed-on: https://skia-review.googlesource.com/113667 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Check the boundary while cumulating deltas in a mask"Gravatar Yuqian Li2018-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Revert "start hardening pathmeasure"Gravatar Cary Clark2018-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 429a5406733e44cd9d379fc9aa0e2e206cc8867d. Reason for revert: <failed dm> Original change's description: > start hardening pathmeasure > > change int to unsigned (just make it uniform, > part of it was already unsigned) > > change path by pointer to path by value > since it will be copied on write; fixes bug > where path changes from underneath measure > > R=​reed@google.com > > Bug: skia:7675 > Change-Id: Ibfcfd4379cabd86b4ef4ea9ff6788d5ccb137ac1 > Reviewed-on: https://skia-review.googlesource.com/113269 > Commit-Queue: Cary Clark <caryclark@skia.org> > Reviewed-by: Mike Reed <reed@google.com> TBR=reed@google.com,caryclark@skia.org Change-Id: I35f89c135233b166b09ce8887a967da3b1407db8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7675 Reviewed-on: https://skia-review.googlesource.com/113480 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Check the boundary while cumulating deltas in a maskGravatar Yuqian Li2018-03-09
| | | | | | | | | | | | | | | | | 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>
* start hardening pathmeasureGravatar Cary Clark2018-03-09
| | | | | | | | | | | | | | | | | change int to unsigned (just make it uniform, part of it was already unsigned) change path by pointer to path by value since it will be copied on write; fixes bug where path changes from underneath measure R=reed@google.com Bug: skia:7675 Change-Id: Ibfcfd4379cabd86b4ef4ea9ff6788d5ccb137ac1 Reviewed-on: https://skia-review.googlesource.com/113269 Commit-Queue: Cary Clark <caryclark@skia.org> Reviewed-by: Mike Reed <reed@google.com>
* harden line clipper against slight numerical drift.Gravatar Mike Reed2018-03-09
| | | | | | | | Bug: skia:7491 Change-Id: I8d2b7cbfb580c0aabc76a72dfb317c35db43b329 Reviewed-on: https://skia-review.googlesource.com/113425 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Do not set record to empty if it's already computedGravatar Yuqian Li2018-03-09
| | | | | | | | | | | | Otherwise, the following test will fail: ./out/Debug/dm --config t8888 -m strokes_round Bug: skia: Change-Id: Ifc618fc42c6f387eae7b6aadd8424001c3e1464e Reviewed-on: https://skia-review.googlesource.com/113440 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Ensure Y->X ordering when building a region from a pathGravatar Mike Reed2018-03-09
| | | | | | | | | | | | | | | | | | | | | | Our region-builder-blitter insists on being called in a Y->X sorted order, which means (for example) if it is given a rect, then next blit call must be below that rect. However, we have helpers that blit rects "through" a region, and they iterate through the region using Cliperator, which returns the minimum (mostly) number of rects inside the region -- but these are not in strict Y->X order. Hence the problem. This CL avoids this by fixing it at the source. When we are asked to build a region by drawing a path clipped to another region, we check if that clip is complex. If it is, we first regionize the path against the clip's bounds (easy), and then call a region-op to intersect that with the complex clip. Bug: skia:7491 Change-Id: Ibf0a99e5bb38e369c4b263b0b07bfc04a572de63 Reviewed-on: https://skia-review.googlesource.com/113424 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Shim to enforce that canvas virtuals are overriddenGravatar Brian Osman2018-03-09
| | | | | | | | Change-Id: Iad70d449bbc43195baefd70d20c41996a8435e6e Reviewed-on: https://skia-review.googlesource.com/113320 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove TLS glyph cache calls.Gravatar Herb Derby2018-03-09
| | | | | | | Change-Id: Iafeb02d395cac81e8fe6d74c989a37607503919c Reviewed-on: https://skia-review.googlesource.com/113208 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Fix no gpu buildGravatar Greg Daniel2018-03-09
| | | | | | | | | Bug: skia: Change-Id: I9d357ec2e03ce83a7de70b61eab5cdd386724d22 Reviewed-on: https://skia-review.googlesource.com/113426 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Remove getCache from SkAutoGlyphCache*Gravatar Herb Derby2018-03-09
| | | | | | | Change-Id: Iac853ce1d37a89bc94b66f0d31d61e181c7808f6 Reviewed-on: https://skia-review.googlesource.com/113203 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Add promise images for deferred instantiation of wrapped gpu texturesGravatar Greg Daniel2018-03-09
| | | | | | | | | | | | | This will allow a client to make an SkImage that "wraps" a gpu texture, however the client does need to supply the actual gpu texture at Image creation time. Instead it is retrieve at flush time via a callback. Bug: skia: Change-Id: I6267a55ab7102101a7bd80a6f547b6a870d2df08 Reviewed-on: https://skia-review.googlesource.com/109021 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* Remove one use of AttachCache, and a paint variant of FindOrCreate...Gravatar Herb Derby2018-03-09
| | | | | | | | | | This is a point change to see if it causes bad draws using config gldft. Checked with skdiff on that config. Change-Id: Ibee4630df21456ba9dccf28480bded82d1d9bf47 Reviewed-on: https://skia-review.googlesource.com/113204 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Remove all uses of getCache with get.Gravatar Herb Derby2018-03-09
| | | | | | | | | | Holding off on removing definition until android cleans up its code. Change-Id: I19cce13d6d1f10f172770a926966761686bc7d6a Reviewed-on: https://skia-review.googlesource.com/113168 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Harden size check during textblob deserializationGravatar Wei Li2018-03-09
| | | | | | | | | | | | | Check the text size read from a buffer should not exceed the size of the input buffer. This is to avoid memory allocation errors such as out of memory. BUG=chromium:809200 Change-Id: I47824f6e8122bd550ee97ac83e2251b7725865e7 Reviewed-on: https://skia-review.googlesource.com/113289 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Change behavior of custom image serial/deserialGravatar Mike Reed2018-03-08
| | | | | | | | | | | | | | | | New behavior is to *always* call the client's deserial image proc for all data. This allows the client to make decisions even on "std" image data like PNG. The change also means that if there is no client deserial image proc, Skia will still attempt to create an image from the data, even if it was written by a custom serial proc. Bug: skia:7706 Change-Id: Ia58bdd10b86d497f02187082c6373c029e9c8293 Reviewed-on: https://skia-review.googlesource.com/113302 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Use clippedIR instead of clipBounds to filter coverage deltasGravatar Yuqian Li2018-03-08
| | | | | | | | | | | | | Due to precision limit, some cubics may generate lines exceeding the path's IR. Since we created delta list or delta mask using clippedIR, it's important that we use the stricter clippedIR instead of clipBounds to filter the coverage deltas. Bug: oss-fuzz:6189 Change-Id: I775408282fb45ada41968426c2f32d28bb567af1 Reviewed-on: https://skia-review.googlesource.com/113160 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* Delazify wrapped backend textures/render target proxiesGravatar Brian Salomon2018-03-08
| | | | | | | | | | | These methods will fail on DDL contexts. This is in preparation for removing the ability to specify origin for lazy proxies. Change-Id: Iadcedfd4fce8ea2590729c974128e5c58cec38a8 Reviewed-on: https://skia-review.googlesource.com/112802 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Additional DDL playback cleanupGravatar Robert Phillips2018-03-08
| | | | | | | | | | This operates in tandem with https://skia-review.googlesource.com/c/skia/+/112702 ( Remove GrRestrictedAtlasManager) to get DDL playback working. Change-Id: I6c2178fde760677bf79f2cf0a2dee8b5990aa5bc Reviewed-on: https://skia-review.googlesource.com/113121 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Revert "Revert "add tiler for SkDraw""Gravatar Mike Reed2018-03-07
| | | | | | | | | | | | This reverts commit 461ef7af88cc966007c464130a971ec86c803f1d. Prev CL to SkScan_Hairline.cpp fixed the bug that caused the earlier revert. Bug: skia: Change-Id: Ifd9a364c7546175be292f726e19465b72196b45e Reviewed-on: https://skia-review.googlesource.com/112723 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* chop down huge rects before hairliningGravatar Mike Reed2018-03-07
| | | | | | | | Bug: skia: Change-Id: I18f4b1dc4f279e37832d4bced0a66b5c356d09c0 Reviewed-on: https://skia-review.googlesource.com/112572 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Remove attach and detach glyph cache."Gravatar Herb Derby2018-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 61d56b92a4076f8afd644d015913641d691e39c8. Reason for revert: broke gldft text Original change's description: > Remove attach and detach glyph cache. > > BUG=skia:7515 > > Change-Id: Ib978e3cf4cfffdefe6453feb520e5e73684abf2e > Reviewed-on: https://skia-review.googlesource.com/112560 > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Herb Derby <herb@google.com> TBR=bungeman@google.com,herb@google.com Change-Id: Id5723a3abcd103ed20197bba2dab06e8074be633 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7515 Reviewed-on: https://skia-review.googlesource.com/112745 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Reland "Reland "make SkJumper stages normal Skia code""Gravatar Mike Klein2018-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a reland of 78cb579f33943421afc8423a39867fcfd69fed44 This time, lowp stages are controlled by !defined(JUMPER_IS_SCALAR), not by defined(__clang__). The two are usually the same, except when we opt Clang builds into JUMPER_IS_SCALAR artificially. Some Google3 builds use compilers old enough that they barf when compiling our NEON code. It's conceivably also possible to define JUMPER_IS_SCALAR yourself, but I don't think anyone does that. Original change's description: > Reland "make SkJumper stages normal Skia code" > > This is a reland of 22e536e3a1a09405d1c0e6f071717a726d86e8d4 > > Now with fixed #include paths in SkRasterPipeline_opts.h, > and -ffp-contract=fast for the :hsw target to minimize > diffs on non-Windows Clang AVX2/AVX-512 bots. > > Original change's description: > > make SkJumper stages normal Skia code > > > > Enough clients are using Clang now that we can say, use Clang to build > > if you want these software pipeline stages to go fast. > > > > This lets us drop the offline build aspect of SkJumper stages, instead > > building as part of Skia using the SkOpts framework. > > > > I think everything should work, except I've (temporarily) removed > > AVX-512 support. I will put this back in a follow up. > > > > I have had to drop Windows down to __vectorcall and our narrower > > stage calling convention that keeps the d-registers on the stack. > > I tried forcing sysv_abi, but that crashed Clang. :/ > > > > Added a TODO to up the same narrower stage calling convention > > for lowp stages... we just *don't* today, for no good reason. > > > > Change-Id: Iaaa792ffe4deab3508d2dc5d0008c163c24b3383 > > Reviewed-on: https://skia-review.googlesource.com/110641 > > Commit-Queue: Mike Klein <mtklein@chromium.org> > > Reviewed-by: Herb Derby <herb@google.com> > > Reviewed-by: Florin Malita <fmalita@chromium.org> > > Change-Id: I44f2c03d33958e3807747e40904b6351957dd448 > Reviewed-on: https://skia-review.googlesource.com/112742 > Reviewed-by: Mike Klein <mtklein@chromium.org> Change-Id: I3d71197d4bbb19ca4a94961a97fa2e54d5cbfb0d Reviewed-on: https://skia-review.googlesource.com/112744 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Revert "Reland "make SkJumper stages normal Skia code""Gravatar Mike Klein2018-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 78cb579f33943421afc8423a39867fcfd69fed44. Reason for revert: lowp should be controlled by defined(JUMPER_IS_SCALAR), not defined(__clang__). So close. Original change's description: > Reland "make SkJumper stages normal Skia code" > > This is a reland of 22e536e3a1a09405d1c0e6f071717a726d86e8d4 > > Now with fixed #include paths in SkRasterPipeline_opts.h, > and -ffp-contract=fast for the :hsw target to minimize > diffs on non-Windows Clang AVX2/AVX-512 bots. > > Original change's description: > > make SkJumper stages normal Skia code > > > > Enough clients are using Clang now that we can say, use Clang to build > > if you want these software pipeline stages to go fast. > > > > This lets us drop the offline build aspect of SkJumper stages, instead > > building as part of Skia using the SkOpts framework. > > > > I think everything should work, except I've (temporarily) removed > > AVX-512 support. I will put this back in a follow up. > > > > I have had to drop Windows down to __vectorcall and our narrower > > stage calling convention that keeps the d-registers on the stack. > > I tried forcing sysv_abi, but that crashed Clang. :/ > > > > Added a TODO to up the same narrower stage calling convention > > for lowp stages... we just *don't* today, for no good reason. > > > > Change-Id: Iaaa792ffe4deab3508d2dc5d0008c163c24b3383 > > Reviewed-on: https://skia-review.googlesource.com/110641 > > Commit-Queue: Mike Klein <mtklein@chromium.org> > > Reviewed-by: Herb Derby <herb@google.com> > > Reviewed-by: Florin Malita <fmalita@chromium.org> > > Change-Id: I44f2c03d33958e3807747e40904b6351957dd448 > Reviewed-on: https://skia-review.googlesource.com/112742 > Reviewed-by: Mike Klein <mtklein@chromium.org> TBR=mtklein@chromium.org,herb@google.com,fmalita@chromium.org Change-Id: Ie64da98f5187d44e03c0ce05d7cb189d4a6e6663 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/112743 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Remove attach and detach glyph cache.Gravatar Herb Derby2018-03-07
| | | | | | | | | BUG=skia:7515 Change-Id: Ib978e3cf4cfffdefe6453feb520e5e73684abf2e Reviewed-on: https://skia-review.googlesource.com/112560 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Reland "make SkJumper stages normal Skia code"Gravatar Mike Klein2018-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a reland of 22e536e3a1a09405d1c0e6f071717a726d86e8d4 Now with fixed #include paths in SkRasterPipeline_opts.h, and -ffp-contract=fast for the :hsw target to minimize diffs on non-Windows Clang AVX2/AVX-512 bots. Original change's description: > make SkJumper stages normal Skia code > > Enough clients are using Clang now that we can say, use Clang to build > if you want these software pipeline stages to go fast. > > This lets us drop the offline build aspect of SkJumper stages, instead > building as part of Skia using the SkOpts framework. > > I think everything should work, except I've (temporarily) removed > AVX-512 support. I will put this back in a follow up. > > I have had to drop Windows down to __vectorcall and our narrower > stage calling convention that keeps the d-registers on the stack. > I tried forcing sysv_abi, but that crashed Clang. :/ > > Added a TODO to up the same narrower stage calling convention > for lowp stages... we just *don't* today, for no good reason. > > Change-Id: Iaaa792ffe4deab3508d2dc5d0008c163c24b3383 > Reviewed-on: https://skia-review.googlesource.com/110641 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Herb Derby <herb@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> Change-Id: I44f2c03d33958e3807747e40904b6351957dd448 Reviewed-on: https://skia-review.googlesource.com/112742 Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "make SkJumper stages normal Skia code"Gravatar Mike Klein2018-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 22e536e3a1a09405d1c0e6f071717a726d86e8d4. Reason for revert: wrong include path :/ Original change's description: > make SkJumper stages normal Skia code > > Enough clients are using Clang now that we can say, use Clang to build > if you want these software pipeline stages to go fast. > > This lets us drop the offline build aspect of SkJumper stages, instead > building as part of Skia using the SkOpts framework. > > I think everything should work, except I've (temporarily) removed > AVX-512 support. I will put this back in a follow up. > > I have had to drop Windows down to __vectorcall and our narrower > stage calling convention that keeps the d-registers on the stack. > I tried forcing sysv_abi, but that crashed Clang. :/ > > Added a TODO to up the same narrower stage calling convention > for lowp stages... we just *don't* today, for no good reason. > > Change-Id: Iaaa792ffe4deab3508d2dc5d0008c163c24b3383 > Reviewed-on: https://skia-review.googlesource.com/110641 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Herb Derby <herb@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> TBR=mtklein@chromium.org,herb@google.com,fmalita@chromium.org Change-Id: I2bdc709c80cdfa6b13ff24e024b3721bef887f46 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/112741 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* make SkJumper stages normal Skia codeGravatar Mike Klein2018-03-07
| | | | | | | | | | | | | | | | | | | | | | | | Enough clients are using Clang now that we can say, use Clang to build if you want these software pipeline stages to go fast. This lets us drop the offline build aspect of SkJumper stages, instead building as part of Skia using the SkOpts framework. I think everything should work, except I've (temporarily) removed AVX-512 support. I will put this back in a follow up. I have had to drop Windows down to __vectorcall and our narrower stage calling convention that keeps the d-registers on the stack. I tried forcing sysv_abi, but that crashed Clang. :/ Added a TODO to up the same narrower stage calling convention for lowp stages... we just *don't* today, for no good reason. Change-Id: Iaaa792ffe4deab3508d2dc5d0008c163c24b3383 Reviewed-on: https://skia-review.googlesource.com/110641 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "add tiler for SkDraw"Gravatar Florin Malita2018-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit be1b3971806e3d80aa9673a36e2b35d0145198ac. Reason for revert: Unexpected layout test diffs: https://test-results.appspot.com/data/layout_results/linux_trusty_blink_rel/24989/layout-test-results/results.html Original change's description: > add tiler for SkDraw > > Bug: skia:2122 > Change-Id: I276de2064939151eef5fa14c53188e8b5728b7c9 > Reviewed-on: https://skia-review.googlesource.com/110840 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Yuqian Li <liyuqian@google.com> TBR=liyuqian@google.com,reed@google.com Change-Id: Ia598c0d7c4ac6cfcdb905b847040c250fa366402 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:2122 Reviewed-on: https://skia-review.googlesource.com/112740 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* use safe math for growForRepeatedVerbGravatar Cary Clark2018-03-06
| | | | | | | | | R=reed@google.com Bug: skia:7659 Change-Id: Ib1d2a2042830b56f559e4ff4eae97fd86a194bb9 Reviewed-on: https://skia-review.googlesource.com/111060 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Revert "Centralize mask byte calculations"Gravatar Herb Derby2018-03-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8994150a436f0e813e9a7b8a2dc0ad237f4e3513. Reason for revert: Breaks mask rowbytes calc. Original change's description: > Centralize mask byte calculations > > These calculations are usually done in place around the code, > but most implementation don't take the care needed for safe calculation. > > I have provided safe implementations for use around the code. It > will take a while to track down all the independant implementations > and convert them over. > > BUG=skia:7515 > > Change-Id: Ice6a9be2e8e5ebef18d472adb26c17b03177ef47 > Reviewed-on: https://skia-review.googlesource.com/111120 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Herb Derby <herb@google.com> TBR=herb@google.com,reed@google.com Change-Id: I2ce6c5e647fb684c6472022517ad777d29c8177c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7515 Reviewed-on: https://skia-review.googlesource.com/112640 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Cleaning up SkColorSpaceXform a bitGravatar Brian Osman2018-03-06
| | | | | | | | | | | | | | | | Remove SkColorSpaceXform_base from the inheritance chain. Move some enums only used within XYZ to be class scoped. Eliminate redundant context structs, and just use the SkJumper types directly. SkColorSpaceXform_Base still exists, but just to hold a couple static functions. Trying to untangle the dst gamma table mess next. Bug: skia: Change-Id: I6d2b7807c33e61a0d7df74e334356567d8a2c0e0 Reviewed-on: https://skia-review.googlesource.com/112601 Commit-Queue: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Centralize mask byte calculationsGravatar Herb Derby2018-03-06
| | | | | | | | | | | | | | | | These calculations are usually done in place around the code, but most implementation don't take the care needed for safe calculation. I have provided safe implementations for use around the code. It will take a while to track down all the independant implementations and convert them over. BUG=skia:7515 Change-Id: Ice6a9be2e8e5ebef18d472adb26c17b03177ef47 Reviewed-on: https://skia-review.googlesource.com/111120 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Herb Derby <herb@google.com>
* add tiler for SkDrawGravatar Mike Reed2018-03-06
| | | | | | | | Bug: skia:2122 Change-Id: I276de2064939151eef5fa14c53188e8b5728b7c9 Reviewed-on: https://skia-review.googlesource.com/110840 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* support 888x, 1010102, and 101010x in SkPixmap::erase()Gravatar Mike Klein2018-03-06
| | | | | | | | | | | ... and a few more methods to make it possible to write the new test. Bug: oss-fuzz:6606 Change-Id: Ie8dd221059579248405f165a93c324c8ba518fd4 Reviewed-on: https://skia-review.googlesource.com/112400 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* remove canvas internal privateGravatar Cary Clark2018-03-06
| | | | | | | | | | | | | interfaces not called externally and aren't used internally R=robertphillips@google.com,reed@google.com Bug: skia:6455 Change-Id: Iee98ce4380a28a831d9bffe99932b54421dd339a Reviewed-on: https://skia-review.googlesource.com/112481 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Draw glyphs from paths if they have an empty path.Gravatar Ben Wagner2018-03-06
| | | | | | | | | | | | This distuguishes between glyphs which do not have a path and glyphs which have a path but that path resolves to the empty path. BUG=chromium:816763 Change-Id: Id6c7dd66cdad3868bf3fe15bcb6e5e6f2ca82405 Reviewed-on: https://skia-review.googlesource.com/112484 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add GetTypefaceOrDefault to SkPaintPrivGravatar Herb Derby2018-03-06
| | | | | | | | | | | | Remove most uses of GetDefaultTypeface. SkTypeface has fewer friends. BUG=skia:7515 Change-Id: Iedec5b39b9ef8c638772be4971075491b59b740b Reviewed-on: https://skia-review.googlesource.com/112300 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* use points instead of verbs for interpolateGravatar Cary Clark2018-03-06
| | | | | | | | | | | use points instead of verbs for interpolate R=fmalita@chromium.org Bug: skia:6782 Change-Id: I2dc7d806b0115374d973568bec2061a69d459573 Reviewed-on: https://skia-review.googlesource.com/112460 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* make compute helper for blurs privateGravatar Mike Reed2018-03-06
| | | | | | | | | | | Precursor for moving blurmaskfilter into core, since it is referenced by core code for drawShadow. Bug: skia: Change-Id: I900c6e10523115c75f45d2c410eb6a5ca56a6e4d Reviewed-on: https://skia-review.googlesource.com/112301 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Move internal calls from GrContext to GrContextPrivGravatar Robert Phillips2018-03-06
| | | | | | | | | | A mechanical bulk move just to get these out of the public API. TBR=bsalomon@google.com Change-Id: I813efbd54a09dd448275697c0e50947753a5cfd3 Reviewed-on: https://skia-review.googlesource.com/112262 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* SkGlyphCache - update core routines.Gravatar Herb Derby2018-03-05
| | | | | | | | | | | | | | | | | - Allows different methods for creating SkGlyphCaches - Enables passing FontMetrics for cache creation. - Removes VisitCache - Removes VisitAll - Introduces SkExclusiveStrikePtr which should replaces SkAutoGlyphCache with simpler mechanism. BUG=skia:7515 Change-Id: Ibada35e3985335179d2cc8284a837fc525224c92 Reviewed-on: https://skia-review.googlesource.com/111063 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Set SkDAARecord to empty type if the scan converter returns earlyGravatar Yuqian Li2018-03-05
| | | | | | | | | | | | | | Otherwise, ./out/Debug/dm --config t8888 -m bug583299 will crash at SkASSERT(record->fType != SkDAARecord::Type::kToBeComputed) Bug: skia: Change-Id: Ie93221bd6ea7ab9bc9f3d79fd7fe02b315e6a089 Reviewed-on: https://skia-review.googlesource.com/111680 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Revert "Revert "Add 1010102 support to Ganesh""Gravatar Brian Osman2018-03-02
| | | | | | | | | | This reverts commit ded47a50143470d1acdafa03e878cc7da5608038. Bug: skia: Change-Id: I7d7552e6ccc8591cae91426407ab13b628b93b68 Reviewed-on: https://skia-review.googlesource.com/111760 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Fix creation of extra GrContextThreadSafeProxies in DDL worldGravatar Robert Phillips2018-03-02
| | | | | | | | | | For the DDLContexts we simply want to reuse the threadSafeProxy from the main thread but we, obviously, still need to create one for the main DirectContext. TBR=bsalomon@google.com Change-Id: I99449bc375172c9004e2e80c21d95ab2d7708309 Reviewed-on: https://skia-review.googlesource.com/110781 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>