Commit Graph

28524 Commits

Author SHA1 Message Date
Mike Klein
9c6645e787 assume sRGB transfer function on untagged images
This has been a long time coming.  There are probably one or two more
places we'd want to do this on the CPU side too, but it's a start.

Somewhat seriously, this is my proposed fixed for colorburn +
xfermodes2.  We're not interpreting the red or green images sensibly.

BUG=skia:6680

Change-Id: Iea15be08c1907ac1ac46ef358d3d74f1cc35a156
Reviewed-on: https://skia-review.googlesource.com/18221
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-31 15:59:19 +00:00
Mike Reed
2fdc3d56a2 remove unused spanprocs (leftover from spriteblitter simplification)
Bug: skia:
Change-Id: Iaa8cd1e5700610cddfb2092fcf7b13d12cf117bd
Reviewed-on: https://skia-review.googlesource.com/18228
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-05-31 15:46:57 +00:00
Stephan Altmueller
c19ebc5efa Get known hashes from GS directly
Bug: skia:
Change-Id: I8698aad706e2c9cc81280107cb08d83e08a9dc25
Reviewed-on: https://skia-review.googlesource.com/18145
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Stephan Altmueller <stephana@google.com>
2017-05-31 15:25:41 +00:00
Florin Malita
bb3f5621a9 Revert "Revert "Delete SkGaussianEdgeShader""
This reverts commit 9d14f936cc.

Reason for revert: Android fix merged.

Original change's description:
> Revert "Delete SkGaussianEdgeShader"
> 
> This reverts commit 64790a3714.
> 
> Reason for revert: pending Android fix merge.
> 
> Original change's description:
> > Delete SkGaussianEdgeShader
> > 
> > No longer used.
> > 
> > Change-Id: I65a61696060ca19f528066ea587e140798450e36
> > Reviewed-on: https://skia-review.googlesource.com/18132
> > Reviewed-by: Jim Van Verth <jvanverth@google.com>
> > Commit-Queue: Florin Malita <fmalita@chromium.org>
> > 
> 
> TBR=jvanverth@google.com,fmalita@chromium.org,reed@google.com
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> 
> Change-Id: I88a428e942c78b1fc8e70501ba7fdda5727b2ab2
> Reviewed-on: https://skia-review.googlesource.com/18156
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> 

TBR=mtklein@google.com,jvanverth@google.com,reviews@skia.org,fmalita@chromium.org,reed@google.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Change-Id: Ia6c97a79a6425a28fab49984691505bf89ac9736
Reviewed-on: https://skia-review.googlesource.com/18227
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-31 14:52:12 +00:00
Brian Salomon
0cc507d225 Expand partial render target write pixels workaround.
The workaround is extended in the following ways:

1) It now applies to any texture whose base level has *ever* been attached to a FBO.
2) It applies to Adreno 5xx in addition to Adreno 4xx
3) It applies in the atlas upload code path.

This workaround (and a similar one) are narrowed to GLCaps rather than Caps.

Bug: skia:
Change-Id: Id600e9739bb97bf6766075ea2a987fd2039e53e5
Reviewed-on: https://skia-review.googlesource.com/18150
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-05-31 14:38:43 +00:00
Greg Daniel
59a8b9c12e Fix outset for blurs when using ignoreXform flag on GPU
Bug: skia:
Change-Id: I7d77bfc4e7652a0ab432b1137f918862ac2009cb
Reviewed-on: https://skia-review.googlesource.com/18223
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-05-31 14:30:16 +00:00
Joe Gregorio
a8fabd3f28 Fiddle can use EGL if available.
To test this turn on egl, e.g. --args='skia_use_egl=true', and run by altering the
library path to point to the right directory of the EGL driver you want to use, for example:

  LD_LIBRARY_PATH=/usr/lib/nvidia-367/ ./out/Release/fiddle  | ./tools/fiddle/parse-fiddle-output 

Bug: skia:
Change-Id: I2cce80318925fe88f9407646acb67628a8e48810
Reviewed-on: https://skia-review.googlesource.com/18137
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-31 14:23:56 +00:00
Ethan Nicholas
361941eec9 simplify a confusing expression in SkSLSPIRVCodeGenerator
Bug: skia:
Change-Id: I3ce0c174677cf93903a5fb33287dfe1df3445837
Reviewed-on: https://skia-review.googlesource.com/18141
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Bruce Dawson <brucedawson@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-05-31 14:19:15 +00:00
Mike Reed
1919dc4c05 remove sprite blitters for non-legacy targets, rely on rasterpipline
preliminary step to trying to remove filterSpan4f() from colorfilter

