aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
...
* Fix cubic KLM solvingGravatar csmartdalton2017-04-12
| | | | | | | | | | | | Fixes calc_inverse_transpose_power_basis_matrix() to look for the determinant with the largest ABSOLUTE VALUE. BUG=skia: Change-Id: I70e26cc7ab9955d2e094fb7581f0ec9f5e0ae2d9 Reviewed-on: https://skia-review.googlesource.com/13081 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* jumper, bilinear and bicubic sampling stagesGravatar Mike Klein2017-04-12
| | | | | | | | | | | | | | | | | | | | This splits SkImageShaderContext into three parts: - SkJumper_GatherCtx: always, already done - SkJumper_SamplerCtx: when bilinear or bicubic - MiscCtx: other little bits (the matrix, paint color, tiling limits) Thanks for the snazzy allocator that allows this Herb! Both SkJumper and SkRasterPipeline_opts.h should be speaking all the same types now. I've copied the comments about bilinear/bicubic to SkJumper with little typo fixes and clarifications. Change-Id: I4ba7b7c02feba3f65f5292169a22c060e34933c6 Reviewed-on: https://skia-review.googlesource.com/13269 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* android-only api to reset the fields of a pixelrefGravatar Mike Reed2017-04-12
| | | | | | | | | BUG=skia:6494 Change-Id: I97c8a93849a13f0c5fd57c8a150ecc2ce363d8f3 Reviewed-on: https://skia-review.googlesource.com/13250 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Reed <reed@google.com>
* fix drawDRRect for fuzzerGravatar Cary Clark2017-04-12
| | | | | | | | | | make assert abort instead Bug: skia:6450 Change-Id: I23ff51124fa8f069f2c7e5260f800017d7475d46 Reviewed-on: https://skia-review.googlesource.com/13197 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Hal Canary <halcanary@google.com>
* make all gather_*() use SkJumper_GatherCtxGravatar Mike Klein2017-04-12
| | | | | | | | | | | SkJumper_GatherCtx is a prefix of SkImageShaderContext, so this is a no-op. It helps to keep things straight, and I do want to split apart the GatherCtx from a new SamplingCtx. Change-Id: I9c5f436b096624c2809e1f810e9bcd6c6b00b883 Reviewed-on: https://skia-review.googlesource.com/13264 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Fix SkLocalMatrixShader::isAImage() to respect local matrix and image local ↵Gravatar Matt Sarett2017-04-12
| | | | | | | | | | | | | | | | | matrix Fixes cts tests. b/37161109 b/37237678 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN Bug: skia: Change-Id: I438b8b17f4c7c5bfcb50dfa22af1ddb97b905088 Reviewed-on: https://skia-review.googlesource.com/13261 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
* Revert "Revert "SkColorSpaceXformer: Preserve local matrix on shaders""Gravatar Matt Sarett2017-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a50a11c17ed9037d3e60d8319727583dba803cec. Reason for revert: <INSERT REASONING HERE> Original change's description: > Revert "SkColorSpaceXformer: Preserve local matrix on shaders" > > This reverts commit 5d884b562828ceb13ccacb71bc4581d2020e62bb. > > Reason for revert: Wrong thing to revert > > Original change's description: > > SkColorSpaceXformer: Preserve local matrix on shaders > > > > Also, do not drop unknown shaders. > > > > Fixes cts tests. > > > > b/37161109 > > b/37237678 > > > > Bug: skia: > > Change-Id: I0fd817a4d6461ede0ccdcb8f3cccb255b646b864 > > Reviewed-on: https://skia-review.googlesource.com/13246 > > Commit-Queue: Matt Sarett <msarett@google.com> > > Commit-Queue: Mike Klein <mtklein@chromium.org> > > Reviewed-by: Mike Klein <mtklein@chromium.org> > > > > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,reviews@skia.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: I34e02785ac43a04f8452c458680ea1d6518818a6 > Reviewed-on: https://skia-review.googlesource.com/13258 > Reviewed-by: Matt Sarett <msarett@google.com> > Commit-Queue: Matt Sarett <msarett@google.com> > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I2dfac7d41caf0e32d3bb5f3f330fff4970c0545e Reviewed-on: https://skia-review.googlesource.com/13260 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Revert "Fix SkLocalMatrixShader::isAImage() to respect local matrix and ↵Gravatar Matt Sarett2017-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | image local matrix" This reverts commit e5efa51b2acc86d1993132348d5b465855a653cc. Reason for revert: MSAN Original change's description: > Fix SkLocalMatrixShader::isAImage() to respect local matrix and image local matrix > > Fixes cts tests. > > b/37161109 > b/37237678 > > Bug: skia: > Change-Id: Ida9ac5e4261e8a6b22e8cdc0e585e0e7929dbbfd > Reviewed-on: https://skia-review.googlesource.com/13249 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I2b78c7b32997344136c784dc77675dafca37565e Reviewed-on: https://skia-review.googlesource.com/13259 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Revert "SkColorSpaceXformer: Preserve local matrix on shaders"Gravatar Matt Sarett2017-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 5d884b562828ceb13ccacb71bc4581d2020e62bb. Reason for revert: <INSERT REASONING HERE> Original change's description: > SkColorSpaceXformer: Preserve local matrix on shaders > > Also, do not drop unknown shaders. > > Fixes cts tests. > > b/37161109 > b/37237678 > > Bug: skia: > Change-Id: I0fd817a4d6461ede0ccdcb8f3cccb255b646b864 > Reviewed-on: https://skia-review.googlesource.com/13246 > Commit-Queue: Matt Sarett <msarett@google.com> > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I34e02785ac43a04f8452c458680ea1d6518818a6 Reviewed-on: https://skia-review.googlesource.com/13258 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* jumper, rgb<->hslGravatar Mike Klein2017-04-12
| | | | | | | | | | | | | | | | | | | | | I've rearranged while porting, I hope making the logic clearer. Exactly one gm is affected, highcontrastfilter. The most interesting line is this, from hsl_to_rgb: F t2 = if_then_else(t < 0.0_f, t + 1.0_f, I had to write 0.0_f (instead of the usual 0) to force Clang to compare against a zero register instead of a 16-byte zero constant in memory. Register pressure is high in hsl_to_rgb, so something must have kicked in to prefer memory over zeroing a register. No big deal. It makes the code read more symmetrically anyway. Change-Id: I1a5ced72216234587760c6f803fb69315d18fae0 Reviewed-on: https://skia-review.googlesource.com/13242 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* Add SkCodec methods for individual framesGravatar Leon Scroggins III2017-04-12
| | | | | | | | | | | | | | | | | | | | | Add a version of getFrameInfo that returns information about a single frame, allowing a client to skip creating the entire vector. Add getFrameCount, for determining the number of frames in the image. Reimplement std::vector<FrameInfo> getFrameInfo with the new methods. Updates to the test: - getFrameInfo(size_t, FrameInfo*) fails before parsing - Test both versions of getFrameInfo - Recreate the codec between tests, to test parsing Change-Id: I77c19087f2f8dcf2c536d80167b18ad1ca96ae94 Reviewed-on: https://skia-review.googlesource.com/13190 Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Chris Blume <cblume@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Fix SkLocalMatrixShader::isAImage() to respect local matrix and image local ↵Gravatar Matt Sarett2017-04-12
| | | | | | | | | | | | | | | matrix Fixes cts tests. b/37161109 b/37237678 Bug: skia: Change-Id: Ida9ac5e4261e8a6b22e8cdc0e585e0e7929dbbfd Reviewed-on: https://skia-review.googlesource.com/13249 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* SkColorSpaceXformer: Preserve local matrix on shadersGravatar Matt Sarett2017-04-12
| | | | | | | | | | | | | | | | Also, do not drop unknown shaders. Fixes cts tests. b/37161109 b/37237678 Bug: skia: Change-Id: I0fd817a4d6461ede0ccdcb8f3cccb255b646b864 Reviewed-on: https://skia-review.googlesource.com/13246 Commit-Queue: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Override setDrawFilter() in SkColorSpaceXformCanvasGravatar Matt Sarett2017-04-12
| | | | | | | | | | | | | | Fixes cts tests. b/37161109 b/37237678 Bug: skia: Change-Id: I12d78b631b4056a78cbbb2962144e8cc62eb931a Reviewed-on: https://skia-review.googlesource.com/13244 Commit-Queue: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Disable deferred proxies for Chrome branchGravatar Robert Phillips2017-04-12
| | | | | | | | | Chrome is branching again and Proxy instantiation is still occurring at a bad spot in Skia. Change-Id: I2f6bed7f1833737aa9bb7fd819ff108cffaeaf1d Reviewed-on: https://skia-review.googlesource.com/13133 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Revert "remove unused SkBitmap::copyPixelsTo""Gravatar Mike Reed2017-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7bfdfda809e7273d7c962cc62ef9390b5007fb5a. Reason for revert: google3 has been updated Original change's description: > Revert "remove unused SkBitmap::copyPixelsTo" > > This reverts commit 0f3fdfacf32261f943dcac5cdfd14475011f40db. > > Reason for revert: Blink-headless in Google3 needs an update too. > > Original change's description: > > remove unused SkBitmap::copyPixelsTo > > > > Needs https://codereview.chromium.org/2812853002/ to land first > > > > Bug: skia:6465 > > Change-Id: I531e33b2848cd995f20844786ed1a8d34d63fb64 > > Reviewed-on: https://skia-review.googlesource.com/13171 > > Reviewed-by: Mike Reed <reed@google.com> > > Commit-Queue: Mike Reed <reed@google.com> > > > > TBR=reed@google.com,reviews@skia.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: I5e7c4b0d05772e4948cb1dffdcc40e095fbdba41 > Reviewed-on: https://skia-review.googlesource.com/13185 > Reviewed-by: Mike Klein <mtklein@google.com> > Commit-Queue: Mike Klein <mtklein@google.com> > TBR=mtklein@google.com,reviews@skia.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Id441cec351fe580cbb00739ca9544aa5276cf16a Reviewed-on: https://skia-review.googlesource.com/13224 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* switch over to no lockPixels in pixelrefGravatar Mike Reed2017-04-12
| | | | | | | | | | Bug: skia:6481 Change-Id: I7c32d2e6dcd4c9cd8aa761ac5c4794c916eb650a Reviewed-on: https://skia-review.googlesource.com/13193 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Reed <reed@google.com>
* clean ups in SkPixelRefGravatar Mike Reed2017-04-11
| | | | | | | | | | | - isLazyGenerated no longer needed - requestLock does not need a virtual Bug: skia:4328 Change-Id: I56ab5ee1e10f2a20332eb58464a2a48b487101e6 Reviewed-on: https://skia-review.googlesource.com/13195 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add perspective shadowsGravatar Jim Van Verth2017-04-11
| | | | | | | | Bug: skia: Change-Id: I1972f85f593828c982ea08143e1ed7eb70345eaa Reviewed-on: https://skia-review.googlesource.com/10296 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Remove discard from GrRenderTarget & force it to always go through a ↵Gravatar Robert Phillips2017-04-11
| | | | | | | | | | | | | | | RenderTargetContext This is a bit sloppy in that it ignores some instances where discards were being issued before. The creation of the temp RTContext in the RenderTarget's discard method was causing an extra split in the opLists. This is split out of: https://skia-review.googlesource.com/c/10284/ (Omnibus: Remove GrSurface-derived classes from ops) Change-Id: Ic366d303280635763b0fae238c4df37c04fb8503 Reviewed-on: https://skia-review.googlesource.com/11125 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* SkSize can be aggregate-initializedGravatar Hal Canary2017-04-11
| | | | | | | | | | | | Previosly, SkSize had a base class, which prevented it. Also removes unused SkISize::clampNegToZero() and SkSize::clampNegToZero(). Change-Id: I7b93b42f6f6381c66e294bbedee99ad53c6c3436 Reviewed-on: https://skia-review.googlesource.com/13187 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Reland: Finish up mip opts: 2x3 and 3x2Gravatar Matt Sarett2017-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | Original CL: https://skia-review.googlesource.com/c/10028 mipmap_build_2048x2047 (2x3): sRGB Float Impl (old): 82.9ms (reference) 8888 : 12.3ms (reference) sRGB Before : 61.9ms sRGB After : 53.1ms mipmap_build_2047x2048 (3x2): sRGB Float Impl (old): 65.9ms (reference) 8888 Before : 10.3ms 8888 After : 8.81ms sRGB Before : 47.8ms sRGB After : 43.5ms BUG=skia: Change-Id: Icf58a857a66102e843ae2585fda8d70c31a2b34d Reviewed-on: https://skia-review.googlesource.com/13186 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* remove inline allocation in SkRecordGravatar Mike Klein2017-04-11
| | | | | | | | | | | | | | This is part one of many to making SkPicture simpler. SkMiniPicture covers the really small allocations, so there's really no reason for us to have these inline allocations. BUG=skia:6484 Change-Id: I0e27ac747a6b15cf178db9639128fef757bc137b Reviewed-on: https://skia-review.googlesource.com/13137 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* Change bitmapcache to not rely on lockpixels.Gravatar Mike Reed2017-04-11
| | | | | | | | | | | | | | | | | | | | The Rec in the cache is the owner of the pixel memory - discardable or - malloc Each external client has a pixelref that just points to those pixels, and whose destructor will notify the rec. This eliminates the dependency on lockPixels in pixelref, freeing us to remove that entirely from pixelref. Bug: skia: Change-Id: If45ed0ae202a1211336626364235215253e8aa7c Reviewed-on: https://skia-review.googlesource.com/10300 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Make SkLiteDL::draw() const.Gravatar Mike Klein2017-04-11
| | | | | | | | | | | Nothing interesting here. Just slapping const all over the place. BUG=skia:6484 Change-Id: I639001754aca6d129c40e9acddc9b2d3730fed0c Reviewed-on: https://skia-review.googlesource.com/13184 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* make SkRecord normally SkRefCnt'dGravatar Mike Klein2017-04-11
| | | | | | | | | | | | | | SkRecord used SkNVRefCnt to avoid adding a vptr. SkMiniPicture covers the really small allocations, so there's really no reason to fret over an extra pointer here. BUG=skia:6484 Change-Id: Ifa43be8eb352b2d59851c75e6b4f164bb38b5ef6 Reviewed-on: https://skia-review.googlesource.com/13139 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "remove unused SkBitmap::copyPixelsTo"Gravatar Mike Klein2017-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0f3fdfacf32261f943dcac5cdfd14475011f40db. Reason for revert: Blink-headless in Google3 needs an update too. Original change's description: > remove unused SkBitmap::copyPixelsTo > > Needs https://codereview.chromium.org/2812853002/ to land first > > Bug: skia:6465 > Change-Id: I531e33b2848cd995f20844786ed1a8d34d63fb64 > Reviewed-on: https://skia-review.googlesource.com/13171 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I5e7c4b0d05772e4948cb1dffdcc40e095fbdba41 Reviewed-on: https://skia-review.googlesource.com/13185 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Correct GIF frame dependencies and track alphaGravatar Leon Scroggins III2017-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add SkCodec::FrameInfo::fAlphaType. The SkImageInfo for the SkCodec specifies the SkAlphaType for the first frame, but the opacity can vary from frame to frame. When determining the required frame, also compute whether a frame has alpha. Update how we determine the required frame, which had bugs. (Update a test that had an incorrect required frame as a result.) Add new test images covering cases that have been fixed: - randPixelsAnim2.gif It has the following frames: A (keep) B (keep) (subset) C (disposePrevious) (covers B) D (any) (does *not* cover B) B and C depend on A, but D depends on B, since after disposing C, B should be visible again. - alphabetAnim.gif Includes frames which fill the image size, with different disposal methods and transparencies. Change-Id: Ie086167711c4cac4931ed8c4ddaeb9c9b0b91fdb Reviewed-on: https://skia-review.googlesource.com/9810 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* remove unused SkBitmap::copyPixelsToGravatar Mike Reed2017-04-11
| | | | | | | | | | Needs https://codereview.chromium.org/2812853002/ to land first Bug: skia:6465 Change-Id: I531e33b2848cd995f20844786ed1a8d34d63fb64 Reviewed-on: https://skia-review.googlesource.com/13171 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* remove SkNx AVX codeGravatar Mike Klein2017-04-11
| | | | | | | | | | | | | | We can't realistically use AVX and SkNx together because of ODR problems, so remove the code that may tempt us to try. Remaining code paths using AVX: - one intrinsics-only routine in SkOpts_hsw.cpp - SkJumper Change-Id: I0d2d03b47ea4a0eec27f2de2b28a4c3d1ff8376f Reviewed-on: https://skia-review.googlesource.com/13121 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Allow BF and BRD clients to request an output color spaceGravatar Matt Sarett2017-04-11
| | | | | | | | | Bug: skia: Change-Id: I0f0d3bfdd5c47544ab71167fd7984ee8e8ac5903 Reviewed-on: https://skia-review.googlesource.com/11601 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* Make sure NaNs clamp to 0 in color look up tablesGravatar Matt Sarett2017-04-11
| | | | | | | | | | | | | This operation assumes 0-1 input and guarantees 0-1 output. The old clamp was poorly written, causing the possibility for NaNs to not be set to 0. BUG=709941 Change-Id: I691f0494a562a329967f5b0149a1ba04cbeb8464 Reviewed-on: https://skia-review.googlesource.com/13134 Commit-Queue: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* SkCanvas constructor with legacy flag for Android frameworkGravatar Matt Sarett2017-04-11
| | | | | | | | Bug: skia: Change-Id: I5b268ad03dde075f2710196d5ad2bd19249557f7 Reviewed-on: https://skia-review.googlesource.com/11788 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Revert "Rm makeRenderTargetContext in favor of deferred version"Gravatar Robert Phillips2017-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d83ec0441279b79551b4ecb4598696249ea55145. Reason for revert: various bot failures Original change's description: > Rm makeRenderTargetContext in favor of deferred version > > Change-Id: Ifdf67453607256ba7cdb0837263377bd83907212 > Reviewed-on: https://skia-review.googlesource.com/13001 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I4e67a20cbe658b24725dcf386ac8bfdd127647ea Reviewed-on: https://skia-review.googlesource.com/13131 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Rm makeRenderTargetContext in favor of deferred versionGravatar Robert Phillips2017-04-11
| | | | | | | Change-Id: Ifdf67453607256ba7cdb0837263377bd83907212 Reviewed-on: https://skia-review.googlesource.com/13001 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* remove kReturnNullForEmpty_FinishFlag featureGravatar Mike Klein2017-04-11
| | | | | | | | | | | | It's unused, and doesn't appear to be correct, returning nullptr too early when we should return a non-empty SkMiniPicture. The mini-recorder path will return a zero-allocation SkEmptyPicture anyway. Change-Id: I1be538049e731acfc2b0f8b4f30cafee434a91dc Reviewed-on: https://skia-review.googlesource.com/12626 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* SkImageFilter::onMakeColorSpace() - more overridesGravatar Matt Sarett2017-04-10
| | | | | | | | | | | Fills out most of the simple implementations. Improves 22 gms in gbr-8888. Bug: skia: Change-Id: I881ade140993568263de75be51aed240d2de8cc6 Reviewed-on: https://skia-review.googlesource.com/13126 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* getDeferredTextureImageData(): preserve color space in legacy modeGravatar Matt Sarett2017-04-10
| | | | | | | | Bug: skia: Change-Id: Ib205f6104827b734635df6932d6dcfdc2248d091 Reviewed-on: https://skia-review.googlesource.com/12103 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* SkImageCacherator: Remove unneeded heuristicGravatar Matt Sarett2017-04-10
| | | | | | | | | | | | This was the old way of handling color spaces. This is now handled by chooseCacheFormat() / buildCacheInfo(). Bug: skia: Change-Id: Ifab1ab25d547a00296af237578dd8befec9c86c6 Reviewed-on: https://skia-review.googlesource.com/13004 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* PM/UPM conversion improvementsGravatar Brian Osman2017-04-10
| | | | | | | | | | | | | Snap input values to N / 255 before doing PM/UPM conversions, and add a new round-to-nearest conversion pair. With the pre-snapping, that pair is chosen by (almost?) every GPU we have. This now lets us round trip perfectly on Mali GPUs (which were falling back to SW before). Bug: skia: Change-Id: I0cebf1382e1c829aedfef4ec1614d7fa980057b5 Reviewed-on: https://skia-review.googlesource.com/11520 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* fix too-dark 565 (really, all legacy) gradientsGravatar Mike Klein2017-04-10
| | | | | | | | | | | | | | | This CL reverts legacy destinations back to lerping bytes. Lerping linear is only the correct behavior for gradients drawing into colorspace-aware destinations. As written we're lerping between de-sRGB'd colors but never transforming the outputs back. That leaves us in a weird halfway-right-is-worse-than-wrong spot for legacy. Change-Id: I79b85552b6913649afd2414205cf57108a8b93c6 Reviewed-on: https://skia-review.googlesource.com/13064 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* remove unused lockPixelsAreWritableGravatar Mike Reed2017-04-10
| | | | | | | | Bug: skia:4328 Change-Id: I7271a95a52fe6e5de781f83e0d48af5b69892a95 Reviewed-on: https://skia-review.googlesource.com/13066 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Reed <reed@google.com>
* fix -Fast botGravatar Mike Klein2017-04-10
| | | | | | | | | | | N=8 on that bot. CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-Fast Change-Id: If54ae800b50d9dffb9f983b23ff6f522657943b1 Reviewed-on: https://skia-review.googlesource.com/13061 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* constexprify GrBlend.h and GrPorterDuffXferProcessor.cppGravatar Brian Salomon2017-04-10
| | | | | | | | | | Also remove some unused functions from GrBlend.h and related unit test. Bug: skia: Change-Id: Id8ad0057a02f65a9e19dc75e4b88709a762f4139 Reviewed-on: https://skia-review.googlesource.com/12623 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove Index_8 handling in cacherator heuristic codeGravatar Brian Osman2017-04-10
| | | | | | | | | | | Constructor changes the color type to N32 now, so this code is never needed. Bug: skia: Change-Id: If464440fed799122fed810d870f5d6d9a932bf12 Reviewed-on: https://skia-review.googlesource.com/13000 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Add multi-stop SkJumper stage.Gravatar Herb Derby2017-04-10
| | | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I954d02638a785bec284d2fdf8f46abfccd474e7a Reviewed-on: https://skia-review.googlesource.com/10211 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Move ref counting out of GrProcessor and into subclasses.Gravatar Brian Salomon2017-04-10
| | | | | | | | | | | | | This will allow different subclasses to use different models for lifetime management. GrXferProcessor moves to simple ref counting since they don't own GrGpuResources. This also constifies GrXferProcessor factories. Change-Id: I6bea0ea8de718874063224232f9da50887868b16 Reviewed-on: https://skia-review.googlesource.com/11792 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Add SkImageFilter::makeColorSpace(SkColorSpaceXformer*)Gravatar Matt Sarett2017-04-10
| | | | | | | | | | | Plus two sample implementations. Will fill out the rest if the model looks ok. Bug: skia: Change-Id: Ie24ecd0cbc36263220cb1e506f7812c582554e50 Reviewed-on: https://skia-review.googlesource.com/12100 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
* Fix infinite loop in SkRTree::insert()Gravatar Mike Klein2017-04-10
| | | | | | | | | | | | When aspectRatio is not finite, insert() can fall into an infinite loop. This happens if you pass SkRect::MakeLargest() to the factory as bounds. BUG=skia:5974 Change-Id: Ibcc9e5c5943c718608d4c1448305f7b8f11413bc Reviewed-on: https://skia-review.googlesource.com/11784 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* consolidate read/writePixels in GrSurfaceContextGravatar Robert Phillips2017-04-10
| | | | | | | Change-Id: I118fcd49990597d4dfea92efd3f9d99e52fdbfab Reviewed-on: https://skia-review.googlesource.com/11481 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Osman <brianosman@google.com>