aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
...
* sk_sp-ify GrGlyphCacheGravatar Robert Phillips2018-03-01
| | | | | | | | | Hopefully, this makes it clearer that the subRuns of the GrAtlasTextBlobs carry a ref on the GrAtlasTextStrikes Change-Id: I3d612074d98bc26240465f717711b7a2bcecb6ed Reviewed-on: https://skia-review.googlesource.com/110981 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* Move atlas manager creation to GrContext derived classes (take 2)Gravatar Robert Phillips2018-03-01
| | | | | | | | TBR=bsalomon@google.com Change-Id: Ie10b7e770e24104d10c36ce7882126dd8551a8ba Reviewed-on: https://skia-review.googlesource.com/110822 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Move the rest of Vulkan driver workarounds into helper function in GrVkCapsGravatar Greg Daniel2018-03-01
| | | | | | | | Bug: skia: Change-Id: Ic9dfc9d09b3fd1d6c8491f6da0d46d03c125a10f Reviewed-on: https://skia-review.googlesource.com/111440 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Fission GrAtlasGlyphCache in two (take 2)Gravatar Robert Phillips2018-03-01
| | | | | | | | | | | | | | | | | | | | | Reland all the things This CL splits the old GrAtlasGlyphCache into a GrAtlasGlyphCache and an GrAtlasManager. The GrAtlasManager itself is split into a rather limited base class (GrRestrictedAtlasManager) and the all powerful GrAtlasManager. The GrRestrictedAtlasManager is available at op creation time and provides access to the proxies backing the atlases. The full GrAtlasManager is only available at flush time and allows instantiation of the proxies and uploading to them. In the DDL world all of the DDL Contexts will receive a GrRestrictedAtlasManager-version of the GrAtlasManager in the main thread. This future atlas manager will have had all of its GrDrawOpAtlases created (but not instantiated) so there should be no race conditions. TBR=jvanverth@google.com Change-Id: I05c6cd8d301bf2decca39765e5cae62993d9da04 Reviewed-on: https://skia-review.googlesource.com/111362 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* SkString: fix ::setUTF16Gravatar Hal Canary2018-03-01
| | | | | | | Change-Id: I7ab4af9ae55a43cc05f81b0c236f29a64beac982 Reviewed-on: https://skia-review.googlesource.com/111223 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Add 1010102 support to GaneshGravatar Brian Osman2018-03-01
| | | | | | | | | | | | | Adds gl1010102, gles1010102, vk1010102, and mtl1010102 configs to DM. This uses the same saveLayer approach as CPU, switching to 8888 so that we have enough alpha precision. Change-Id: I9f5b63747ec01031c8db97dadfc42f77e4863ccb Reviewed-on: https://skia-review.googlesource.com/110500 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add unit test the explicit tests create a GrVkCopyPipelineGravatar Greg Daniel2018-03-01
| | | | | | | | Bug: skia:7663 Change-Id: I9883d903302fbbcd42f73601f49af96b6cc875ba Reviewed-on: https://skia-review.googlesource.com/111361 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Hal Canary <halcanary@google.com>
* Clean up GrDrawOpAtlas (take 2)Gravatar Robert Phillips2018-03-01
| | | | | | | | | | Relanding all the things TBR=jvanverth@google.com Change-Id: Ie4ecdaee1c192c841817a54d64a9b3f70d28b28f Reviewed-on: https://skia-review.googlesource.com/111360 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Separate creation time & flush time behavior in GrDrawOpAtlas (take 3)Gravatar Robert Phillips2018-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache. For the GrDrawOpAtlas: At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated. The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time. During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive. The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas It now carries a GrProxyProvider for when it needs to create an atlas It passes in a GrResourceProvider* at flush time to allow instantiation. It does not, yet, allocate that GrDrawOpAtlases it might ever require. TBR=bsalomon@google.com Change-Id: I276d339d81e7b709140e082a7b58c5584f73ab70 Reviewed-on: https://skia-review.googlesource.com/111100 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* Support pngs with incorrect CMF bytesGravatar Leon Scroggins III2018-02-28
| | | | | | | | | | | | | Bug: chromium:807324 Though these pngs are technically incorrect, many such PNGs exist, and they are supported in Chromium. Ensure that users of SkCodec (e.g. Android, Flutter) display them as well. Change-Id: I2f1e573b4b7039cea81f96397cc0aa4cbc9461c3 Reviewed-on: https://skia-review.googlesource.com/111082 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Derek Sollenberger <djsollen@google.com>
* make SkDestinationSurfaceColorMode privateGravatar Cary Clark2018-02-28
| | | | | | | | | R=brianosman@google.com, reed@google.com Bug: skia: Change-Id: Ibbf91a664cc504737137717d9170ce4de09b017c Reviewed-on: https://skia-review.googlesource.com/111161 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Fall back to blurs for unsupported DrawShadow casesGravatar Jim Van Verth2018-02-28
| | | | | | | | Bug: skia:7263 Change-Id: Ifb70212e369ed783bd03a6ff2a540a8f46282595 Reviewed-on: https://skia-review.googlesource.com/109388 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* SkPDF: encode metadata strings correctlyGravatar Hal Canary2018-02-28
| | | | | | | | BUG=skia:7669 Change-Id: I3a90a2406854cc9bcfdd299e09ae3d6e610f2cc7 Reviewed-on: https://skia-review.googlesource.com/111121 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Respect disable driver correctness workaround flag in VulkanGravatar Greg Daniel2018-02-28
| | | | | | | | Bug: skia: Change-Id: Ibbfac1ec5d290d3ed4a6fefbc1cec04377fcd9bc Reviewed-on: https://skia-review.googlesource.com/111020 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Update certain instrinsic calls in SkSL SPIR-V gen to not mix vectors and ↵Gravatar Ethan Nicholas2018-02-28
| | | | | | | | | | | | | | scalars. Functions like min, max, clamp, and mix cannot intermix vectors and scalars as operands and return value. This updates SkSL to promote scalars to vectors if need be before calling these functions. Bug: skia:7653 Change-Id: I13f98d452978e3f15bafddea638b7bbe313d98ce Reviewed-on: https://skia-review.googlesource.com/110660 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Revert "Revert "Revert "Separate creation time & flush time behavior in ↵Gravatar Robert Phillips2018-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrDrawOpAtlas (take 2)""" This reverts commit 934c3d0c548d254a0d986963ee751caf0ffcb500. Reason for revert: Chrome Original change's description: > Revert "Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)"" > > This reverts commit 84d823a5e2a03b09f7db4964218b9e04e821c878. > > Reason for revert: The DFT diffs don't repro on Windows so I'm chalking it up to minor device differences > > Original change's description: > > Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)" > > > > This reverts commit 96165ebeaa36a2aae0eedaf12d81f53d3caf999a. > > > > Reason for revert: DFT GMs w/ LCD text are slightly different > > > > Original change's description: > > > Separate creation time & flush time behavior in GrDrawOpAtlas (take 2) > > > > > > This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache. > > > > > > For the GrDrawOpAtlas: > > > At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated. > > > > > > The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush > > > > > > GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time. > > > > > > During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive. > > > > > > The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas > > > It now carries a GrProxyProvider for when it needs to create an atlas > > > It passes in a GrResourceProvider* at flush time to allow instantiation. > > > > > > It does not, yet, allocate that GrDrawOpAtlases it might ever require. > > > > > > Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc > > > Reviewed-on: https://skia-review.googlesource.com/109749 > > > Reviewed-by: Jim Van Verth <jvanverth@google.com> > > > Commit-Queue: Robert Phillips <robertphillips@google.com> > > > > TBR=jvanverth@google.com,robertphillips@google.com > > > > Change-Id: I62efc61c8394477e54d6e79fa2f65180c91a4515 > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Reviewed-on: https://skia-review.googlesource.com/110220 > > Reviewed-by: Robert Phillips <robertphillips@google.com> > > Commit-Queue: Robert Phillips <robertphillips@google.com> > > TBR=jvanverth@google.com,robertphillips@google.com > > Change-Id: I7c87b4523f9b53285f0de5c2d741a25893522d9a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/110221 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=jvanverth@google.com,robertphillips@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I7dd73ab0159f38595f21b21eef3becc10aa0934d Reviewed-on: https://skia-review.googlesource.com/111080 Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Clean up GrDrawOpAtlas"Gravatar Robert Phillips2018-02-28
| | | | | | | | | | | | | | | | | | | | | | This reverts commit 9d57afd93e70d3bd40ed470b1de28ccc03b98208. Reason for revert: Chrome Original change's description: > Clean up GrDrawOpAtlas > > Change-Id: I18dea851fa950231c4106e2e049e74a678a03df2 > Reviewed-on: https://skia-review.googlesource.com/110380 > Reviewed-by: Jim Van Verth <jvanverth@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=jvanverth@google.com,robertphillips@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Ibf879c12e5074d8c4a4ec8563cfdd7ed0afb6aec Reviewed-on: https://skia-review.googlesource.com/111041 Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Fission GrAtlasGlyphCache in two"Gravatar Robert Phillips2018-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit acf17904d6286f2a63a5d895541804d0ea1be646. Reason for revert: Chrome Original change's description: > Fission GrAtlasGlyphCache in two > > This CL splits the old GrAtlasGlyphCache into a GrAtlasGlyphCache and an GrAtlasManager. > > The GrAtlasManager itself is split into a rather limited base class (GrRestrictedAtlasManager) > and the all powerful GrAtlasManager. The GrRestrictedAtlasManager is available at op creation > time and provides access to the proxies backing the atlases. The full GrAtlasManager is > only available at flush time and allows instantiation of the proxies and uploading to them. > > In the DDL world all of the DDL Contexts will receive a GrRestrictedAtlasManager-version of the > GrAtlasManager in the main thread. This future atlas manager will have had all of its > GrDrawOpAtlases created (but not instantiated) so there should be no race conditions. > > Change-Id: I9967d3a4116af50128f390c5039a712b8cd4db08 > Reviewed-on: https://skia-review.googlesource.com/108001 > Commit-Queue: Robert Phillips <robertphillips@google.com> > Reviewed-by: Jim Van Verth <jvanverth@google.com> TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: I7c760ea1a9f041a310b96d552aa1497ee5902cd8 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/111040 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Move atlas manager creation to GrContext derived classes"Gravatar Robert Phillips2018-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e5b7ceeac865fb8a3bab82a73d65752c78682718. Reason for revert: Breaking Mus/Viz tests in Chrome roll Original change's description: > Move atlas manager creation to GrContext derived classes > > This CL relies on: https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two) > > TBR=bsalomon@google.com > Change-Id: Ic3f91cea2238221b970f8ebbda99b10202925cd8 > Reviewed-on: https://skia-review.googlesource.com/110621 > Commit-Queue: Robert Phillips <robertphillips@google.com> > Reviewed-by: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: I3973463b7b837145d9732171a91d82f0f0cea148 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/110821 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Refactor GrCaps::renderTargetWritePixelsSupported to support for some GL ↵Gravatar Brian Salomon2018-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | workarounds Make indirect path in writeSurfacePixels2 use a copy rather than a draw. Fix issue in GrVkGpu where render target dirty region is not updated after copy-as-draw Remove unnecessary resolve of MSAA RT in GrVkCopyManager. Splits WritePixelsNonTexture_Gpu test into MSAA and non-MSAA variants. MSAA variant blacklisted on Adreno because of: Bug: skia:7663 ~~~~~~AND~~~~~~~ Revert "Suppress CopySurface test on Nexus 7" This reverts commit b42b6169d52408a1712c2740655300465cd6ff1e. Bug: skia:7658 Change-Id: I8337d718efb41e266537744bbf5ff8b1545322a7 Reviewed-on: https://skia-review.googlesource.com/110700 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Move atlas manager creation to GrContext derived classesGravatar Robert Phillips2018-02-28
| | | | | | | | | | This CL relies on: https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two) TBR=bsalomon@google.com Change-Id: Ic3f91cea2238221b970f8ebbda99b10202925cd8 Reviewed-on: https://skia-review.googlesource.com/110621 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Fission GrAtlasGlyphCache in twoGravatar Robert Phillips2018-02-27
| | | | | | | | | | | | | | | | | | This CL splits the old GrAtlasGlyphCache into a GrAtlasGlyphCache and an GrAtlasManager. The GrAtlasManager itself is split into a rather limited base class (GrRestrictedAtlasManager) and the all powerful GrAtlasManager. The GrRestrictedAtlasManager is available at op creation time and provides access to the proxies backing the atlases. The full GrAtlasManager is only available at flush time and allows instantiation of the proxies and uploading to them. In the DDL world all of the DDL Contexts will receive a GrRestrictedAtlasManager-version of the GrAtlasManager in the main thread. This future atlas manager will have had all of its GrDrawOpAtlases created (but not instantiated) so there should be no race conditions. Change-Id: I9967d3a4116af50128f390c5039a712b8cd4db08 Reviewed-on: https://skia-review.googlesource.com/108001 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* date recent version bump for path serializationGravatar Mike Reed2018-02-27
| | | | | | | Bug: skia: Change-Id: I7f8fd114c3167e7787f80a9f800e5cff5b63c60a Reviewed-on: https://skia-review.googlesource.com/110803 Reviewed-by: Mike Reed <reed@google.com>
* fix crasher in path-->regionGravatar Mike Reed2018-02-27
| | | | | | | | | Bug: skia:7491 Change-Id: I7e8b9fbe43098094d5935331107c3f40fb6971ec Reviewed-on: https://skia-review.googlesource.com/110721 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Cary Clark <caryclark@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* Fix unit tests that were causes vulkan unitialized memory warnings in validationGravatar Greg Daniel2018-02-27
| | | | | | | | Bug: skia: Change-Id: Id9df92b76c9f948f41f4108bcecdb2687233f841 Reviewed-on: https://skia-review.googlesource.com/110761 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Make sure we add render target mem barriers after any last second copiesGravatar Greg Daniel2018-02-27
| | | | | | | | Bug: skia: Change-Id: I67e6e6a026145ecbd7476fbf201ce07e053c337d Reviewed-on: https://skia-review.googlesource.com/110622 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* avoid divide in pathopsquadGravatar Cary Clark2018-02-27
| | | | | | | | Bug: skia: Change-Id: I535b1833712e87bb562e2cbef450a4f6e16ec2c5 Reviewed-on: https://skia-review.googlesource.com/110441 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Cary Clark <caryclark@skia.org>
* keep points as floats until after clippingGravatar Mike Reed2018-02-27
| | | | | | | | Bug: oss-fuzz:6539 Change-Id: Ia91dee2a023c9b17d06948c455b8ea6a1b213e0d Reviewed-on: https://skia-review.googlesource.com/110501 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Mike Reed <reed@google.com>
* limit crash small steps in 1dpatheffectGravatar Mike Reed2018-02-27
| | | | | | | | Bug: oss-fuzz:6590 Change-Id: Ib7b6f4d25712e462ca45284cf6fc8fd73aa92880 Reviewed-on: https://skia-review.googlesource.com/110640 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Fix height calculation when doing copyImageToBufferGravatar Greg Daniel2018-02-26
| | | | | | | | | | The bug only manifested when we were forcing copies from the origin. Bug: skia: Change-Id: I63f17ad9282b10f0d9c9c9ef38031faad32e20a3 Reviewed-on: https://skia-review.googlesource.com/110445 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* make 1010102/888x layers 8888, not 1010102/888xGravatar Mike Klein2018-02-26
| | | | | | | | | | This hopefully keeps all other considerations the same, like sRGB keeps sRGB layers, F16 F16 layers, etc. Change-Id: Icdf0b259ae782321e6f96c6f8bc814d520c7dd25 Reviewed-on: https://skia-review.googlesource.com/110442 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Start on new GPU pixel ops implementation.Gravatar Brian Salomon2018-02-26
| | | | | | | | | | | | | The new ops attempt to be less optimal by falling back to CPU conversions rather than relying on intermediate draws and complex coordination between GrContext and GrGpu to determine how conversions are performed. This adds the new writePixels implementation. Change-Id: I7496d86d5a40277ed2ca63668881c160e54d80d3 Reviewed-on: https://skia-review.googlesource.com/109880 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add cap workarounds for possible arm bugsGravatar Greg Daniel2018-02-26
| | | | | | | | | | This disables doing copies as draws and disables instance attrib support. Bug: skia: Change-Id: I52c03d773974a697901ba1fc9dfa824262285568 Reviewed-on: https://skia-review.googlesource.com/110320 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Clean up GrDrawOpAtlasGravatar Robert Phillips2018-02-26
| | | | | | | Change-Id: I18dea851fa950231c4106e2e049e74a678a03df2 Reviewed-on: https://skia-review.googlesource.com/110380 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add some additional checks for shadow generationGravatar Jim Van Verth2018-02-26
| | | | | | | Change-Id: I4dae4173ad879827e4e1fa3ad12aa0447d1df252 Reviewed-on: https://skia-review.googlesource.com/110360 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Revert "Revert "Fixes to alignment issues with regards to mapped vulkan ↵Gravatar Greg Daniel2018-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | memory."" This reverts commit 88fdee9bde97df106a8d81b450982b8296a2bc90. Reason for revert: Pre Fixes landed in other repos Original change's description: > Revert "Fixes to alignment issues with regards to mapped vulkan memory." > > This reverts commit 9fb6cf4c49b0f095e5cc005feb05b5522731421b. > > Reason for revert: breaks fuchsia > > Original change's description: > > Fixes to alignment issues with regards to mapped vulkan memory. > > > > Bug: skia: > > Change-Id: Ida9813fe774580a6d157b8eb8d330488c8e8c4bc > > Reviewed-on: https://skia-review.googlesource.com/109483 > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > Reviewed-by: Jim Van Verth <jvanverth@google.com> > > TBR=djsollen@google.com,egdaniel@google.com,jvanverth@google.com > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Bug: skia: > Change-Id: If1223313cab27737ada401d1f3fe4b7ab849d03f > Reviewed-on: https://skia-review.googlesource.com/110040 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> Bug: skia: Change-Id: Ifeebf535c3617674846f7ef25e686ee11ceee65c Reviewed-on: https://skia-review.googlesource.com/110160 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* use SkIRect makeOffset to avoid overflowsGravatar Mike Reed2018-02-26
| | | | | | | | Bug: oss-fuzz:7657 Change-Id: I7917306cf0a158d2e1f36611e85ef26028da9954 Reviewed-on: https://skia-review.googlesource.com/110280 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* fix mask address calculationGravatar Mike Klein2018-02-26
| | | | | | | | | | | | | | | | | | | Switching the math from using fMaskPtr.stride to using mask.fRowBytes fixes the integer overflow here. However, if done naively it'd still do the math wrong, as mask.fRowBytes is stored as a uint32_t, and the 32-bit overflow still happens, silently. So we explicitly promote to size_t too. As a follow up we should consider turning on 'integer' sanitizer, which treats unsigned integer overflow as an error. Even though it's technically defined, it's likely not intended. Bug: skia:7563 Change-Id: Ia579d4f5615ed28180e6aaf3d4c3b54f516e655c Reviewed-on: https://skia-review.googlesource.com/110260 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Fix overflow in number of bytes to erase.Gravatar Herb Derby2018-02-26
| | | | | | | | | | | | The width and the height were multiplied as int * int. Now it is int64_t * int64_t. BUG=chromium:812519 Change-Id: If60bbdd8ee92748559b2e4f3ab57e4463a8006e8 Reviewed-on: https://skia-review.googlesource.com/109781 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Revert "Separate creation time & flush time behavior in ↵Gravatar Robert Phillips2018-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrDrawOpAtlas (take 2)"" This reverts commit 84d823a5e2a03b09f7db4964218b9e04e821c878. Reason for revert: The DFT diffs don't repro on Windows so I'm chalking it up to minor device differences Original change's description: > Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)" > > This reverts commit 96165ebeaa36a2aae0eedaf12d81f53d3caf999a. > > Reason for revert: DFT GMs w/ LCD text are slightly different > > Original change's description: > > Separate creation time & flush time behavior in GrDrawOpAtlas (take 2) > > > > This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache. > > > > For the GrDrawOpAtlas: > > At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated. > > > > The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush > > > > GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time. > > > > During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive. > > > > The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas > > It now carries a GrProxyProvider for when it needs to create an atlas > > It passes in a GrResourceProvider* at flush time to allow instantiation. > > > > It does not, yet, allocate that GrDrawOpAtlases it might ever require. > > > > Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc > > Reviewed-on: https://skia-review.googlesource.com/109749 > > Reviewed-by: Jim Van Verth <jvanverth@google.com> > > Commit-Queue: Robert Phillips <robertphillips@google.com> > > TBR=jvanverth@google.com,robertphillips@google.com > > Change-Id: I62efc61c8394477e54d6e79fa2f65180c91a4515 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/110220 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=jvanverth@google.com,robertphillips@google.com Change-Id: I7c87b4523f9b53285f0de5c2d741a25893522d9a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/110221 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)"Gravatar Robert Phillips2018-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 96165ebeaa36a2aae0eedaf12d81f53d3caf999a. Reason for revert: DFT GMs w/ LCD text are slightly different Original change's description: > Separate creation time & flush time behavior in GrDrawOpAtlas (take 2) > > This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache. > > For the GrDrawOpAtlas: > At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated. > > The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush > > GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time. > > During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive. > > The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas > It now carries a GrProxyProvider for when it needs to create an atlas > It passes in a GrResourceProvider* at flush time to allow instantiation. > > It does not, yet, allocate that GrDrawOpAtlases it might ever require. > > Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc > Reviewed-on: https://skia-review.googlesource.com/109749 > Reviewed-by: Jim Van Verth <jvanverth@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=jvanverth@google.com,robertphillips@google.com Change-Id: I62efc61c8394477e54d6e79fa2f65180c91a4515 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/110220 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Do not return null paint if shaderFP is null"Gravatar Yuqian Li2018-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0d96175c97856d272d299c86577a34f825e810fc. Reason for revert: skia:7583 Also, LG probably doesn't really care about the original fix so we should be fine for reverting the CL. Original change's description: > Do not return null paint if shaderFP is null > > This fixes the ripple bug reported by LG: > https://b.corp.google.com/issues/68964656 > > In that bug, the button is so tall that our image shader returns > a null fragment processor because the height exceeds GL_MAX_TEXTURE_SIZE. > If we return null paint, the ripple is completely gone. This CL returns > a default paint so we can still see the ripple, and that matches HWUI's > behaviour. > > A GM will be added later after some other urgent Android ripple bug fixes. > > Bug: skia: > Change-Id: I9bcafc078916a6a15fbd84d2019f39ac88d2b2f8 > Reviewed-on: https://skia-review.googlesource.com/73200 > Commit-Queue: Yuqian Li <liyuqian@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=egdaniel@google.com,bsalomon@google.com,liyuqian@google.com Bug: skia:7583 Change-Id: I0c8fe994bf0ae07d9f52eafee79adcfcbd0c6445 Reviewed-on: https://skia-review.googlesource.com/110200 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Send correct clear count to vulkan beginRenderPassGravatar Greg Daniel2018-02-26
| | | | | | | | | | | This technically wasn't an error but fixes a warning in the validation layers. Bug: skia: Change-Id: I3d0d0aa3a29b5a08f145ceabedb9357791d36cb2 Reviewed-on: https://skia-review.googlesource.com/109881 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)Gravatar Robert Phillips2018-02-26
| | | | | | | | | | | | | | | | | | | | | | | | This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache. For the GrDrawOpAtlas: At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated. The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time. During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive. The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas It now carries a GrProxyProvider for when it needs to create an atlas It passes in a GrResourceProvider* at flush time to allow instantiation. It does not, yet, allocate that GrDrawOpAtlases it might ever require. Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc Reviewed-on: https://skia-review.googlesource.com/109749 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add threaded backend sink to DM. Fix a scheduler bug.Gravatar Yuqian Li2018-02-25
| | | | | | | | | | | The bug is spotted by the new sink. I'd expect more bugs to be revealed and fixed using the new sink. Bug: skia: Change-Id: I6b0c9267079fbd6149004f0ecd55ddb179702588 Reviewed-on: https://skia-review.googlesource.com/109720 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Set empty drawFn when init-once returns earlyGravatar Yuqian Li2018-02-25
| | | | | | | | Bug: skia: Change-Id: I01def2c2c9651585555740e5ab86f8eac38be6fc Reviewed-on: https://skia-review.googlesource.com/109721 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Copy the bitmap in SkThreadedBMPDevice::drawDeviceGravatar Yuqian Li2018-02-25
| | | | | | | | | | The new threaded DM sink revealed skia:7414 again with xfermodes GM test. Bug: skia:7414 Change-Id: I5565065f81d1e982027e2cc965bb7659793b27dc Reviewed-on: https://skia-review.googlesource.com/109722 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Revert "Fixes to alignment issues with regards to mapped vulkan memory."Gravatar Greg Daniel2018-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9fb6cf4c49b0f095e5cc005feb05b5522731421b. Reason for revert: breaks fuchsia Original change's description: > Fixes to alignment issues with regards to mapped vulkan memory. > > Bug: skia: > Change-Id: Ida9813fe774580a6d157b8eb8d330488c8e8c4bc > Reviewed-on: https://skia-review.googlesource.com/109483 > Commit-Queue: Greg Daniel <egdaniel@google.com> > Reviewed-by: Jim Van Verth <jvanverth@google.com> TBR=djsollen@google.com,egdaniel@google.com,jvanverth@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: skia: Change-Id: If1223313cab27737ada401d1f3fe4b7ab849d03f Reviewed-on: https://skia-review.googlesource.com/110040 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* handle conic underflow calcGravatar Mike Reed2018-02-24
| | | | | | | | | | w0 and w2 can both be non-zero, but w2*w0 can be zero -- unless we promote to doubles Bug: oss-fuzz:6506 Change-Id: Id0716e22e1d989d2eb6d86417575cf917a31cb89 Reviewed-on: https://skia-review.googlesource.com/109480 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Mike Reed <reed@google.com>
* make 1dpatheffect more robust on deserialGravatar Mike Reed2018-02-24
| | | | | | | | Bug: skia: Change-Id: Ic7a38edaf1099a70b72fbea64c5e36f522bc363b Reviewed-on: https://skia-review.googlesource.com/110020 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>