Bug: skia:
Change-Id: I6aa6cfde506ffac22188e9641a23a8285e80a5b9
Reviewed-on: https://skia-review.googlesource.com/18185
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-31 14:16:52 +00:00
Eric Boren
30095a1166 [recipes] Try removing the possibly-over-conservative git step
Bug: skia:
Change-Id: Ie6ea54d26eff7a165f32afbb5c8037b6c1921a5d
Reviewed-on: https://skia-review.googlesource.com/18138
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-05-31 11:51:57 +00:00
Mike Klein
b5e4842543 clean up now that min_stride == 1
Change-Id: I1c285e818c3119bc5917dee6d7fbe4c0c62ff6d7
Reviewed-on: https://skia-review.googlesource.com/18153
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-31 02:40:10 +00:00
Mike Klein
7f6ad01336 call compile in convert_with_pipeline()
We used to do this a while ago, then I removed compile().
This puts things back how they used to be.

Change-Id: I676ec1a06249f2356f426fd2847af093526f54d2
Reviewed-on: https://skia-review.googlesource.com/18079
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-31 02:13:56 +00:00
Greg Daniel
aa28bfcc5a Allow GPU blur fast path for circles and rects when using ignore xform
Since the only thing it looks like we alter when using the ignore
xform flag is the blur radius, this is already handled by the
computeXformedSigma function call. Thus it should be safe to just use
the current fps and draws for circle and rect.

Bug: chromium:724735
Change-Id: I7a2f52dc965dcd875b8c2802141f30607a966347
Reviewed-on: https://skia-review.googlesource.com/18122
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-05-31 02:06:36 +00:00
Florin Malita
9d14f936cc Revert "Delete SkGaussianEdgeShader"
This reverts commit 64790a3714.

Reason for revert: pending Android fix merge.

Original change's description:
> Delete SkGaussianEdgeShader
> 
> No longer used.
> 
> Change-Id: I65a61696060ca19f528066ea587e140798450e36
> Reviewed-on: https://skia-review.googlesource.com/18132
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> 

TBR=jvanverth@google.com,fmalita@chromium.org,reed@google.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Change-Id: I88a428e942c78b1fc8e70501ba7fdda5727b2ab2
Reviewed-on: https://skia-review.googlesource.com/18156
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-31 01:25:23 +00:00
Florin Malita
b365cf590f Speculative fix for SkPerlinNoiseShaderImpl::asFragmentProcessor leak
Change-Id: I9dfa0e825f944d6abf88abfdfd585f2d504ea4f6
Reviewed-on: https://skia-review.googlesource.com/18151
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-05-30 22:39:04 +00:00
Herb Derby
84dcac3292 Add aarch64 tail code.
Change-Id: I25f029604a04f5fc6c249a3817b0dd84379071be
Reviewed-on: https://skia-review.googlesource.com/18149
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-30 22:04:31 +00:00
Florin Malita
5edba45dca [Reland] Relocate shaders to own dir
Consolidate all shader impls under src/shaders/.

