aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* 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>
* Fixes to alignment issues with regards to mapped vulkan memory.Gravatar Greg Daniel2018-02-23
| | | | | | | | 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>
* SkScalerContext - make some fields private.Gravatar Herb Derby2018-02-23
| | | | | | | | | BUG=skia:7515 Change-Id: Id7230db89e47703db465250c8fac99937d69721d Reviewed-on: https://skia-review.googlesource.com/109810 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Herb Derby <herb@google.com>
* SkString: use c++11 vsnprintf in windowsGravatar Hal Canary2018-02-23
| | | | | | | Change-Id: I47337525714c4ee29bbc67c336d070b5cec2e57d Reviewed-on: https://skia-review.googlesource.com/109484 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* ccpr: Prefer atlas sizes under 4k on ARMGravatar Chris Dalton2018-02-22
| | | | | | | | Bug: skia: Change-Id: Ib5afb84647efe2e64a3ec2f9da422b39228431e9 Reviewed-on: https://skia-review.googlesource.com/108871 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Don't assert that GLSL shader compilation succeeded in ChromeGravatar Brian Salomon2018-02-22
| | | | | | | | Bug: chromium:82186 Change-Id: Ie4ef3b766117b9693702917203d2bb87e1ddbe7d Reviewed-on: https://skia-review.googlesource.com/109482 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
* move some RRect methods into privGravatar Mike Reed2018-02-22
| | | | | | | | | | also, return radii by value instead of reference, in possible prep for changing underlying representation Bug: skia:7649 Change-Id: Iff42a49c53cc48171fc63462be366cc3500b2273 Reviewed-on: https://skia-review.googlesource.com/109385 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* detect bad radius in cornerpatheffectGravatar Mike Reed2018-02-22
| | | | | | | | Bug: skia: Change-Id: I88b0be68e3099bcf6df608ded0e875c7a60bb5d6 Reviewed-on: https://skia-review.googlesource.com/109381 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Small cleanup of SkPaintGravatar Herb Derby2018-02-22
| | | | | | | | Change-Id: I79d4e5bace8898c184d8fc80d9e45d39b63b5fe5 Reviewed-on: https://skia-review.googlesource.com/109386 Commit-Queue: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* add checks for enough data in path deserializationGravatar Mike Reed2018-02-22
| | | | | | | | Bug: oss-fuzz:6501 Change-Id: Ie77d57268947be2cc56f846ce21f154e0d469112 Reviewed-on: https://skia-review.googlesource.com/109320 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* lowp impl for decal stagesGravatar Mike Reed2018-02-21
| | | | | | | | | Bug: skia: Change-Id: If6481d202bf22a95f1dea0c5bf7d84698b63869a Reviewed-on: https://skia-review.googlesource.com/109241 Commit-Queue: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Separate creation time & flush time behavior in GrDrawOpAtlas"Gravatar Robert Phillips2018-02-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 056c1a821afcfbe606615ad1a7d1b554549d0846. Reason for revert: GM issues Original change's description: > Separate creation time & flush time behavior in GrDrawOpAtlas > > 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: I54909b7a3ba4bec2db5f1218f6a2a3a1636f66d6 > Reviewed-on: https://skia-review.googlesource.com/108520 > 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: I36eafe46209380f533aa84e831d1c9d18844b6be No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/109280 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* change path serialization version to 4Gravatar Mike Reed2018-02-21
| | | | | | | | | | | | | | | | New format should be much simpler: - only store public data (e.g. points, verbs, filltype) - deserialize just uses public APIs Refactor reading code to manage different (older) versions, to make it clear (hopefully) what we can delete when we can abandon version 3 support. Bug: skia: Change-Id: I30465f891cba3f044ae1cb2c13c04f04fdc9da78 Reviewed-on: https://skia-review.googlesource.com/109160 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Separate creation time & flush time behavior in GrDrawOpAtlasGravatar Robert Phillips2018-02-21
| | | | | | | | | | | | | | | | | | | | | | | | 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: I54909b7a3ba4bec2db5f1218f6a2a3a1636f66d6 Reviewed-on: https://skia-review.googlesource.com/108520 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* Pull non-substantive changes out of omnibus CLGravatar Robert Phillips2018-02-21
| | | | | | | | | | These come from: https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two) Bug: skia: Change-Id: Ife15cad018f9ddedec578fcd6aa07da00a77196e Reviewed-on: https://skia-review.googlesource.com/109026 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Remove back pointer to GrAtlasGlyphCache from GrAtlasTextStrikeGravatar Robert Phillips2018-02-21
| | | | | | | | | | | This is calved off from https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two) In the DDL world, the GrAtlasTextStrikes can outlive their generating GrAtlasGlyphCache. Change-Id: I52b01d3934b0651a58a59b12dcc4c98ffbb891a9 Reviewed-on: https://skia-review.googlesource.com/109061 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add checks for failed SkImageInfo2GrPixelConfig callsGravatar Greg Daniel2018-02-21
| | | | | | | | Bug: skia:7645 Change-Id: I32b9326fb43490ef6a7a99527243b68d89184ae1 Reviewed-on: https://skia-review.googlesource.com/109083 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Don't use LOD bias on OES external texturesGravatar Brian Osman2018-02-21
| | | | | | | Change-Id: Id366b644576c6e4763c0c081b6a6b40f4e930df7 Reviewed-on: https://skia-review.googlesource.com/109024 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Update createWrappedRenderTargetProxy with BackendTex to use lazy proxiesGravatar Greg Daniel2018-02-21
| | | | | | | | Bug: skia: Change-Id: I5a5519aebe544cb5ef62e9847c3fa4e218f24aea Reviewed-on: https://skia-review.googlesource.com/108561 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Add isFinite() bounds check for drawPointsGravatar Jim Van Verth2018-02-21
| | | | | | | | Bug: 811095 Change-Id: I09a55622a19ebfc9430d7676eb8764c074f1bcb7 Reviewed-on: https://skia-review.googlesource.com/109022 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* writePixels should notify GPU that pixels have changedGravatar Cary Clark2018-02-21
| | | | | | | | | R=reed@google.com,robertphillips@google.com Bug: skia:7644 Change-Id: I469c537a649e4d8d05a78cedb26caa3057d824c1 Reviewed-on: https://skia-review.googlesource.com/108961 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Enable DAA in the init-once phase of threaded backendsGravatar Yuqian Li2018-02-21
| | | | | | | | Bug: skia: Change-Id: Idb856fe12f0f9fa1014e7d15ef40bd7b456634d6 Reviewed-on: https://skia-review.googlesource.com/107540 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>