aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Harden SkClassifyCubicGravatar Chris Dalton2017-11-09
| | | | | | | | BUG=chromium:743617 Change-Id: Idfb89832b48ebd60fd9109cd526bdd5cd5931ada Reviewed-on: https://skia-review.googlesource.com/68980 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Compute more accurate containedInClipGravatar Yuqian Li2017-11-09
| | | | | | | | | | | | | Eventually, we'll remove containedInClip from the function parameters and just compute it using ir and clipBounds. The current approach is for preparing rebaseline. TBR: reed@google.com Bug: skia:7271 Change-Id: Ife60e173d9f4f1c9ec80d13a2f7a88a0433b61e9 Reviewed-on: https://skia-review.googlesource.com/69220 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Simplify analytical GPU gradient implsGravatar Florin Malita2017-11-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) reformulate the gradient data as a series of interpolation intervals, defined as tuples of (color_scale, color_bias) such that color(t) = t * color_scale + color_bias (this allows us to skip the relative_t computation and simply feed tiled_t into a fast MAD) 2) then, the existing specializations can be generalized as a) select an interpolation interval (possibly based on a threshold) b) compute the interpolated color using the method in #1 3) simplify the hard-edge cases by using clamp intervals (color_scale == 0) and relaxing the clamping step (allowing tiled_t < 0 or tiled_t > 1, in order to hit the clamping intervals during the selection step) The existing specializations are converted as follows: * kTwo_ColorType -> single interpolation interval, normal clamping * kThree_ColorType -> two interpolation intervals, normal clamping, threshold == pos[1] * kSingleHardStop_ColorType -> two interpolation intervals, normal clamping, threshold == pos[1/2] * kHardStopLeftEdged_ColorType -> two interpolation intervals, clamping (-inf, 1], threshold == 0 * kHardStopRightEdged_ColorType -> two interpolation intervals, clamping [0, +inf), threshold == 1 This reduces the SkSL overhead in a couple of ways: * the clamp stage is sometimes reduced to min/max vs. full clamp() * the color interpolation stage is just a MAD vs. full mix() Change-Id: I65be84d131d56136ec5e946c2b3dba149a4473cf Reviewed-on: https://skia-review.googlesource.com/68218 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Remove destination pointer from GrCopySurfaceOpGravatar Robert Phillips2017-11-09
| | | | | | | | | | This appears to be surplus to requirements (and the extra call in visitProxies was causing grief for explicit allocation) Bug: skia: Change-Id: Icc0b7f04fed96883408d54986b02d0f3756d56c7 Reviewed-on: https://skia-review.googlesource.com/68862 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Update GrFragmentProcessor handling in Make methods in SkSLGravatar Robert Phillips2017-11-08
| | | | | | | Change-Id: I89ec73049126f3b5ff695a31a94e4816d4639fcd Reviewed-on: https://skia-review.googlesource.com/68901 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Prepare to enable explicit gpu resource allocation (take 2)Gravatar Robert Phillips2017-11-08
| | | | | | | Change-Id: I3fd78d53e8bea84c0217b9fe6e180eaa9e4ac753 Reviewed-on: https://skia-review.googlesource.com/68920 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Prepare to enable explicit gpu resource allocation"Gravatar Greg Daniel2017-11-08
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f290376736b42a19b87da78c6ba2558313896860. Reason for revert: Changed generated effect instead of FP Original change's description: > Prepare to enable explicit gpu resource allocation > > Change-Id: I407e45711c61831febbac3d3d3a88e3fdde92c5f > Reviewed-on: https://skia-review.googlesource.com/68212 > Commit-Queue: Robert Phillips <robertphillips@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: I949500d94c7461b7cf38d615117cfcdc9a791780 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/68900 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Implement readPixels from float buffer, when half float is missingGravatar Stan Iliev2017-11-08
| | | | | | | | | | | | | | If reading in half float format is not supported, then read in a temporary float buffer and convert to half float. This is used by SwiftShader emulator. Bug: skia:6945 Bug: b/68383159 Test: Passed PixelCopyTest.testWindowProducerCopyToRGBA16F Change-Id: I1bfc72e65e4db596ac15d4a1ac31b20e6aea6d30 Reviewed-on: https://skia-review.googlesource.com/68860 Commit-Queue: Stan Iliev <stani@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Prepare to enable explicit gpu resource allocationGravatar Robert Phillips2017-11-08
| | | | | | | Change-Id: I407e45711c61831febbac3d3d3a88e3fdde92c5f Reviewed-on: https://skia-review.googlesource.com/68212 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* change default props for PictureImage to be unknown_pixel_geometryGravatar Mike Reed2017-11-08
| | | | | | | | Bug: skia: Change-Id: Id61460dbe3f3d21207ae05ba5adf494b0a68fe31 Reviewed-on: https://skia-review.googlesource.com/68760 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* move parts of SkPoint to SkPointPrivGravatar Cary Clark2017-11-08
| | | | | | | | | | | | Move specialized SkPoint methods to SkPointPriv. Use constexpr and inline initialization where possible. R=reed@google.com,bsalomon@google.com Bug: skia: 6898 Change-Id: I01ec5186f010f2dc80c068c70d9cc352f3221338 Reviewed-on: https://skia-review.googlesource.com/68700 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ravi Mistry <rmistry@google.com>
* add surfaceprops param to SkCanvas::MakeRasterDirectGravatar Mike Reed2017-11-08
| | | | | | | | Bug: skia: Change-Id: I8b69280469cdf34c3c3cb126db9457a712143f88 Reviewed-on: https://skia-review.googlesource.com/68701 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "added a missing programBinarySupport check""Gravatar Ethan Nicholas2017-11-08
| | | | | | | | | | This reverts commit 76e8c7c3ec5584abe5d2c6f25031b7e696d6e064. Bug: skia: Change-Id: Iffc8d68caa382b5306af4e814605bbbb3018cdca Reviewed-on: https://skia-review.googlesource.com/68540 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Glyphs without paths don't draw with paths.Gravatar Ben Wagner2017-11-08
| | | | | | | | | | | | If a glyph doesn't have a path, don't try to draw it from the non-existent path. Bug: skia:4904 Change-Id: I8d7a061146b54c2f4a975280a6fb6ae3043ea82b Reviewed-on: https://skia-review.googlesource.com/68216 Reviewed-by: Heather Miller <hcm@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Allow mock GrContexts to "support" shader derivativesGravatar Brian Salomon2017-11-08
| | | | | | | Change-Id: I0d8dce5e0873a058b59baae9c35903b2444a76fd Reviewed-on: https://skia-review.googlesource.com/68480 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Add GrContextOptions to control distance field thresholds for small sizes ↵Gravatar Brian Salomon2017-11-08
| | | | | | | | | and fallback to paths. Change-Id: Ib57c40b1b50c5afe079b2099d1a83986629ea287 Reviewed-on: https://skia-review.googlesource.com/68217 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "added a missing programBinarySupport check"Gravatar Greg Daniel2017-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 4e001d898afda5efdb189dc34555c6cafa3ce35c. Reason for revert: valgrind asan failures Original change's description: > added a missing programBinarySupport check > > Bug: skia: > Change-Id: Ib76a683316e420a76ef69dce4182d73b5e0ee28a > Reviewed-on: https://skia-review.googlesource.com/68214 > Reviewed-by: Stan Iliev <stani@google.com> > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> TBR=ethannicholas@google.com,stani@google.com Change-Id: I49e05a6d930e6508f0bae36c5370e089f2978aa3 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/68281 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Move bmp/mask/sdf functionality from GrTextUtils to GrAtlasTextContextGravatar Brian Salomon2017-11-07
| | | | | | | Change-Id: I3924f2f9fd2860749f0404030d0be502a8153faa Reviewed-on: https://skia-review.googlesource.com/68211 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* added a missing programBinarySupport checkGravatar Ethan Nicholas2017-11-07
| | | | | | | | Bug: skia: Change-Id: Ib76a683316e420a76ef69dce4182d73b5e0ee28a Reviewed-on: https://skia-review.googlesource.com/68214 Reviewed-by: Stan Iliev <stani@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Don't use analytic clip FPs when drawing to stencilGravatar Chris Dalton2017-11-07
| | | | | | | | | | | | | It doesn't make sense to multiply by coverage when drawing to stencil. This could theoretically work with FPs that discard and/or modify the sample mask, but for the time being an analytic FP means one that calculates a coverage value. Bug: skia:7190 Change-Id: I44140a5823f8683ec08244bdf9d369f51fa05dd9 Reviewed-on: https://skia-review.googlesource.com/68362 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Fix highcontrastfilter on ANGLE D3D9Gravatar Brian Osman2017-11-07
| | | | | | | | | | | | | | | On NVIDIA and Intel GPUs, running the angle_d3d9_es2 config, we were getting the wrong result from the HSL conversion. From debugging the shader, it seems that max(x, y) is not necessarily equal to either x or y. Tried several ways to fix it, but the only reasonably one that worked was to alter our conditionals. This is slower, but the filter is already doing a large amount of work. Bug: skia:7273 Change-Id: I9724285a0d5834cf98189df9efbdc02b5e1de4a7 Reviewed-on: https://skia-review.googlesource.com/68213 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Don't use analytic clip FPs when drawing to stencil"Gravatar Chris Dalton2017-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 4c92d4aa3ed653afdff9996b90a1139ed1dc9420. Reason for revert: Chromecast bot failure Original change's description: > Don't use analytic clip FPs when drawing to stencil > > It doesn't make sense to multiply by coverage when drawing to stencil. > This could theoretically work with FPs that discard and/or modify > the sample mask, but for the time being an analytic FP means one that > calculates a coverage value. > > Bug: skia:7190 > Change-Id: Ic40cf6c19c377cba80bad458993582f5cc07022a > Reviewed-on: https://skia-review.googlesource.com/67423 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Chris Dalton <csmartdalton@google.com> TBR=bsalomon@google.com,robertphillips@google.com,csmartdalton@google.com Change-Id: Ie5bd4852c201e47daee0920f5644141bee2d8a46 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7190 Reviewed-on: https://skia-review.googlesource.com/68400 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Don't use analytic clip FPs when drawing to stencilGravatar Chris Dalton2017-11-07
| | | | | | | | | | | | | It doesn't make sense to multiply by coverage when drawing to stencil. This could theoretically work with FPs that discard and/or modify the sample mask, but for the time being an analytic FP means one that calculates a coverage value. Bug: skia:7190 Change-Id: Ic40cf6c19c377cba80bad458993582f5cc07022a Reviewed-on: https://skia-review.googlesource.com/67423 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Correct edges_too_closeGravatar Yuqian Li2017-11-07
| | | | | | | | | | | | | | | | | If the next edge has 0 fDX, we should add a SLACK = 1 so two edges with fX less than 1 pixel apart should be considered close, and noRealBlitter should be true to force the use of AdditiveBlitter and the cumulation of alpha. The changed GM will show bleed through if SLACK is 0. The artifact without the fix can be seen at: https://fiddle.skia.org/c/f6912f1af6c14e054f5b5935a93380ea Bug: skia: Change-Id: I15f9c3aef25a0357cd11d447e7bf0b4fbac0ce67 Reviewed-on: https://skia-review.googlesource.com/67804 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* Add MakeCrossContextFromPixmapGravatar Brian Osman2017-11-07
| | | | | | | | | | | | This operates just like MakeCrossContextFromEncoded, but starting from raster data. This version is defensive (always uses copies if a raster image needs to be made). Bug: skia: Change-Id: Ibc2b9a235c89a41fbbfd022d943f15ac212d0677 Reviewed-on: https://skia-review.googlesource.com/68205 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* converted LumaColorFilterEffect to skslGravatar Ethan Nicholas2017-11-07
| | | | | | | | Bug: skia: Change-Id: I208984ec9ad357249ee1b2fe28477f1450b4b69d Reviewed-on: https://skia-review.googlesource.com/67848 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "refactored SkSLVarDeclaration out of existence"Gravatar Ethan Nicholas2017-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1ae353c887fdf447e1fe627e3cd29f8fa62c2a05. Reason for revert: ASAN failures Original change's description: > refactored SkSLVarDeclaration out of existence > > Bug: skia: > Change-Id: I3dbc08e6d759f6828a472246d4797babb6cc132e > Reviewed-on: https://skia-review.googlesource.com/66147 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> TBR=egdaniel@google.com,ethannicholas@google.com Change-Id: I8cae451de1546fe783e32dd41df00eac7da61b21 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/68280 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* refactored SkSLVarDeclaration out of existenceGravatar Ethan Nicholas2017-11-07
| | | | | | | | Bug: skia: Change-Id: I3dbc08e6d759f6828a472246d4797babb6cc132e Reviewed-on: https://skia-review.googlesource.com/66147 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* make point array methods privateGravatar Cary Clark2017-11-07
| | | | | | | | | | | | | | | | | | | | | | | Moved method are not used by chromium, google3, or android. SkPoint::setRectIFan isn't used or tested at all. SkPoint::setRectFan and SkPoint::setRectTriStrip are only used internally. These routines pretend that a SkPoint is part of an array of points. Since that's kind of an odd contract to make public, and because they aren't used outside of Skia, relegate them to a priv file. R=bsalomon@google.com,reed@google.com Bug: skia: 6898 Change-Id: I5ec2eb47799f6fd4b2994da962b1fa69ce659931 Reviewed-on: https://skia-review.googlesource.com/68121 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* This is a reland of 67340. This CL fixes the broken layout tests byGravatar Yuqian Li2017-11-07
| | | | | | | | | | | preserving the containedInClip boolean. We will eventually remove it and rebaseline the layout tests. Bug: skia:7271 Change-Id: I20e7220340d561ea2c50d30cd5d6ac6d2b4b3743 Reviewed-on: https://skia-review.googlesource.com/68100 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Fix dangling pointers when Ganesh culls CCPR Ops earlyGravatar Chris Dalton2017-11-07
| | | | | | | | | BUG=chromium:775868 Change-Id: I0066e34fd8ebe4b46ad72481f5bb955dc0dd5910 Reviewed-on: https://skia-review.googlesource.com/67682 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Make GrAtlasTextBlob return to caller when a flush is required during subrun ↵Gravatar Brian Salomon2017-11-07
| | | | | | | | | | | | | | | | | | | tessellation. The old code used a helper object in the tessellation code that called flush() on GrAtlasTextOp. A confusing aspect of this was that the pre-flush vertex data generated for the sub run was copied to the op's vertex buffer after flush() had already recorded the draw that read the data. The new code adds a tessellator nested helper class to GrAtlasTextBlob. The helper exits early if a flush is required, the op performs the flush, and then the helper is invoked again until tessellation is complete. This also changes the blob object to use char* instead of unsigned char* for its vertex pointers. Change-Id: I31bed251435f13b2172e6f5829ba437b882dd44d Reviewed-on: https://skia-review.googlesource.com/67856 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* For legacy GPU configs, run high contrast filter on linearized valuesGravatar Brian Osman2017-11-07
| | | | | | | | | | | | | | Uses the same pow(2) approximation at the CPU version, and now produces results that are nearly identical. Also removed an extra copy of the config from the GLSL FP class - just use the data from the FP. Bug: skia:7265 Change-Id: If7b36094d5ae07f21219faba0bef9b2e4cb1e3d0 Reviewed-on: https://skia-review.googlesource.com/68041 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* add a SkFontMgr to DM that returns portable fontsGravatar Mike Klein2017-11-06
| | | | | | | | | Controlled by --[no]nativeFonts, and still defaults to native fonts. Change-Id: Ib2879e69fadb63ddb5a17a7e4ae227941893b8cf Reviewed-on: https://skia-review.googlesource.com/67806 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Setup CCPR testing with GrMockContextGravatar Chris Dalton2017-11-06
| | | | | | | | | | | Beefs up the mock context to be able to support CCPR, sets up a framework for testing CCPR with the mock context, and adds a new test. Bug: skia: Change-Id: If95f92726f7b1a7f52ad04ca8126551f58ea8032 Reviewed-on: https://skia-review.googlesource.com/67980 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Revert "Simplify fill path call by removing do_fill_path"Gravatar Yuqian Li2017-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 12f322b9d4e98619bd128f39b02d3a6f3b78ba79. Reason for revert: Unexpectedly break Chrome layout tests. Will check why. Original change's description: > Simplify fill path call by removing do_fill_path > > The git diff is not very informative for this CL. > Here's a better diff: > > 1. do_fill_path is removed and its content is copied to AntiFillPath > > 2. Any call to do_fill_path is removed. > > 3. std::function FillPathFunc is removed (and replaced by direct > AAAFillPath, DAAFillPath, and SAAFillPath call). > > 4. The old call chain is: > AntiFillPath -> (AAAFillPath/DAAFillPath/...) > -> do_fill_path > -> specific FillPathFunc > The new call chain is: > AntiFillPath -> AAAFillPath/DAAFillPath/SAAFillPath > > This is made possible by the removal of SK_SUPPORT_LEGACY_AA_CHOICE > which makes sure that AntiFillPath is the only function that makes > the choice of AAA/DAA/SAA. > > In the next CL, I'll improve the structure of SkScan::AntiFillPath > to prepare for Threaded Backend's init-once change. > > Bug: skia: > Change-Id: If6ebbdab207cadb7bfe2cb3fcf33ea3d180c3896 > Reviewed-on: https://skia-review.googlesource.com/67340 > Reviewed-by: Mike Reed <reed@google.com> > Reviewed-by: Cary Clark <caryclark@google.com> > Commit-Queue: Yuqian Li <liyuqian@google.com> TBR=caryclark@google.com,liyuqian@google.com,reed@google.com,caryclark@skia.org Change-Id: I7d9517574265db5bc372a5749e6480df8e938f2e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/67855 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Simplify fill path call by removing do_fill_pathGravatar Yuqian Li2017-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The git diff is not very informative for this CL. Here's a better diff: 1. do_fill_path is removed and its content is copied to AntiFillPath 2. Any call to do_fill_path is removed. 3. std::function FillPathFunc is removed (and replaced by direct AAAFillPath, DAAFillPath, and SAAFillPath call). 4. The old call chain is: AntiFillPath -> (AAAFillPath/DAAFillPath/...) -> do_fill_path -> specific FillPathFunc The new call chain is: AntiFillPath -> AAAFillPath/DAAFillPath/SAAFillPath This is made possible by the removal of SK_SUPPORT_LEGACY_AA_CHOICE which makes sure that AntiFillPath is the only function that makes the choice of AAA/DAA/SAA. In the next CL, I'll improve the structure of SkScan::AntiFillPath to prepare for Threaded Backend's init-once change. Bug: skia: Change-Id: If6ebbdab207cadb7bfe2cb3fcf33ea3d180c3896 Reviewed-on: https://skia-review.googlesource.com/67340 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Remove SK_SUPPORT_LEGACY_UNIFORM_GRADIENTSGravatar Florin Malita2017-11-06
| | | | | | | | | | All clients are now switched over. Change-Id: Idfdb910241ab9f7c2caf5baf59e9c3277aef164f Reviewed-on: https://skia-review.googlesource.com/67846 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Fix another blurring bug with sRGB sources and legacy destsGravatar Brian Osman2017-11-06
| | | | | | | | | | | | | | By default, we propagate the input image's config to the temporary surface used for blurring. Without sRGB write control (eg Vulkan), we would end up unable to suppress the linear -> sRGB conversion, causing the blur results to be far too bright. Now, if we're rendering to a non-color correct dest, ensure that we never create an sRGB surface. Bug: skia: Change-Id: I18f5760005c11f788869251e58569029ce9f5c27 Reviewed-on: https://skia-review.googlesource.com/67845 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Disable CCPR while we sort out clippingGravatar Chris Dalton2017-11-06
| | | | | | | | | | | | | | The current usage of CCPR by clipping code is suboptimal. This is causing regressions on the bots and projects like Flutter that make heavy use of clipPath. Disabling CCPR while we fix it up. Bug: skia:7190 Bug: flutter:12839 Change-Id: I03af5249b53cf2eab5a13d85a5f87708030c8666 Reviewed-on: https://skia-review.googlesource.com/67920 Reviewed-by: Derek Sollenberger <djsollen@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Modify fontcache GM to actually spill atlas.Gravatar Brian Salomon2017-11-06
| | | | | | | | | | | | Adds an option to GrDrawOpAtlas to disable multitexturing. Adds option to GrContextOptions to disable multitexturing for glyph atlases. Change-Id: If413ab7061538fa0e75628d252be4fd14215b6ba Reviewed-on: https://skia-review.googlesource.com/67802 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Detect explicit uniform gradient positionsGravatar Florin Malita2017-11-04
| | | | | | | | | | | | | | | | | | When the color stop positions are uniform, the client is allowed to not specify them (implicit positions, signaled by a null |pos| pointer). This enables some internal optiomizations and yields improved rasterization times. But if the client does pass explicit uniform positions, we currently treat them as general/non-uniform. Detect explicit uniform color stop positions at construction time, and drop them - to ensure optimal treatment downstream. Change-Id: I32ee86daa652622de2936a6f47acb68b64e0b70a Reviewed-on: https://skia-review.googlesource.com/67765 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Remove SK_SUPPORT_LEGACY_GRADIENT_COLOR_CONVERSIONGravatar Florin Malita2017-11-03
| | | | | | | | | | | | The original change didn't produce any diffs, so this flag is not useful. TBR= Change-Id: Ic4c8d6dcd7d03ace8624345fd624bc5840b99d27 Reviewed-on: https://skia-review.googlesource.com/67724 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Disable CCPR on the Android Framework.Gravatar Derek Sollenberger2017-11-03
| | | | | | | | | | There is a memory leak when CCPR is used by SkCanvas::drawArc. Bug: b/68764873 Change-Id: Id7129acb289a8ac96a523c77c183869e314b7480 Reviewed-on: https://skia-review.googlesource.com/67767 Commit-Queue: Derek Sollenberger <djsollen@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Enforce gradient color stop monotonicity in ctorGravatar Florin Malita2017-11-03
| | | | | | | | | | | | | | From the SVG 1.1 spec: Each gradient offset value is required to be equal to or greater than the previous gradient stop's offset value. If a given gradient stop's offset value is not equal to or greater than all previous offset values, then the offset value is adjusted to be equal to the largest of all previous offset values. Change-Id: I797369a1e14dc776ceb6478ac9fcdd4792e65562 Reviewed-on: https://skia-review.googlesource.com/67761 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Make SkImageGeneratorCG apply encoded originGravatar Leon Scroggins III2017-11-03
| | | | | | | | | | | | | | | | | | | | | | | | | | SkImageGeneratorCG: - Detect the origin and apply it to the output - Deprecate NewFromEncodedCG and add MakeFromEncodedCG SkCodecImageGenerator: - Move code elsewhere for sharing - Apply origin for incomplete decodes SkPixmap.cpp/SkPixmapPriv.h: - Now has the shared code for generators to apply origin DMSrcSink.cpp: - Call MakeFromEncodedCG SkCGUtils.h: - Add a version of SkCopyPixelsFromCGImage that takes an SkPixmap Bug: skia:7138 Bug: skia:3834 Change-Id: Ic6dbc76360c6a84913b67373582f328d3946d637 Reviewed-on: https://skia-review.googlesource.com/63740 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* create imagepriv and name paramsGravatar Cary Clark2017-11-03
| | | | | | | | | | | | | | Named all parameters and made the names consistent for documentation. Moved SK_IMAGEFILTER_UNFLATTEN_COMMON to private file. TBR=reed@google.com Bug: skia:6898 Change-Id: I1343d2b16d4217088fa3bc9c40f1f4177fa32740 Reviewed-on: https://skia-review.googlesource.com/66521 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
* Remove gradient onGetGLSLProcessorKey() overridesGravatar Florin Malita2017-11-03
| | | | | | | | | | | None of the gradient processor subclassess contributes anything to the base class key. Relocate the key logic to GrGradientEffect, and remove unneeded builerplate. Change-Id: I6b33ad359212579adedf95c0c3d481373c83d4c4 Reviewed-on: https://skia-review.googlesource.com/67721 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* add some lowp gradient stagesGravatar Mike Klein2017-11-03
| | | | | | | | | | | | | | I was originally going to add these to help test a lowp dither, but after looking at diffs I don't think lowp dither is a good idea. Non-dithered lowp gradients look fine to me so far. I'd have done conics, but they scare me. Change-Id: I8f5e75aec726983186214845ca38cfa0d54496b3 Reviewed-on: https://skia-review.googlesource.com/66460 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "Revert "Fix int overflow issues with clip and path bounds, take 2.""Gravatar Jim Van Verth2017-11-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e3a700522f6e088be00011bc98fcdc4a13bd798b. Reason for revert: The GM changes I saw appear to be due to a new bot. Original change's description: > Revert "Fix int overflow issues with clip and path bounds, take 2." > > This reverts commit 430ad1f2065c182746e43e67ca95fb911cc55892. > > Reason for revert: Many bad GMs. > > Original change's description: > > Fix int overflow issues with clip and path bounds, take 2. > > > > * Change IsInsideClip test to be more int overflow friendly > > * Check to make sure path bounds can have representable width and height > > > > Bug: skia:7239 > > Bug: skia:7240 > > Change-Id: If8468e46bc74a428c25d466ff3756d0cad385c09 > > Reviewed-on: https://skia-review.googlesource.com/66154 > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > Commit-Queue: Jim Van Verth <jvanverth@google.com> > > TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com > > Change-Id: I5b1a651b60340bb4230893ef5f5d2df2ce6fd241 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia:7239, skia:7240 > Reviewed-on: https://skia-review.googlesource.com/67240 > Reviewed-by: Jim Van Verth <jvanverth@google.com> > Commit-Queue: Jim Van Verth <jvanverth@google.com> TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: I710ebeec30a4d7eb5fe7dd3a168df28073733cab No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7239, skia:7240 Reviewed-on: https://skia-review.googlesource.com/66862 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>