(reland of https://skia-review.googlesource.com/c/17927/)

Change-Id: I7918bdc1aafe842ed194412ba95b9ae53a2ec1d7
Reviewed-on: https://skia-review.googlesource.com/18146
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-30 21:01:46 +00:00
Florin Malita
64790a3714 Delete SkGaussianEdgeShader
No longer used.

Change-Id: I65a61696060ca19f528066ea587e140798450e36
Reviewed-on: https://skia-review.googlesource.com/18132
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-30 20:34:29 +00:00
Mike Reed
f2ae2b2dbc move perlinenoise2 into effects
Bug: skia:
Change-Id: I5c178bdc5901d15c6924b3fb1f29119ab3cc701d
Reviewed-on: https://skia-review.googlesource.com/18131
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-05-30 20:15:37 +00:00
Mike Klein
25e90055a0 simplify sse41::srcover_srgb_srgb
Most importantly, remove the undefined behavior implied by "delta".

Change-Id: I8f9740804ec74dd40b049eafd4f0d51b36ce3237
Reviewed-on: https://skia-review.googlesource.com/18140
Reviewed-by: Herb Derby <herb@google.com>
2017-05-30 19:49:32 +00:00
Herb Derby
f81c56f3c0 Add arm tail code.
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-Nexus10-CPU-Exynos5250-arm-Release-Android

Change-Id: Ia0e9f32d0324e66c9d4812dbb156a2b858d49a13
Reviewed-on: https://skia-review.googlesource.com/18127
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-30 19:39:44 +00:00
Mike Klein
836e6c1f7d remove sse2::srcover_srgb_srgb
Change-Id: Icc570d8a8f1df1dea202e1d234433491122b9b67
Reviewed-on: https://skia-review.googlesource.com/18135
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-30 19:16:46 +00:00
Florin Malita
b391f12e78 Don't pull private headers in SkOverdrawColorFilter.h
Change-Id: I16254709ffaf6c85110964568ec9422a1ffbb970
Reviewed-on: https://skia-review.googlesource.com/18129
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-30 17:46:14 +00:00
Chris Dalton
114a3c0b2b Fix glDrawRangeElements
Adds explicit min/max index value fields to GrMesh. This eliminates the
previous assumption that the index values were within the range
[0..vertexCount-1]. In the pattern case we still maintain this
assumption.

Updates GrMesh to hide its fields and handle its new complexity using a
"helper" interface instead.

Adds a unit test for GrMesh.

Bug: skia:
Change-Id: Ia23de72d510f8827cee56072b727fb70a6e46b8d
Reviewed-on: https://skia-review.googlesource.com/17964
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-05-30 16:02:36 +00:00
Florin Malita
8cc933104b Restore SampleApp picture drawing
(deleted unintentionally in https://skia-review.googlesource.com/c/15185/)

Change-Id: I36111db7012ea7f72a5990b61bb4713d9250da34
Reviewed-on: https://skia-review.googlesource.com/18128
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-30 15:59:19 +00:00
Greg Daniel
2cb7a1a3bf Add GM to test the IgnoreTransform flag on blurs
Bug: skia:
Change-Id: I2525daa83d78280e4be3b31b66dc4f13971af311
Reviewed-on: https://skia-review.googlesource.com/18066
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-05-30 15:34:49 +00:00
Mike Klein
b474e2d826 bug fix in convert_with_pipeline()
What do you supppose happens if we put an SkColorSpaceTransferFn on the
stack, pass its address to SkRasterPipeline, then pop it off the stack?

BUG=skia:6671

Change-Id: I17c777d9dc55a67cca6196a01c076a6be8283d3d
Reviewed-on: https://skia-review.googlesource.com/18078
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-30 14:13:53 +00:00
Robert Phillips
bb581ce30f Convert DstTexture to DstProxy (take 2)
The last GrTexture-based TextureSampler::reset call must be removed before the TextureSamplers can become purely GrTextureProxy-backed

Reland of: https://skia-review.googlesource.com/c/16908/ (Convert DstTexture to DstProxy)

Split out of: https://skia-review.googlesource.com/c/10484/ (Omnibus: Push instantiation of GrTextures later (post TextureSampler))

Change-Id: I3a497b6a950fad899f23882c0a9552894ef640f8
Reviewed-on: https://skia-review.googlesource.com/17205
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-29 19:26:26 +00:00
Robert Phillips
9bee2e5894 Revise system for checking for uninstantiated proxies
The new pattern is:
  we will "instantiate" pipelines at flush time
  at flush time we will only access the backing GrSurface by peeking

  If instantiation fails we should never try to access the GrSurfaces


Change-Id: I87f7ff41bd0e84d9ca3dbdd61d3361d3d4ceefd6
Reviewed-on: https://skia-review.googlesource.com/17932
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-29 17:04:51 +00:00
UpdateSKPs
7617171469 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=update-skps@skia.org
NO_MERGE_BUILDS

Change-Id: I8285e9dcf65280e5712d140a7d17a0f99a40bca5
Reviewed-on: https://skia-review.googlesource.com/18084
Reviewed-by: update-skps <update-skps@skia.org>
Commit-Queue: update-skps <update-skps@skia.org>
2017-05-28 07:45:13 +00:00
recipe-roller
576dcf0038 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/2e559c98e6de6730da99e4acf1ec112ec3607dca git-cl: remove unnecessary similarity notice (agable@chromium.org)
  https://crrev.com/c4c40d1b5a9a142a50e8b0a1afb24fa2ec05f9e8 git-cl: Print Rietveld deprecation warning (agable@chromium.org)
  https://crrev.com/568e5919442f1dd3a2b160dbe998d1f1489a09c9 gclient validate: allow None in deps_os values (phajdan.jr@chromium.org)
  https://crrev.com/3e6d7c1cbccdc1b7881cf27581488769a6edc22b gclient: remove support for $matching_files in hooks (phajdan.jr@chromium.org)
  https://crrev.com/bf72b593a2fac54e0ac7961be2706581ea47f7f9 gclient: remove support for From() (phajdan.jr@chromium.org)
  https://crrev.com/8db72efd6351a58a6a689c8db9b02aacfa39b8b7 gclient: enable syntax validation by default (phajdan.jr@chromium.org)
  https://crrev.com/58abadba2af26354f96035ad67b40ab3b97d63b7 Revert "gclient: enable syntax validation by default" (tandrii@chromium.org)
  https://crrev.com/b4f9d904734930d83bfbadcfc5d165becd6e3181 Revert "gclient: remove support for From()" (tandrii@chromium.org)
  https://crrev.com/004923399e12dfff8c4853a1331f39dc91f3e248 Revert "gclient: remove support for $matching_files in hooks" (tandrii@chromium.org)
  https://crrev.com/4f27802b5c6e1abfb6809006763149456496a3db Revert "gclient validate: allow None in deps_os values" (tandrii@chromium.org)
  https://crrev.com/35b298f0772d6dbec82c4a33c1e0c94aab9285bf gclient: remove support for $matching_files in hooks (reland #1) (phajdan.jr@chromium.org)
  https://crrev.com/7e9303ba19e4985f50d68ca1e8f938bb2e513cf4 gclient: remove support for From() (reland #1) (phajdan.jr@chromium.org)
  https://crrev.com/7c7b5592d84ce41c4b46fac6ddc4587f35989390 gclient: add --disable-syntax-validation escape hatch (phajdan.jr@chromium.org)
  https://crrev.com/b7e533360cc46f05cd35432d9cb64880b89eb176 gclient validate: schema fixes (patch #1) (phajdan.jr@chromium.org)
  https://crrev.com/56e4ad939b3c06e2915faea0be14d34473bc3602 Add messages in gclient-new-workdir.py (wychen@chromium.org)
  https://crrev.com/b02daf0bf9737168491585632d9f9dd5d1c7b4a8 git-cl: use private instead of draft (agable@chromium.org)
  https://crrev.com/56664461ae794acee098f85d8c33b438909952f2 Support btrfs snapshot in gclient-new-workdir.py (wychen@chromium.org)
  https://crrev.com/1b9a43aab385070fd75263a9e0f4b4312b5f510e Remove special Cygwin PATH manipulation from .bat. (dnj@chromium.org)
  https://crrev.com/1ba610bfe2489a0c9cc5750dd49841d54dd31148 gclient validate: dump more details about unexpected AST nodes (phajdan.jr@chromium.org)
  https://crrev.com/5dd7cd6e8fe33118cc9dbbe40412ed3c0f2c7003 [led] add LUCI editor to depot_tools. (iannucci@chromium.org)
  https://crrev.com/fb4f1b65e6005e5729c72bbdda86eca30ad3eebd [led] Roll led. (iannucci@chromium.org)
recipe_engine:
  https://crrev.com/5da7e1fbc1f0e8b14d0ac6c1dc770ce9ca39d6ac Remove "Recipe Roll Downstream Tester" builder (nodir@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I92a1c7d8c7e30b74d6f09f9a96233c268da53f89
Reviewed-on: https://skia-review.googlesource.com/18073
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
2017-05-27 20:21:43 +00:00
danakj
24f20a8639 Add casts for SkColor constant macros.
This ensures the compiler knows they are SkColors and not "int" which
can't be implicitly casted when you end up with a reference to it.

Bug: skia: 6696
Change-Id: Ieb6a2270d7d01df279d55e0bad7a793a8edd8658
Reviewed-on: https://skia-review.googlesource.com/18081
Commit-Queue: danakj chromium <danakj@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-26 23:14:13 +00:00
Florin Malita
f7beee7cdd Hide ctors of SkShader, SkImage & SkColorSpace
To prevent external clients from subclassing.

Change-Id: I60a3833bf64019aea2f537850ca2a1ae38bb8767
Reviewed-on: https://skia-review.googlesource.com/18038
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-26 22:34:00 +00:00
Mike Klein
5addedd59d no sprite blitters support gamut conversion
This fixes the None/Low bitmap filtering in gamut GM.

BUG=skia:6679

Change-Id: Ic6e0efa6a23b537aea69b4beb24f3c8b8c6ca347
Reviewed-on: https://skia-review.googlesource.com/17923
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-05-26 21:00:34 +00:00
Herb Derby
d1f08302aa Add tests for tail handling in SkJumper.
Change-Id: Ib4ecc33dc9552c16b5530359cd3649487e70bbed
Reviewed-on: https://skia-review.googlesource.com/18067
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-05-26 20:41:04 +00:00
Brian Osman
988adb495d Reduce tree depth on iOS too
Bug: skia:6627
Change-Id: Ib92b62bf1191170a46e63f61fa9502ca2f9ee771
Reviewed-on: https://skia-review.googlesource.com/18072
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-26 20:40:22 +00:00
Brian Osman
4e1868c7f7 Really work around iOS varying limit in GLPrograms test
Bug: skia:6627
Change-Id: I80142f5288e1c6f59f6add3a5a71ab90da90d3cc
Reviewed-on: https://skia-review.googlesource.com/18069
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-26 20:01:31 +00:00
Mike Klein
2048c3ed3e wait for DM status thread to exit on iOS
CQ_INCLUDE_TRYBOTS=skia.primary:Test-iOS-Clang-iPadPro-GPU-GT7800-arm64-Debug,Test-iOS-Clang-iPhone6-GPU-GX6450-arm64-Debug,Test-iOS-Clang-iPhone7-GPU-GT7600-arm64-Debug

Change-Id: I0e7491a6aaad08e969ceaabae49cbda718ea4be8
Reviewed-on: https://skia-review.googlesource.com/18065
Reviewed-by: Stephan Altmueller <stephana@google.com>
2017-05-26 20:01:00 +00:00
Yuqian Li
1c8408847c Explicitly check edge count >= 2 in non-debug build
We also preserve the check in debug mode that the
count should never be 1 when the path is convex.

Bug: skia:6684
Change-Id: I4d4c9ad9f9d704e94bbe51f10a96f8b3066afaa1
Reviewed-on: https://skia-review.googlesource.com/17983
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-05-26 19:14:51 +00:00
Matteo Franchin
a132c3869f Faster and more accurate blit_row_s32a_opaque for ARM
Change ARM implementation of alpha blending to work on 8 pixels at a
time (using NEON). Also improve the accuracy of alpha blending by using
a formula based on SkMulDiv255Round rather than SkPMSrcOver.

Note that a number of variations of this code were considered. Here are
some notes:

- A 16 pixels at a time version was considered. This performs well for
  the case of extreme alpha (all-opaque or all-transparent pixels), but
  performs worst than the 8 pixels version when there are frequent
  transitions of alpha. Also gcc 6.2.1 seems to have troubles with
  register pressure when using this version.

- If the branch to detect the fully-opaque or fully-transparent cases
  is removed, then the performance increases significantly for images
  which are all partially transparent (especially on ARM Cortex A72),
  but can significantly decrease for images that are almost fully
  opaque or fully transparent.

This implementation is a compromise to the effects described above.
This patch produces a ~10% improvement on the nanobench's sub-scores
repeatTile_BGRA_8888_A, constXTile_MM_filter_trans, constXTile_CC_trans,
constXTile_RR_filter_trans when running on ARM Cortex A72. Improvements
of greater magnitude (20% to 30%) are observed when running on ARM
Cortex A53.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: I1f0c9f549057613bbffd26e6651f3beeb0019af9
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/16520
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-26 19:02:11 +00:00
Brian Osman
0b403f8b6b Fix two more drawVertices "bugs"
1) Prior to SkVertices, drawing with local coords but no shader triggered
   wireframe mode (as if no local coords were supplied, and assuming no
   colors). I find the wireframe thing to be strange, but restore that
   behavior to match CPU backend.

2) More importantly: If we *do* fall into the wireframe mode, make sure to
   not *also* draw in non-wireframe. Yesterday's bugfix to paint
   conversion caused those kinds of draws to draw wireframe, then draw in
   fill mode on top.

