aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders
Commit message (Collapse)AuthorAge
* Make consistent isRadiusIncreasing decisionGravatar Yuqian Li2018-03-19
| | | | | | | | | | | | This should not affect anything for now. But it may prevent some future problems where someone accidentally changed isRadiusIncreasing implementation, and getting confused by the unexpected shading behavior. Bug: skia: Change-Id: I45e83f4bc9eefbdc1ad1c196a43444e24c782711 Reviewed-on: https://skia-review.googlesource.com/115162 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Fix concentric 2pt conical gradient in GPU where r1 < r0Gravatar Yuqian Li2018-03-19
| | | | | | | | Bug: skia:7683 Change-Id: I6608e72fa695c855af6a6a447885c4889b09fc1d Reviewed-on: https://skia-review.googlesource.com/115042 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Fix GrTextureStripAtlasManager cleanup order bugGravatar Robert Phillips2018-03-19
| | | | | | | | Bug: 820703 Change-Id: I6f1a895ceb213d38361bc03a472cf2a48e4720a5 Reviewed-on: https://skia-review.googlesource.com/115001 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Harden initial LinearGradient4f tilingGravatar Florin Malita2018-03-13
| | | | | | | | | | | | | | | | | | Even with verified/finite inputs, fx can sometimes collapse to infinity. When that happens, attempting to apply repeat/mirror tiling produces NaN results and things go south. Catch these degenerate cases and tile to 0 (for lack of a better idea). Note: leaving fx == +/- inf in clamp mode should be safe. BUG=oss-fuzz:6622 Change-Id: I65711020057856b47045f67a52d906336ad1f173 Reviewed-on: https://skia-review.googlesource.com/114090 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* with no more offline codegen, seed_shader can be normalGravatar Mike Klein2018-03-11
| | | | | | | | | | | | | | We passed this iota array as an argument before because it was generating awkward code for our object file parser to handle (relocations, other weird things, can't quite remember). Now that we're compiling pipeline code normally, we can make seed_shader a normal stage again, with no special iota ctx pointer needed. Change-Id: I3929d61bfb6f914248f360c2c2326ce3d1f23163 Reviewed-on: https://skia-review.googlesource.com/113667 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Make GrTextureStripAtlas DDL friendlyGravatar Robert Phillips2018-03-09
| | | | | | | Change-Id: If8fdd7a1c027bc2b2791cfe1af13f99c2561d93d Reviewed-on: https://skia-review.googlesource.com/113268 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* tighten check when we might overflow legacy shader mathGravatar Mike Reed2018-03-08
| | | | | | | | Bug: skia:7700 Change-Id: I2ca06b7ba36f2e17d6addd31b1f67a07d478e207 Reviewed-on: https://skia-review.googlesource.com/113264 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Simplify decal for gradientsGravatar Mike Reed2018-02-19
| | | | | | | | | | | | Previous change extended the stored array of colors/positions, and lost the information that the intent was decal. This variant just uses custom stages already developed for imageshader, keeping the intent of decal. Bug: skia:7638 Change-Id: Ie3f30b42f4c1793487f08039cd3cea8e31aafc40 Reviewed-on: https://skia-review.googlesource.com/108280 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* add decal tilemode to shadersGravatar Mike Reed2018-02-16
| | | | | | | | | | | | | Plenty more to follow-up: - gradients - gpu impl Bug: skia:7638 Change-Id: I8e54fd0e24921f040f178c793b36c7fb855b136e Reviewed-on: https://skia-review.googlesource.com/107420 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Avoid creating MIPs until necessary when MIP bias is activeGravatar Brian Osman2018-02-16
| | | | | | | | | | | | With sharpened mips, the scale at which we begin to sample level 1 is (obviously) less than 1. This change avoids creation of mips for images that are only slightly downscaled (and for which we wouldn't have sampled those MIPs anyway). Change-Id: If8ffc79c2ce2ff1f3aae7f5732d8a50aca0e26be Reviewed-on: https://skia-review.googlesource.com/107801 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Respect FPArgs local matrix when picking a filtering mode in image shaderGravatar Brian Osman2018-02-14
| | | | | | | | | Includes a GM that previously drew bilerp, now draws bicubic. Change-Id: I5e39e8adb49057b57729d9eb9748911ee8584401 Reviewed-on: https://skia-review.googlesource.com/107280 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* clean up SK_LEGACY_HIGH_QUALITY_SCALING_CLAMPGravatar Mike Klein2018-02-12
| | | | | | | | | | | After this rolls out, we can remove -DSK_LEGACY_HIGH_QUALITY_SCALING_CLAMP from Google and Chromium, finally. Change-Id: Ie277843d5ab6e6e762b1b2eea1c23a40cca55a38 Reviewed-on: https://skia-review.googlesource.com/106622 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* yet another approach to unpremul scale pixelsGravatar Mike Klein2018-02-09
| | | | | | | | | | | This keeps punning things to premul (in anticipation of pulling back on any unpremul support outside read/write/scalePixels), and yet still clamps correctly for scalePixels() + unpremul + HQ and/or gamut transform. Change-Id: I75977cfdb94ffbe62c538ddee39f1abd2cc01935 Reviewed-on: https://skia-review.googlesource.com/106265 Reviewed-by: Brian Osman <brianosman@google.com>
* Revert "alternate approach to unpremul scalePixels()"Gravatar Mike Klein2018-02-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c4616804bb407506c6ac1046c7e25e2016911449. Reason for revert: screwed up the guard I think Original change's description: > alternate approach to unpremul scalePixels() > > We want to keep the clamps in SkImageShader, and keep unpremul > scalePixels() happy too. > > So we extend SkImageShader's internal API to allow specifying an output > alpha type, which controls whether we premul or unpremul and how we > clamp. scalePixels() uses this to draw instead of a drawBitmap() call. > > Sort of backwards of usual, we opt our local builds into > SK_LEGACY_HIGH_QUALITY_SCALING_CLAMP (and Google3 is already defining > this). Then to rebase Chromium we will _define_ this in Chromium's user > config, fold it through as if always defined in Skia, then finally > remove the definition from Chromium's user config. > > Change-Id: I38035f0886f79700e7301c3c6042ce362c771d96 > Reviewed-on: https://skia-review.googlesource.com/90480 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Mike Klein <mtklein@chromium.org> TBR=mtklein@chromium.org,mtklein@google.com,brianosman@google.com,reed@google.com Change-Id: Ib53a7f29c25310b667f9a61f67f8638403ec9da3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/106220 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* alternate approach to unpremul scalePixels()Gravatar Mike Klein2018-02-09
| | | | | | | | | | | | | | | | | | | | We want to keep the clamps in SkImageShader, and keep unpremul scalePixels() happy too. So we extend SkImageShader's internal API to allow specifying an output alpha type, which controls whether we premul or unpremul and how we clamp. scalePixels() uses this to draw instead of a drawBitmap() call. Sort of backwards of usual, we opt our local builds into SK_LEGACY_HIGH_QUALITY_SCALING_CLAMP (and Google3 is already defining this). Then to rebase Chromium we will _define_ this in Chromium's user config, fold it through as if always defined in Skia, then finally remove the definition from Chromium's user config. Change-Id: I38035f0886f79700e7301c3c6042ce362c771d96 Reviewed-on: https://skia-review.googlesource.com/90480 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Move GrMakeCachedBitmapProxy work in lazy modeGravatar Greg Daniel2018-02-08
| | | | | | | | | | | This basically wraps the bitmap in an SkImage and uses the GrMakeCachedImageProxy call to create the proxy. Bug: skia: Change-Id: I648a9cac3a316231bfb1bcedaae2009b7de0356c Reviewed-on: https://skia-review.googlesource.com/105360 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Refactor explicit inverse calculation in SkImageShader::onAppendStages()Gravatar Florin Malita2018-02-07
| | | | | | | | | We have SkShaderBase::computeTotalInverse() which does exactly that. Change-Id: I77695f9261d700c3ac25fe94250b798e6edfc25d Reviewed-on: https://skia-review.googlesource.com/105000 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix picture shader handling of outer local matrixGravatar Florin Malita2018-02-06
| | | | | | | | | | | Instead of applying local matrices to the cached shader, pass them explicitly/composed to createContext/appendStages/asFragmentProcessor. Change-Id: I39aaf07ac883094c447c4e03e2ef9dcf8de13555 Reviewed-on: https://skia-review.googlesource.com/104580 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* Disable texture strip atlasing for DDLGravatar Robert Phillips2018-02-02
| | | | | | | | | | | | | Ultimately we will want to perform inline and ASAP uploads for the texture strip atlas. Unfortunately, that functionality relies on the existance of the flushState (which we don't have for the opList-based DDL implementation). For now we will punt and try storing the individual texture strips in their own image-based texture proxy for DDLs. Change-Id: Ic2ee0deb230172bda4a5d4b69cc802dbe84ad7ac Reviewed-on: https://skia-review.googlesource.com/102464 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* check matrix for SkFixed32.32 compatibilityGravatar Mike Reed2018-02-01
| | | | | | | | | | | Will have to see if we change any layouttest results Bug: skia:7569 Change-Id: Id9676ec76a931c9d4d40c79fb0a469c2a215ad5a Reviewed-on: https://skia-review.googlesource.com/102206 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* add gpu impl for shadermaskfilterGravatar Mike Reed2018-02-01
| | | | | | | | | | | adds MulChildAlphaByInput renames MulOutputByInputAlpha --> MulChildByInputAlpha Bug: skia:7500 Change-Id: Ic0615d4d23a887fbee510901ed77a36f98a1b11d Reviewed-on: https://skia-review.googlesource.com/102440 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* 1010102, 101010x, 888x in swGravatar Mike Klein2018-01-30
| | | | | | | | | | | | | | | | | | | Same sort of deal as before, now with all three new formats. While I was at it, I made sure RGBA 8888 and BGRA 8888 both work too. We don't want the 101010's in lowp, but 888x should be fine. After looking at the DM images on monitors at work, I decided to re-enable dither even on 10-bit images. Looking at the GMs in 888x or 101010x is interesting... I think we must not be clearing the memory allocated for layers? Seems like we want to allocate layers as 8888? Change-Id: I3a85b4f00877792a6425a7e7eb31eacb04ae9218 Reviewed-on: https://skia-review.googlesource.com/101640 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "hide picture virtuals (no public callers)"Gravatar Mike Klein2018-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8005bff7e631a269f0dfaae93ff9963dc0e5ff39. Reason for revert: hwui, flutter, and headless blink in G3 all still using these. Original change's description: > hide picture virtuals (no public callers) > > This prepares the way for a clean impl of a "placeholder" picture that never unrolls > > Bug: skia: > Change-Id: I3b5785c5c94432b54e9a7dc280b2a6e716592473 > Reviewed-on: https://skia-review.googlesource.com/100260 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> TBR=mtklein@chromium.org,mtklein@google.com,reed@google.com Change-Id: I385789dd420588ea9a9390c8a44c6ecb96c7f358 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/100880 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* hide picture virtuals (no public callers)Gravatar Mike Reed2018-01-27
| | | | | | | | | | This prepares the way for a clean impl of a "placeholder" picture that never unrolls Bug: skia: Change-Id: I3b5785c5c94432b54e9a7dc280b2a6e716592473 Reviewed-on: https://skia-review.googlesource.com/100260 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* move checkLE functionality directly onto readbufferGravatar Mike Reed2018-01-26
| | | | | | | | Bug: skia: Change-Id: I549717f04e2e4cafc41ccbe13009805f47943d5d Reviewed-on: https://skia-review.googlesource.com/99703 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Fix some fuzzer bugs from Skia's image filter fuzzerGravatar Robert Phillips2018-01-23
| | | | | | | | Change-Id: I432b3a351eecca0d36635e37f91d32c0e281b7d9 Reviewed-on: https://skia-review.googlesource.com/98384 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Reed <reed@google.com>
* IWYU -- SkShader.hGravatar Mike Reed2018-01-23
| | | | | | | | Bug: skia: Change-Id: I57bffc14c4888627a22158e35f3ac3b762138f02 Reviewed-on: https://skia-review.googlesource.com/98520 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "simplify GrFPArgs, isolating localmatrix""Gravatar Mike Reed2018-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3d628fe00a7d6cf4a375d758e7436f104d11417d. Reason for revert: not needed for roll Original change's description: > Revert "simplify GrFPArgs, isolating localmatrix" > > This reverts commit b76c71702517643b5f6081991b376bbf73b34bde. > > Reason for revert: try to unblock android roller > > Original change's description: > > simplify GrFPArgs, isolating localmatrix > > > > Bug: skia: > > Change-Id: Icee24e0a355a7d1bae29b7721b4d95db8023ca77 > > Reviewed-on: https://skia-review.googlesource.com/97063 > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > Commit-Queue: Mike Reed <reed@google.com> > > TBR=bsalomon@google.com,reed@google.com > > Change-Id: Ic7a2288844cde57922b2cc74b855eb517ade48be > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/97580 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> TBR=bsalomon@google.com,reed@google.com Change-Id: I6f7b86b5a3243d4610371654624e5606e889adef No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/97584 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "simplify GrFPArgs, isolating localmatrix"Gravatar Mike Reed2018-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b76c71702517643b5f6081991b376bbf73b34bde. Reason for revert: try to unblock android roller Original change's description: > simplify GrFPArgs, isolating localmatrix > > Bug: skia: > Change-Id: Icee24e0a355a7d1bae29b7721b4d95db8023ca77 > Reviewed-on: https://skia-review.googlesource.com/97063 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Mike Reed <reed@google.com> TBR=bsalomon@google.com,reed@google.com Change-Id: Ic7a2288844cde57922b2cc74b855eb517ade48be No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/97580 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* simplify GrFPArgs, isolating localmatrixGravatar Mike Reed2018-01-19
| | | | | | | | Bug: skia: Change-Id: Icee24e0a355a7d1bae29b7721b4d95db8023ca77 Reviewed-on: https://skia-review.googlesource.com/97063 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* rename inner AsFPArgs to stand-alone GrFPArgsGravatar Mike Reed2018-01-19
| | | | | | | | | | This prepares us to share this with other effects (most notably maskfilters) Bug: skia: Change-Id: I12530fdf10c4e5f2a9ab6d394bf9e87c54ea60c4 Reviewed-on: https://skia-review.googlesource.com/97062 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* remove code from old picture serial guardGravatar Mike Reed2018-01-19
| | | | | | | | Bug: skia: Change-Id: If50a76c7f570d6e88f6583d381d0354568398039 Reviewed-on: https://skia-review.googlesource.com/97060 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Reuse the CPU 2pt conical code in the GPU backendGravatar Yuqian Li2018-01-17
| | | | | | | | Bug: skia: Change-Id: I7e58c4faee018138ae6f93e92850a4e0a0126854 Reviewed-on: https://skia-review.googlesource.com/94041 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Remove legacy 2pt conical gradientGravatar Yuqian Li2018-01-16
| | | | | | | | Bug: skia:7459 Change-Id: Iccc2588f80e22b13ed5d23656b8c75d7b7058a36 Reviewed-on: https://skia-review.googlesource.com/92700 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Remove DumpHelper as the bug is fixedGravatar Yuqian Li2018-01-09
| | | | | | | | Bug: skia:7436 Change-Id: I1dd09eb2b2d07f13b1ace01259791d8e0ce26ae8 Reviewed-on: https://skia-review.googlesource.com/92702 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Add GrProxyProviderGravatar Robert Phillips2018-01-08
| | | | | | | | | This pulls all the proxy tracking & creation functionality out of the GrResourceCache and GrResourceProvider and consolidates it in the GrProxyProvider. Change-Id: I7256f7c544319a70c1bd93dd5a9ccbe5fa0a544f Reviewed-on: https://skia-review.googlesource.com/91501 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Update 2pt conical gradient in raster pipelineGravatar Yuqian Li2018-01-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | The updated algorithm matches our new GPU algorithm (https://skia.org/dev/design/conical) and it brings about 7%-26% speedup. In the next CL, I'll simplify the GPU code by reusing the CPU code in this CL. 7.20% faster in gradient_conical_clamp_hicolor 8.94% faster in gradient_conicalZero_clamp_hicolor 10.00% faster in gradient_conicalOut_clamp_hicolor 11.72% faster in gradient_conicalOutZero_clamp_hicolor 13.62% faster in gradient_conical_clamp_3color 16.52% faster in gradient_conicalZero_clamp_3color 17.48% faster in gradient_conical_clamp 17.70% faster in gradient_conical_clamp_shallow 20.60% faster in gradient_conicalOut_clamp_3color 20.98% faster in gradient_conicalOutZero_clamp_3color 21.79% faster in gradient_conicalZero_clamp 22.48% faster in gradient_conicalOut_clamp 26.13% faster in gradient_conicalOutZero_clamp Bug: skia: Change-Id: Ia159495e1c77658cb28e48c9edf84938464e501c Reviewed-on: https://skia-review.googlesource.com/90262 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Revert "remove legacy support for old old picture versions""Gravatar Mike Reed2018-01-03
| | | | | | | | | | | | This reverts commit 6f1151140f331c78d99ede3cac10462dc8b32cde. Chrome has been updated, so this should be able to land. Bug: skia: Change-Id: I5a66782a39fecfac00edeb66fbd03dae4df1712c Reviewed-on: https://skia-review.googlesource.com/90205 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* remove unneeded readbuffer flagsGravatar Mike Reed2018-01-03
| | | | | | | | | | | - buffers are always 'cross-process' - readbuffer is always validating Bug:796107 Change-Id: I59614e9c29490c0b029c60d2aafe2806671bc9e1 Reviewed-on: https://skia-review.googlesource.com/90560 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Changes to make 2pt gradient source code better aligned with our future docGravatar Yuqian Li2018-01-02
| | | | | | | | | | See https://skia-review.googlesource.com/c/skia/+/89340 for the doc Bug: skia: Change-Id: I7a57eea317bbc424278c9eaa524a6b7e3b36178e Reviewed-on: https://skia-review.googlesource.com/90203 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Stronger fix for swapping r0, r1 in 2pt conical gradientsGravatar Yuqian Li2018-01-02
| | | | | | | | Bug: chromium:798173 Change-Id: I2ac0ee94ecc6230fd450c17b6a0de9065f5b3f16 Reviewed-on: https://skia-review.googlesource.com/90202 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Revert "remove legacy support for old old picture versions"Gravatar Mike Reed2017-12-29
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f3504d430cec35330017aa2af3a51083801c7dd9. Reason for revert: breaks unittest in Printing unittest in chrome Original change's description: > remove legacy support for old old picture versions > > Bug: skia: > Change-Id: Ieb97eabdb18e8c7bfa86e6a1fc6e0389cd096daa > Reviewed-on: https://skia-review.googlesource.com/89860 > Reviewed-by: Florin Malita <fmalita@chromium.org> > Commit-Queue: Mike Reed <reed@google.com> TBR=mtklein@google.com,fmalita@chromium.org,reed@google.com Change-Id: I9f90da5dcfb9543f2f575fa7dc3b9c82996b041d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/90020 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* remove legacy support for old old picture versionsGravatar Mike Reed2017-12-29
| | | | | | | | Bug: skia: Change-Id: Ieb97eabdb18e8c7bfa86e6a1fc6e0389cd096daa Reviewed-on: https://skia-review.googlesource.com/89860 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Fix bug of a + (b - a) == 0 for small positive b and huge a (e.g., 1e18)Gravatar Yuqian Li2017-12-28
| | | | | | | | | | | | | | I am unable to make a MSAN build to work locally. But I think that this should fix the problem by looking at the gradient of the fuzzer: Z.createRadialGradient(1.94159387872, 138.616510533, 2.22085316544e+18, 10.3399911492, 176.149195942, 153.078363987); Bug: chromium:797184 Change-Id: I16c571a378742c4ef50afe9c5baba791da7fc208 Reviewed-on: https://skia-review.googlesource.com/89541 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Fix conical test where r1 = r2 = 0Gravatar Yuqian Li2017-12-27
| | | | | | | | Bug: skia:7436 Change-Id: I0fdbd458d4e2da53e587be27ac90fbb2d32584e5 Reviewed-on: https://skia-review.googlesource.com/89520 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* attempt 3: add experimental bilerp_clamp_8888 stageGravatar Mike Klein2017-12-22
| | | | | | | | | | | | | | | | | | | | | | It looks like we can specialize hot image shaders into their own single stages for a good speedup on both x86 and ARM. I've started here with bilerp_clamp_8888, and will follow up with bgra and 565, and lowp versions of those, and probably also the same for nearest neighbors. All pixels are identical in GMs. This time, rewrite the loop over sample points to be a little friendlier to 32-bit x86 code generation. The previous version created an object file indirection feature build_stages.py can't handle. CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Release-All-Android,Test-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-All-Android Change-Id: I150b6af4a5b89e009dc04ca69e1857892e173deb Reviewed-on: https://skia-review.googlesource.com/89180 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Debug random 2pt conical shadersGravatar Yuqian Li2017-12-21
| | | | | | | | Bug: skia:7436 Change-Id: I5131c7f1208f04e6145c0bc11454ef0c39ce8e2f Reviewed-on: https://skia-review.googlesource.com/88426 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Reland "remove bicubic clamp in SkImageShader"Gravatar Mike Klein2017-12-21
| | | | | | | | | | | | | | | | | | | | | | This is a reland of bc9f3499c345ce59f8cd3889c580fa75db54034b Original change's description: > remove bicubic clamp in SkImageShader > > We ought to be able to handle out-of-gamut colors now, whatever > their provenance. Should be we can just not clamp here. > > Bug: skia:5733 > > Change-Id: Icd9851543638fd81755afee2eac2347702b88e9f > Reviewed-on: https://skia-review.googlesource.com/87000 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Brian Osman <brianosman@google.com> Bug: skia:5733 Change-Id: I66dafdb12abdb02e8677a6f6b18602a2fa3f5f8b Reviewed-on: https://skia-review.googlesource.com/88760 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "remove bicubic clamp in SkImageShader"Gravatar Mike Klein2017-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit bc9f3499c345ce59f8cd3889c580fa75db54034b. Reason for revert: gotta be the reason for layout test issues. Original change's description: > remove bicubic clamp in SkImageShader > > We ought to be able to handle out-of-gamut colors now, whatever > their provenance. Should be we can just not clamp here. > > Bug: skia:5733 > > Change-Id: Icd9851543638fd81755afee2eac2347702b88e9f > Reviewed-on: https://skia-review.googlesource.com/87000 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Brian Osman <brianosman@google.com> TBR=mtklein@chromium.org,brianosman@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: skia:5733 Change-Id: I3bccf494479b845210ee2a6824dcc32b89a93312 Reviewed-on: https://skia-review.googlesource.com/88423 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Guard the sqrt(temp) where temp < 0 in 2pt conical gradientGravatar Yuqian Li2017-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although Linux and Android will return NAN, iOS and some some Win10 devices would return undefined values. This relands 82161 (with the fix mentioned above). The speedup is a little less due to the additional temp < 0 check. 4.08% faster in gradient_conicalOutZero_clamp 6.83% faster in gradient_conical_clamp_shallow_dither 9.43% faster in gradient_conicalOutZero_clamp_3color 12.66% faster in gradient_conicalOut_clamp_hicolor 16.67% faster in gradient_conicalOut_clamp_3color 17.83% faster in gradient_conicalOut_clamp and the speedup is further reduced because we break up the if with two conditions into two ifs with single condition: 7.32% faster in gradient_conical_clamp_shallow_dither 8.00% faster in gradient_conicalOut_clamp_hicolor 8.57% faster in gradient_conicalOut_clamp 8.73% faster in gradient_conicalOut_clamp_3color CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android,Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android,Test-Mac-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All-CommandBuffer Change-Id: I41fb8d97e31c577b52a200f0b883591c9bdc4d1c Reviewed-on: https://skia-review.googlesource.com/84963 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>