aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* "Fix" some ImageFilter fuzzer issuesGravatar Robert Phillips2016-12-19
| | | | | | | | | | | | | | | | SkClipOp.h & SkPictureFlat.h Invalid SkClipOps were getting through - the question here is where (for a class enum) is a good place to put the k*Mask definition. SkPath1DPathEffect NaNs were getting past. SkBlurMaskFilter Assert wasn't necessary since we whacked the flag on the next line. Change-Id: I87f95ad39f4760284f881d7c4500eb82fcdba282 Reviewed-on: https://skia-review.googlesource.com/6194 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Explicit ownership of data in SkBlockMemoryStream.Gravatar Ben Wagner2016-12-19
| | | | | | | | | | SkBlockMemoryStream does not currently document the ownership of its data pointers. Make the ownership explicit. Change-Id: Id3f59d09c298550a987a4e74031e2d920e83ba82 Reviewed-on: https://skia-review.googlesource.com/6222 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* GIF: Avoid copying/storing data when possibleGravatar Leon Scroggins III2016-12-19
| | | | | | | | | | | | | | | | | | | If the input SkStream has a length and position, do not copy and store LZW blocks or ColorMaps. Instead, mark the position and size, and read from the stream when necessary. This will save memory in Chromium's use case, which has already buffered all of its data. In the case where we *do* need to copy, store it on the SkStreamBuffer. This allows SkGifImageReader to have simpler code. Add tests. Change-Id: Ic65fa766328ae2e5974b2084bc2099e19aced731 Reviewed-on: https://skia-review.googlesource.com/6157 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Move existing writeICC() code into SkICCGravatar Matt Sarett2016-12-19
| | | | | | | | | BUG=skia: Change-Id: Ifb7db7adcc69104fa9abe1765fd60b7f627bdbaf Reviewed-on: https://skia-review.googlesource.com/6261 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* simplify generatescaledpixelsGravatar Mike Reed2016-12-19
| | | | | | | | | BUG=skia: Change-Id: Ia1f975d8ca088a552258fd70d3333683a88bbb5f Reviewed-on: https://skia-review.googlesource.com/6234 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Revert of Generate Signed Distance Field directly from vector path (patchset ↵Gravatar rmistry2016-12-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #23 id:440001 of https://codereview.chromium.org/1643143002/ ) Reason for revert: Seems to have caused lot of test bots to fail. Eg: https://luci-milo.appspot.com/swarming/task/332e3b427135f010 Original issue's description: > Generate Signed Distance Field directly from vector path > > Add SkGenerateDistanceFieldFromPath API to generate signed distance field directly from SkPath. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1643143002 > > Committed: https://skia.googlesource.com/skia/+/4de97a64e8829323a7070b623411d9f9ddb0cd0f > Committed: https://skia.googlesource.com/skia/+/e8f0a7b986f1e5583c9bc162efcdd92fd6430549 > Committed: https://skia.googlesource.com/skia/+/67c7c81a82b6351e9fbbf235084d7120162d9268 > Review-Url: https://codereview.chromium.org/1643143002 > Committed: https://skia.googlesource.com/skia/+/64b70b096ac20833d9737758a4bd5f2a51078bc4 TBR=bsalomon@google.com,jvanverth@google.com,mtklein@google.com,wasim.abbas@arm.com,caryclark@google.com,reed@google.com,egdaniel@google.com,joel.liang@arm.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2580373002
* Generate Signed Distance Field directly from vector pathGravatar joel.liang2016-12-18
| | | | | | | | | | | | Add SkGenerateDistanceFieldFromPath API to generate signed distance field directly from SkPath. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1643143002 Committed: https://skia.googlesource.com/skia/+/4de97a64e8829323a7070b623411d9f9ddb0cd0f Committed: https://skia.googlesource.com/skia/+/e8f0a7b986f1e5583c9bc162efcdd92fd6430549 Committed: https://skia.googlesource.com/skia/+/67c7c81a82b6351e9fbbf235084d7120162d9268 Review-Url: https://codereview.chromium.org/1643143002
* Fix clamp lowbits extraction when combined with non-clampGravatar Florin Malita2016-12-19
| | | | | | | | | R=reed@google.com Change-Id: I1dc17c827077e968d4dbcd0f9ea8da8e1732b253 Reviewed-on: https://skia-review.googlesource.com/6231 Commit-Queue: Florin Malita <fmalita@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Revert "Revert "WIP: Skia support library for ICC tasks""Gravatar Ravi Mistry2016-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit eb733fbf56538838a36814c75cd03f917462cb22. Reason for revert: Revert patch was automatically merged incorrectly? Original change's description: > Revert "WIP: Skia support library for ICC tasks" > > This reverts commit fc8dc3194acb959ee5980b41766660ca0644bcab. > > Reason for revert: Breaks Build-Mac-Clang-Arm7-{Debug,Release}-iOS builds. > Example tasks: > * https://chromium-swarm.appspot.com/task?id=3322f668620b9e10&refresh=10 > * https://chromium-swarm.appspot.com/task?id=332296146331e810&refresh=10 > > Original change's description: > > WIP: Skia support library for ICC tasks > > > > As a starting point, this would be mostly trivial to implement using > > SkColorSpace. > > > > This also would give us the flexibility to begin to move all of > > the ICC related code from SkColorSpace to SkICC. > > > > What are the advantages of moving this away from SkColorSpace? > > (1) A long term goal (once Chrome uses SkCodec), might be to > > move SkColorSpace::MakeICC() out of the public API. That way, > > we can guarantee that we can draw to/from *any* SkColorSpace. > > (2) Keeps SkColorSpace separate from ICC-specific representations > > like SkColorSpaceTransferFn etc. > > > > BUG=skia: > > > > Change-Id: Iddeb9903221fb57fbfc01218d8641c928b4a5165 > > Reviewed-on: https://skia-review.googlesource.com/5676 > > Commit-Queue: Matt Sarett <msarett@google.com> > > Reviewed-by: Brian Osman <brianosman@google.com> > > Reviewed-by: Mike Reed <reed@google.com> > > > > TBR=mtklein@google.com,msarett@google.com,brianosman@google.com,reed@google.com,reviews@skia.org > BUG=skia: > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: Ibdf272fce25892402bd3e85595fb8814cdf59856 > Reviewed-on: https://skia-review.googlesource.com/6232 > Commit-Queue: Ravi Mistry <rmistry@google.com> > Reviewed-by: Ravi Mistry <rmistry@google.com> > TBR=mtklein@google.com,rmistry@google.com,msarett@google.com,reviews@skia.org,brianosman@google.com,reed@google.com BUG=skia: NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I68b1624cfab8adfe31b17e1193a7766507dec8b0 Reviewed-on: https://skia-review.googlesource.com/6233 Commit-Queue: Ravi Mistry <rmistry@google.com> Reviewed-by: Ravi Mistry <rmistry@google.com>
* Revert "WIP: Skia support library for ICC tasks"Gravatar Ravi Mistry2016-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit fc8dc3194acb959ee5980b41766660ca0644bcab. Reason for revert: Breaks Build-Mac-Clang-Arm7-{Debug,Release}-iOS builds. Example tasks: * https://chromium-swarm.appspot.com/task?id=3322f668620b9e10&refresh=10 * https://chromium-swarm.appspot.com/task?id=332296146331e810&refresh=10 Original change's description: > WIP: Skia support library for ICC tasks > > As a starting point, this would be mostly trivial to implement using > SkColorSpace. > > This also would give us the flexibility to begin to move all of > the ICC related code from SkColorSpace to SkICC. > > What are the advantages of moving this away from SkColorSpace? > (1) A long term goal (once Chrome uses SkCodec), might be to > move SkColorSpace::MakeICC() out of the public API. That way, > we can guarantee that we can draw to/from *any* SkColorSpace. > (2) Keeps SkColorSpace separate from ICC-specific representations > like SkColorSpaceTransferFn etc. > > BUG=skia: > > Change-Id: Iddeb9903221fb57fbfc01218d8641c928b4a5165 > Reviewed-on: https://skia-review.googlesource.com/5676 > Commit-Queue: Matt Sarett <msarett@google.com> > Reviewed-by: Brian Osman <brianosman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > TBR=mtklein@google.com,msarett@google.com,brianosman@google.com,reed@google.com,reviews@skia.org BUG=skia: NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ibdf272fce25892402bd3e85595fb8814cdf59856 Reviewed-on: https://skia-review.googlesource.com/6232 Commit-Queue: Ravi Mistry <rmistry@google.com> Reviewed-by: Ravi Mistry <rmistry@google.com>
* Rename GrBatchAtlas -> GrDrawOpAtlas.Gravatar Brian Salomon2016-12-17
| | | | | | | Change-Id: I776f37e42dcab8b16535c48df9c405b1f211f6c9 Reviewed-on: https://skia-review.googlesource.com/6165 Commit-Queue: Brian Salomon <brian@thesalomons.net> Reviewed-by: Brian Osman <brianosman@google.com>
* Rename GrBatchAtlas files to GrDrawOpAtlasGravatar Brian Salomon2016-12-16
| | | | | | | | | This intermediary change only exists to make the actual class rename change readable on gerrit due to gerrit not recognizing file renames correctly. Change-Id: I919f84837fb17191ca49f00f82e56330f84766da Reviewed-on: https://skia-review.googlesource.com/6190 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Added gamma visualizations to colorspaceinfo toolGravatar raftias2016-12-16
| | | | | | | | | | | | Visualizations for gamma curves were added. Tool now outputs at the end following 9 ='s a list of all output images. BUG=skia: Change-Id: Id934c4c8cceec68291527554c2c951be08593ef5 Reviewed-on: https://skia-review.googlesource.com/6085 Commit-Queue: Robert Aftias <raftias@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* rework xor to be more like windingGravatar Cary Clark2016-12-16
| | | | | | | | | | | | | | | | Pathops is very well exercised with winding paths, but less so with xor (even odd) paths. Rewrite the xor main loop to look like the winding one to take advantage of the latter's bug fixes. TBR=reed@google.com BUG=skia:6041 Change-Id: Ied8d522254a327b1817b54f0abbf4414f5fab7da Reviewed-on: https://skia-review.googlesource.com/6228 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* WIP: Skia support library for ICC tasksGravatar Matt Sarett2016-12-16
| | | | | | | | | | | | | | | | | | | | | | | As a starting point, this would be mostly trivial to implement using SkColorSpace. This also would give us the flexibility to begin to move all of the ICC related code from SkColorSpace to SkICC. What are the advantages of moving this away from SkColorSpace? (1) A long term goal (once Chrome uses SkCodec), might be to move SkColorSpace::MakeICC() out of the public API. That way, we can guarantee that we can draw to/from *any* SkColorSpace. (2) Keeps SkColorSpace separate from ICC-specific representations like SkColorSpaceTransferFn etc. BUG=skia: Change-Id: Iddeb9903221fb57fbfc01218d8641c928b4a5165 Reviewed-on: https://skia-review.googlesource.com/5676 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Reed <reed@google.com>
* fix fuzzing empty contours squirrelly cubicsGravatar Cary Clark2016-12-16
| | | | | | | | | | | | | | | | | | | The fuzzer triggered relatively new code that missized the split cubic array, i.e., if a cubic is split in three places it makes four cubics. The fuzzer triggered other relative new code that permits a contour to be empty. This happens when a line crosses over itself but doesn't enclose anything. R=kjlubick@google.com BUG=skia:6061 Change-Id: I0c04d0d390ff1092f7b3bb28ebbfca517451f497 Reviewed-on: https://skia-review.googlesource.com/6223 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Rearrange ICC profile parsingGravatar Matt Sarett2016-12-16
| | | | | | | | | | | | | | | | | | | | | | | None of the small details have changed, just some high level reorganization: (1) Check for XYZ spaces before A2B. (2) If we fail to parse the XYZ space, fallback by trying to parse the A2B space. This should cause no image diffs on Gold. There is an image from the ICC website that is *supposed* to test that we parse the A2B tag before the XYZ tag. Our behavior on this image will actually not change - the XYZ tag is invalid (non-D50 matrix), so we fall back to A2B anyway. I think this behavior is ok. BUG:674584 Change-Id: I271fd990937268e03e98f5037a0837a574e775ef Reviewed-on: https://skia-review.googlesource.com/6143 Reviewed-by: Robert Aftias <raftias@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Only attempt index8 if underlying GIF is index8Gravatar Leon Scroggins III2016-12-16
| | | | | | | | | | | | | | Recent changes (crrev.com/2045293002) made it so that a GIF may not support index 8. In that case, make SkAndroidCodec not suggest index 8. Add a test and a new test file. randPixelsOffset.gif is the same as randPixels.gif, except its frame is offset. Since it does not have a transparent index, we have to decode to kN32. Change-Id: I1c09ab9094083de3dfc436632b3c26dbde1dccbd Reviewed-on: https://skia-review.googlesource.com/6196 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Rename GrBatchFontCache->GrAtlasGlyphCacheGravatar Brian Salomon2016-12-16
| | | | | | | Change-Id: Ie21e18b631daa24e70df630b9f910213f62bdbdf Reviewed-on: https://skia-review.googlesource.com/6164 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Remove SkDynamicMemoryWStream::getOffset.Gravatar Ben Wagner2016-12-16
| | | | | | | | | | This method does the same thing as ::bytesWritten but has a confusing name. It appears there are no external users, so remove it. Change-Id: I06aed269200c34c2dda36605092f8ea37fcec693 Reviewed-on: https://skia-review.googlesource.com/6188 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* dump path fill type with dataGravatar Cary Clark2016-12-16
| | | | | | | | | | | | | | | | | SkPath::dump() and SkPath::dumpHex() dump the fill type in addition to the data so that the original path can be faithfully reconstructed. This may be a small part of why some error cases aren't reproduced. R=reed@google.com BUG=skia:6041 Change-Id: Ice86bf08ea907a6b87ceef182a9316a3c979af0b Reviewed-on: https://skia-review.googlesource.com/6185 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* rm unnecessary forward decl of GrClip in GrDashOp.hGravatar Brian Salomon2016-12-16
| | | | | | | Change-Id: I275c2c906997d844628e01e6d0863faac26957b0 Reviewed-on: https://skia-review.googlesource.com/6189 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add color space to picture image as a creation parameterGravatar Brian Osman2016-12-16
| | | | | | | | | | | | | This gives a picture image a preferred "native" color space, which facilitates caching and other things. BUG=skia: Change-Id: I95988c14d17f96d7d870b3d1c3b723c36e2c170d Reviewed-on: https://skia-review.googlesource.com/6158 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* hide deprecated SkImage::prerollGravatar Mike Reed2016-12-16
| | | | | | | | | BUG=skia: Change-Id: Id7369b0c3b4216f7e040e51c2c80520f20e7168a Reviewed-on: https://skia-review.googlesource.com/6184 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* move src/gpu/batches -> src/gpu/opsGravatar Brian Salomon2016-12-16
| | | | | | | Change-Id: I6410eae41f051ce38bef6f38d670924c3483c325 Reviewed-on: https://skia-review.googlesource.com/6163 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Rename GrTestBatch and subclasses to OpGravatar Brian Salomon2016-12-16
| | | | | | | Change-Id: Ideab66b7ca227057a767be48aba3ea69a0a19115 Reviewed-on: https://skia-review.googlesource.com/6161 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Rename batch->op and sk_sp in instanced renderingGravatar Brian Salomon2016-12-16
| | | | | | | Change-Id: I9df450f2bce51d4f803d419bef863ca3a3314f09 Reviewed-on: https://skia-review.googlesource.com/6162 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Rename batch->op and sk_sp for all remaining path renderer classes.Gravatar Brian Salomon2016-12-16
| | | | | | | Change-Id: Iaa5551d3efe33b8b679b1913a19119ee3ed2e9b6 Reviewed-on: https://skia-review.googlesource.com/6159 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Mark CG and WIC images as srgbGravatar Matt Sarett2016-12-16
| | | | | | | | | | | | | | Otherwise they look funny when we draw them to srgb (drawing untagged srcs to srgb canvas is undefined). The image generator tests were recently changed to run on srgb. BUG=skia: Change-Id: I6ec07dbf736ed2a16a5db89b4028a44a98037f70 Reviewed-on: https://skia-review.googlesource.com/6182 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Revert "Remove all KTX support"Gravatar Leon Scroggins2016-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ada12ab0557a1f540e775288e2ce44f64fcd8c7e. Reason for revert: Google3 needs it: https://test.corp.google.com/ui#id=OCL:142184832:BASE:142184975:1481839118985:32fde8ef Original change's description: > Remove all KTX support > > It is untested and unused. > > Change-Id: I010ff4ad942738f362d42a99af4edbbb1cb0cd71 > Reviewed-on: https://skia-review.googlesource.com/6142 > Commit-Queue: Leon Scroggins <scroggo@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> > Reviewed-by: Robert Phillips <robertphillips@google.com> > TBR=mtklein@chromium.org,mtklein@google.com,robertphillips@google.com,scroggo@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I1ea2f9487eb2212efbfcc514122792b70c9e8737 Reviewed-on: https://skia-review.googlesource.com/6181 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* Rename "batch" to "op" and sk_sp in 3 path renderer classes:Gravatar Brian Salomon2016-12-15
| | | | | | | | | MSAA, Default, and ConvexLinearizing. Change-Id: I0c6ccf4f135741c2ae96a3801bd042471863a27f Reviewed-on: https://skia-review.googlesource.com/6155 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Stop supporting kUnknown_BmpHeaderTypeGravatar Leon Scroggins III2016-12-15
| | | | | | | | | | | | | | | | | | | | | In SkBmpCodec, if the header size does not match a known header, stop trying to create an SkCodec. We do not know of any BMPs with arbitrarily sized headers, so this should not cause any real regressions. In addition, this fixes a bug where we attempt to read too much data from a file. Since we attempt to read the header size in one read, and a size reported by the "BMP" may be larger than SSIZE_MAX, this will crash when reading from a file. Add a test. BUG:b/33651913 Change-Id: I0f3292db3124dc5ac5cbdbc07196bda130a49ba7 Reviewed-on: https://skia-review.googlesource.com/6150 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Convert a few path renderer class batches from Batch to Op.Gravatar Brian Salomon2016-12-15
| | | | | | | | | This also removes the "batch tracker" structs from the Op classes. Some tracker fields weren't used and some values were being stored per-path even though onCombineIfPossible assured they were the same. This also backs away from the generic "geometry" naming of batched items in favor of "path" or "shape". Change-Id: Iabaa0cedf2bdf09ad135fc382ddfba8e5e94e4be Reviewed-on: https://skia-review.googlesource.com/6152 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove all KTX supportGravatar Leon Scroggins III2016-12-15
| | | | | | | | | | It is untested and unused. Change-Id: I010ff4ad942738f362d42a99af4edbbb1cb0cd71 Reviewed-on: https://skia-review.googlesource.com/6142 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Added SkLRUCache.h and converted GPU program cache to use it.Gravatar Ethan Nicholas2016-12-15
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4221 Change-Id: I7e4094c2f2a2ecc5909895a8a68b27047acdcbd0 Reviewed-on: https://skia-review.googlesource.com/4221 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Shrink the SkImageGenerator APIGravatar Brian Osman2016-12-15
| | | | | | | | | | | | | generateBitmap was used in one test, so it's easily converted to tryGenerateBitmap. Then, all calls to tryGenerateBitmap supplied an image info, so we don't need it to be optional. BUG=skia: Change-Id: I19e8f9da7e442a2d37af68b029b5ec85228766f7 Reviewed-on: https://skia-review.googlesource.com/6149 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* speedup dynamicwstreamGravatar Mike Reed2016-12-15
| | | | | | | | | | | | | | | | | - move bytesWritten calculation to query the tail, allowing write() to be faster since it doesn't have to update anything extra per-write. - enforce that all blocks are multiple-of-4 bytes big - update the minimum block size to 4K Before: 30ms After: 23ms for non-4-bytes writes 13ms for 4-bytes writes BUG=skia: Change-Id: Id06ecad3b9fe426747e02accf1393595e3356ce3 Reviewed-on: https://skia-review.googlesource.com/6087 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Port SkResourceCache to SkTHashTableGravatar Mike Klein2016-12-15
| | | | | | | | | | | | | | | We'd like to fix bugs and make performance improvements to our hash tables. It's a lot easier if we can focus on one implementation, so I'd like to move users of SkTDynamicHash to SkTHashTable, SkTHashMap, or SkTHashSet. This is roughly outlined in the attached Skia bug. In this case, the conversion from SkTDynamicHash to SkTHashTable is pretty trivial. The main change is that the values stored in the table are no longer assumed to be pointers, so we just need to sprinkle in a couple of * and ->. SkResourceCache is particularly interesting as the locus of the attached Chromium bug. Porting this now means SkResourceCache will get any fixes we make as soon as we make them. BUG=skia:6053,chromium:429375 Change-Id: If5dc8d331c62f1d4449fb8f9a7f7e9c746070213 Reviewed-on: https://skia-review.googlesource.com/5984 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* remove unused dynamicwstream.snapshotAsData()Gravatar Mike Reed2016-12-15
| | | | | | | | | | | | Checking to invalidate this on every write() call has a measurable cost, so removing it both simplifies the class and speeds it up. BUG=skia: Change-Id: Idf0baa265c9a0b5d26d82fce948c61ed9b0810b1 Reviewed-on: https://skia-review.googlesource.com/6096 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Rename GrAtlasTextBatch->GrAtlasTextOp and sk_spGravatar Brian Salomon2016-12-15
| | | | | | | Change-Id: I409048988cccb68daaeb66828e2772fcb6a0cb06 Reviewed-on: https://skia-review.googlesource.com/6104 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Rename GrAtlasTextBatch files to GrAtlasTextOpGravatar Brian Salomon2016-12-15
| | | | | | | Change-Id: I3ce7321577c236a95811d7a2da798d4eb2e0cbd3 Reviewed-on: https://skia-review.googlesource.com/6116 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Workaround freeze on Mac Chrome when checking read pixel config support.Gravatar Brian Salomon2016-12-15
| | | | | | | | | | | | | | Chromium may ask us to read back from locked IOSurfaces. Calling the command buffer's glGetIntegerv() with GL_IMPLEMENTATION_COLOR_READ_FORMAT/_TYPE causes the command buffer to make a call to check the framebuffer status which can hang the driver. So in Mac Chromium we always use a temporary surface to test for glReadPixels format/type support. BUG=chromium:662802 Change-Id: I034e24faf3d780b6243f95af66d03dd68e12633c Reviewed-on: https://skia-review.googlesource.com/6113 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Rename NVPR batch->op and sk_sp'ifyGravatar Brian Salomon2016-12-15
| | | | | | | Change-Id: I5934e189f72cbc9c1f306c719b4d6e3f5178a046 Reviewed-on: https://skia-review.googlesource.com/6101 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Added optimized sRGB/2.2 gamma stages into A2B color xformGravatar raftias2016-12-15
| | | | | | | | | | | | | | | | Hooked up existing to/from srgb, and to_2dot2 stages into SkColorSpaceXform_A2B. Added a from_2dot2 stage to the raster pipeline to complete the other direction. BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I3887af3f59f67329d7e843e7355ff54e22cc4ed0 Reviewed-on: https://skia-review.googlesource.com/5840 Commit-Queue: Robert Aftias <raftias@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Matt Sarett <msarett@google.com>
* Add a deferred copy surface (take 3)Gravatar Robert Phillips2016-12-15
| | | | | | | | | | | | | | This CL forces all GrSurface copies to go through a GrSurfaceContext (rather than GrContext). There is a bit of goofiness going on here until read/writePixels is also consolidated in GrSurfaceContext and a proxy-backed SkImage/SkSurface is added. This is a reland of https://skia-review.googlesource.com/c/5773/ (Add a deferred copy surface) Change-Id: Ib8fd96d0569274ef781366eb900ed8ee839ae9bd Reviewed-on: https://skia-review.googlesource.com/6109 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* speculative pointer to member fixGravatar Cary Clark2016-12-15
| | | | | | | | | | | | | | | | Move the body of simple functions out of line if they are used in pointer to member function expressions. This may fix a chromeos-reported bug. TBR=reed@google.com BUG=674047 Change-Id: Id2a080a6d047103a48ebe2319abdae444de413e3 Reviewed-on: https://skia-review.googlesource.com/6110 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Even more batch->op and sk_sp'ification.Gravatar Brian Salomon2016-12-15
| | | | | | | Change-Id: I9930381465ebad690206e2251171004f9579fbcd Reviewed-on: https://skia-review.googlesource.com/6100 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove Mac 10.6 - 10.8 work arounds for fonts.Gravatar bungeman2016-12-14
| | | | | | | | | | | We no longer support these platforms and no longer work on 10.6 anyway. On 10.7 and 10.8 things will probably still mostly work, but there may be some strangeness. Change-Id: I6816a97d8a986ad3b762673d18cc973bbe7befcd Reviewed-on: https://skia-review.googlesource.com/6093 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Remove strange 'write' overload on SkDynamicMemoryWStream.Gravatar bungeman2016-12-14
| | | | | | | | | This should have been names 'overwrite' and appears to be unused. Change-Id: Ic9dd21e6789fb079fcbc209ed5d074a77f3587cc Reviewed-on: https://skia-review.googlesource.com/6092 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Some more batch->op renamingGravatar Brian Salomon2016-12-14
| | | | | | | Change-Id: I5cbdc606170186d2d908d518af0e0fd1094fcf78 Reviewed-on: https://skia-review.googlesource.com/6089 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>