Bug: skia:
Change-Id: Ie579b54480b4488a09c207fecbbe3badbddc5d68
Reviewed-on: https://skia-review.googlesource.com/18032
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-26 18:36:20 +00:00
Florin Malita
eb9f278e8c Delete onChooseBlitProcs() and related code
All dead code now.

Change-Id: I3d88103fef90d9e2ceee8b13db143ac9704689f5
Reviewed-on: https://skia-review.googlesource.com/18034
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-26 18:31:18 +00:00
Brian Osman
a1fab3cec2 Revert "Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT code"
This reverts commit 04d22c0483.

Reason for revert: Seems likely that this is failing Android roll.

Original change's description:
> Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT code
> 
> Behold the first raster pipeline-only gradient!
> 
> Change-Id: Ib6f53224e4ff9506aafdae1d2303102fc5235dfc
> Reviewed-on: https://skia-review.googlesource.com/17982
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> 

TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,fmalita@chromium.org,reed@google.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Change-Id: I69b8a46ec4879202b72c23979a21065c1ffbd093
Reviewed-on: https://skia-review.googlesource.com/18023
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-26 18:31:17 +00:00
Brian Salomon
96789b31f2 Fix resource and skp paths in Android viewer
Docs-Preview: https://skia.org/?cl=18037
Change-Id: If92e561c6c24de1f51f81477d89b927e10308f13
Reviewed-on: https://skia-review.googlesource.com/18037
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-05-26 18:29:48 +00:00
Mike Reed
e28bbcf0f6 avoid rebuilding pipeline w/ only tricolors
patch_primitive: 2.0 --> 1.4

Bug: skia:
Change-Id: Ia43c31873b9438332c94958232f6367240ba9a62
Reviewed-on: https://skia-review.googlesource.com/18030
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-05-26 18:29:47 +00:00
Robert Phillips
10240e385f Initialize rects in SkValidatingReadBuffer readRect & readIRect on failure
BUG: 726199

Change-Id: I2afeebbd2240e1c2f3b7d7298cb11572eef18acd
Reviewed-on: https://skia-review.googlesource.com/17984
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-05-26 18:24:43 +00:00
Brian Osman
ae0c50c624 Only support SkVertices in GrDrawVerticesOp and GrRenderTargetContext
Allow overriding the primitive type at draw time, so everyone can
funnel through the same code path. Simplifies the color array type
logic, and saves one memcpy (of indices) in the drawWireframe case.

Bug: skia:
Change-Id: I46653d34169842b9b5304cff48d804b2a9ace529
Reviewed-on: https://skia-review.googlesource.com/17783
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-26 18:24:42 +00:00
Florin Malita
95c993cd7b Unexport private SkShader classes
Alternative to https://skia-review.googlesource.com/c/18025/: these
subclasses are private, we shouldn't need to SK_API-tag them.

Change-Id: I94fc38e76ee4468132e41ab16f21ae6ad61fe1f2
Reviewed-on: https://skia-review.googlesource.com/18029
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-26 18:19:39 +00:00
Mike Reed
98b7a6a955 rasterpipeline:
+ only dither if the paint asks for it
- don't special case if the shader is a gradient

guard: SK_SUPPORT_LEGACY_RASTERPIPELINE

Bug: skia:
Change-Id: I7f0c101049e5cb32a80306dcfff3bc21bcf318be
Reviewed-on: https://skia-review.googlesource.com/17931
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-05-26 18:19:37 +00:00
Matt Sarett
f485cf9f18 Tag CodecSrc bitmaps with standard color spaces
Tests were previously dependent on the fact that drawBitmap calls were
using the legacy sprite blitters.  Now these tests are blocking the
change that fixes drawBitmap behavior.
https://skia-review.googlesource.com/c/17923/

Bug: skia:
Change-Id: Ia9e5244243f18680d7593b0fa9de942dbbeeeb1d
Reviewed-on: https://skia-review.googlesource.com/18027
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-05-26 18:14:34 +00:00