Commit Graph

36555 Commits

Author SHA1 Message Date
Florin Malita
be5e865433 [skottie] Lazily-initialized default font manager
Only initialize a default font manager when needed.

Change-Id: I3473804d426f1f4981f3727d3539303fb670cdd1
Reviewed-on: https://skia-review.googlesource.com/150840
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2018-08-31 18:07:47 +00:00
Ben Wagner
27140526ec Unomit passing tests for Radeon.
Bug: skia:7677 skia:7096
Change-Id: I59604a140f453ab415b0774a1f3b99efa2607de4
Reviewed-on: https://skia-review.googlesource.com/150620
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2018-08-31 17:43:27 +00:00
Ben Wagner
10085b7411 Remove GTX1070 and GTX1050 jobs.
After discussing with bsalomon, we think QuadroP400 gives us good enough
coverage for NVIDIA Pascal.

No-Try: true
Change-Id: If50a80d872ae9dc2c5987b3e31804a8e16325888
Reviewed-on: https://skia-review.googlesource.com/150908
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-08-31 17:37:17 +00:00
Brian Salomon
0235c648b7 Fix GrAAConvexTessellator colinear point removal.
We weren't checking whether the new point in lineTo was backtracking or not.

Also:
Replace distance-to-line check with triangle area check. The previous check
was asymmetric. Given point sequence (a, b, c) it might make a different
decision than when given (c, b, a).

Compute normals late since we don't use them to detect colinear edges
anymore.

Rename SkPointPriv::SetOrhog -> SkPointPriv::MakeOrthog and return
computed value rather than take SkPoint* dst.

Bug: chromium:869172


Change-Id: I8da53edf1a2e6098f4199da57368ebb644866e4c
Reviewed-on: https://skia-review.googlesource.com/150682
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-08-31 17:34:23 +00:00
Ben Wagner
d709a85751 [infra] Add rack dimension for QuadroP400 tasks.
See https://bugs.chromium.org/p/chromium/issues/detail?id=784662 for
more context. We need to distinguish between existing bots and the new
bots in order to have consistent performance measurements.

This is step 2 of 3:
1. Add rack:1 dimension to bots.cfg for current Skia QuadroP400 bots.
2. Add rack:1 dimension to our tasks to ensure they only run on the
   current bots.
3. Add build{330..335}-a9 to bots.cfg with rack:2 dimension.

Bug: chromium:784662
Change-Id: I1e5ff0aa0ebd69e00f4933ca50eef6cef520bc66
Reviewed-on: https://skia-review.googlesource.com/150911
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2018-08-31 17:32:16 +00:00
Ben Wagner
0473a3108b Unomit passing tests for Win Intel.
Bug: skia:6082 skia:6103 skia:6141
Change-Id: I28bc11cf9ea45dffa980c900934a5432383358ec
Reviewed-on: https://skia-review.googlesource.com/150145
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
2018-08-31 17:29:18 +00:00
recipe-roller
af44b73afa 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.
recipe_engine:
  https://crrev.com/f25fbdce1dc0976980f2b1f5120af828e9a68a34 Reland [buildbucket] Parse CL from legacy properties (nodir@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ibebe4e1150fc6d3a1ade472e1206a4abccd3b8a7
Reviewed-on: https://skia-review.googlesource.com/150910
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
2018-08-31 17:18:01 +00:00
Brian Osman
a51d1b45a3 Revert "Add support for gray + colorspace to SkCodec"
This reverts commit 8491dd80c8.

Reason for revert: BonusConfigs bot asserting on some color images.

Original change's description:
> Add support for gray + colorspace to SkCodec
> 
> In both PNG and JPEG, support passing Gray8 directly to skcms, and
> remove assertions about gray never having a color xform.
> 
> Remove SkImage_Lazy hacks to strip color spaces when decoding gray.
> 
> Change-Id: I64c7b480c51a2b0c839e7eb8ed3a5fdea5aa4e41
> Reviewed-on: https://skia-review.googlesource.com/150909
> Reviewed-by: Mike Klein <mtklein@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

TBR=mtklein@google.com,scroggo@google.com,brianosman@google.com

Change-Id: Iebdd4f60144380d4ef462225ff3cadb7b91eee84
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/150912
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-08-31 17:13:19 +00:00
skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com
9951cbf4ca Roll skia/third_party/skcms a6687f8b4d51..80e0493eab5f (1 commits)
https://skia.googlesource.com/skcms.git/+log/a6687f8b4d51..80e0493eab5f

2018-08-31 mtklein@google.com Clang added pragma attribute in 5.0


The AutoRoll server is located here: https://autoroll.skia.org/r/skcms-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
TBR=stephana@google.com

Change-Id: I937163750ced10a0408fd35038f86487bf5633d5
Reviewed-on: https://skia-review.googlesource.com/151008
Reviewed-by: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-31 17:06:46 +00:00
Mike Klein
15eb1e9402 update CPU feature macros in src/opts
Use macros from SkPreConfig.h where they exist and are appropriate.

Change-Id: If8e161ca2a105e75b76dfc75c75f91abfc5997ef
Reviewed-on: https://skia-review.googlesource.com/150963
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-08-31 17:02:24 +00:00
Khushal
cf33b1b1cf fonts: Cap the max number of entries in server side glyph cache tracking
The SkStrikeServer maintains a map of SkGlyphCacheState to track the
cache for a strike on the client. This entry is evicted only on a
failure to lock, which means that the map can potentially grow unbounded
if entries are not reused after eviction.

Make sure we check that they are deleted after some limit.

R=herb@google.com

Bug:878966
Change-Id: I4adb06c35661049328f6e0bde52fb1c774d0c29b
Reviewed-on: https://skia-review.googlesource.com/150443
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Khusal Sagar <khushalsagar@chromium.org>
2018-08-31 16:54:18 +00:00
Brian Osman
8491dd80c8 Add support for gray + colorspace to SkCodec
In both PNG and JPEG, support passing Gray8 directly to skcms, and
remove assertions about gray never having a color xform.

Remove SkImage_Lazy hacks to strip color spaces when decoding gray.

Change-Id: I64c7b480c51a2b0c839e7eb8ed3a5fdea5aa4e41
Reviewed-on: https://skia-review.googlesource.com/150909
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-08-31 16:52:19 +00:00
Herb Derby
8378dfb6a1 Extract SkGlyphRunListPainter from SkGlyphRun.*
Change-Id: I2c5275b6dd9cf2f83d4d99b73dd32dff487e659b
Reviewed-on: https://skia-review.googlesource.com/150660
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2018-08-31 16:36:38 +00:00
Mike Klein
83e86ebf3c Reland "standardize macro checks in SkRasterPipeline_opts"
This is a reland of 75d25c4c8f

Last time I screwed up by replacing defined(__AVX2__) with
defined(JUMPER_IS_HSW).  When __AVX2__ is defined, we'll
be using AVX2, _or better_.

This time around I think I've got it all straight
translating the old __FOO__ into the equivalent JUMPER_IS_FOO.

Last time I also missed a defined(__SSE__), which has been
translated into JUMPER_IS_FOOs now too.

Original change's description:
> standardize macro checks in SkRasterPipeline_opts
>
> We mostly check JUMPER_IS_FOO macros, but in a few places we are
> checking the raw __FOO__ compiler macros instead.  If only for clarity,
> switch to JUMPER_IS_FOO.
>
> This is also a step towards me being able to control the instruction
> set we choose without having to #define these protected __FOO__ macros.
>
> Change-Id: Ieea2090ff658399e27746e0bb8ce950b06f9efb8
> Reviewed-on: https://skia-review.googlesource.com/150961
> Commit-Queue: Brian Osman <brianosman@google.com>
> Auto-Submit: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

Change-Id: I656d89e3d3cd7fa23fd618c80e59908fd2b31329
Reviewed-on: https://skia-review.googlesource.com/150965
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-08-31 16:27:57 +00:00
Ethan Nicholas
545aa936f5 fixed uninitialized memory use in arithmetic effect
Bug: skia:
Change-Id: Ieb591db974d858566b35c1e61c1303051ed65f67
Reviewed-on: https://skia-review.googlesource.com/150907
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2018-08-31 16:01:32 +00:00
Brian Salomon
62db8d5779 Make GrSemaphore a GrGpuResource
This makes semaphores get handled correctly when GrContext is abandoned or
asked to free all its resources.

Change-Id: I0b935bb95cf99b9acf647472bcd0231bb2759db6
Reviewed-on: https://skia-review.googlesource.com/150364
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-08-31 15:36:55 +00:00
Mike Klein
4ff26113d8 Revert "standardize macro checks in SkRasterPipeline_opts"
This reverts commit 75d25c4c8f.

Reason for revert: subtly broken, going to give this a redo.

Original change's description:
> standardize macro checks in SkRasterPipeline_opts
> 
> We mostly check JUMPER_IS_FOO macros, but in a few places we are
> checking the raw __FOO__ compiler macros instead.  If only for clarity,
> switch to JUMPER_IS_FOO.
> 
> This is also a step towards me being able to control the instruction
> set we choose without having to #define these protected __FOO__ macros.
> 
> Change-Id: Ieea2090ff658399e27746e0bb8ce950b06f9efb8
> Reviewed-on: https://skia-review.googlesource.com/150961
> Commit-Queue: Brian Osman <brianosman@google.com>
> Auto-Submit: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

TBR=mtklein@google.com,brianosman@google.com

Change-Id: Ifbf5b6f51a29ad4e02e8ca311e449c13cc3ed19c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/150964
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-08-31 15:35:55 +00:00
skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com
d9212caf68 Roll skia/third_party/skcms 018002b16a8a..a6687f8b4d51 (1 commits)
https://skia.googlesource.com/skcms.git/+log/018002b16a8a..a6687f8b4d51

2018-08-31 mtklein@google.com use O(1) pragmas instead of O(N) attributes


The AutoRoll server is located here: https://autoroll.skia.org/r/skcms-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
TBR=stephana@google.com

Change-Id: Iaf7dedef53f9f5c345e27e76b180a332a9942f09
Reviewed-on: https://skia-review.googlesource.com/150948
Reviewed-by: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2018-08-31 15:29:14 +00:00
Michael Ludwig
a427559c13 Refactor 'in uniform' CPP code generation
Easily supports mapping ctypes to sksl types with templates that
specify how to send data to the GPU and how to track state changes.
The template logic and type mappings are defined in
SkSLCPPUniformCTypes.* while SkSLCPPCodeGenerator is updated to
utilize it.

It also updates the supported ctypes to properly generate code for
SkPoint, SkIPoint, SkIRect, and GrColor4f. The code generated for
'in uniforms' now also correctly supports conditional uniforms.


Bug: skia:
Change-Id: Ib7c0a873bdd68a966b6a00871f33102dfa2c432d
Reviewed-on: https://skia-review.googlesource.com/150129
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2018-08-31 15:19:58 +00:00
Florin Malita
ab706d85e0 [skottie] SkTArray begone
SkTArray is not a good choice for tigh allocations:

  - its minimum allocation count is 8
  - reserve(sz) doesn't adjust capacity to the exact value, but padds
    the same way as normal growth (max(sz, 8, 50%))
  - no shrink_to_fit() function to trim unneeded capacity

Since keyframed properties with a small number of frames are quite
common in Lottie, this adds significant heap overhead.

Switch to std::vector(), reserve() to the estimated frame count and
shrink_to_fit() when done parsing.

Bug: skia:8340

Change-Id: Id575e2da2fd17537948c2b38485a8accdb9f7a8b
Reviewed-on: https://skia-review.googlesource.com/150905
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2018-08-31 15:14:27 +00:00
Ben Wagner
a4cdfbb0d5 Move gbr-gl config from GTX1070 to QuadroP400.
Change-Id: Ifc0b0ad39d9a35625691b3fb12e6e6c65166d760
Reviewed-on: https://skia-review.googlesource.com/150903
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
2018-08-31 15:13:22 +00:00
Kevin Lubick
be5091c1fb [PathKit] Remove experimental- from package names
On the demo page, we use the skia-cdn bucket to hopefully
have better performance than unpkg.

Additionally, on the demo page, we default to using the
WASM version if supported by the browser.

Docs-Preview: https://skia.org/?cl=150904
Bug: skia:8216
Change-Id: I901016e95b8d66803053680691aac4d314821d18
Reviewed-on: https://skia-review.googlesource.com/150904
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2018-08-31 15:11:04 +00:00
Mike Klein
835b2f5769 update SkPreConfig a little
- add AVX-512 to SK_CPU_SSE_LEVEL
  - remove unused SK_ARM_ARCH
  - small formatting changes
  - no need to check for __ARM_NEON__ and __ARM_NEON...
    __ARM_NEON is defined anywhere we'll find NEON.

Change-Id: I6841097d62cf73ddb749f961261e583474470276
Reviewed-on: https://skia-review.googlesource.com/150960
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-08-31 15:09:19 +00:00
Mike Klein
75d25c4c8f standardize macro checks in SkRasterPipeline_opts
We mostly check JUMPER_IS_FOO macros, but in a few places we are
checking the raw __FOO__ compiler macros instead.  If only for clarity,
switch to JUMPER_IS_FOO.

This is also a step towards me being able to control the instruction
set we choose without having to #define these protected __FOO__ macros.

Change-Id: Ieea2090ff658399e27746e0bb8ce950b06f9efb8
Reviewed-on: https://skia-review.googlesource.com/150961
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-08-31 15:08:20 +00:00
Chris Dalton
02e6efe0a4 Revert "ccpr: Implement stroking with fine triangle strips"
This reverts commit 2f2757fa6b.

Reason for revert: issues with DDL

Original change's description:
> ccpr: Implement stroking with fine triangle strips
> 
> Implements strokes by linearizing the curve into fine triangle strips
> and interpolating a coverage ramp for edge AA. Each triangle in the
> strip emits either positive or negative coverage, depending on its
> winding direction. Joins and caps are drawn with the existing CCPR
> shaders for triangles and conics.
> 
> Conic strokes and non-rigid-body transforms are not yet supported.
> 
> Bug: skia:
> Change-Id: I45a819abd64e91c2b62e992587eb85c703e09e77
> Reviewed-on: https://skia-review.googlesource.com/148243
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Allan MacKinnon <allanmac@google.com>

TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,caryclark@google.com,csmartdalton@google.com,reed@google.com,allanmac@google.com

Change-Id: I1980b09976df8275817eaffb6766dbd9fd3e59c7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/150980
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-08-31 14:45:44 +00:00
recipe-roller
98f6e76ff7 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.
recipe_engine:
  https://crrev.com/9d1991d736085e87f7fbb35f1fb4a7f023060c82 Reland "[buildbucket] fill gitiles commit from legacy properties" (nodir@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I67028b5713e5b76756a4e573af1fff64980f2e36
Reviewed-on: https://skia-review.googlesource.com/150902
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
2018-08-31 14:38:59 +00:00
Kevin Lubick
c7d057103e [PathKit] Move from experimental to modules
Add in Code of Conduct and Contributing.md as well.

Docs-Preview: https://skia.org/?cl=150901
Bug: skia:8216
Change-Id: Ia881124f653617ad0b7b91f40ba21de2c13220a6
Reviewed-on: https://skia-review.googlesource.com/150901
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2018-08-31 14:18:16 +00:00
recipe-roller
cf0346834c 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.
recipe_engine:
  https://crrev.com/293be111ecf808c8fd2ba843100d204e5c33ba78 [buildbucket] Include child build tags in legacy tests (nodir@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I99df8d8b062f4eddd76c51f77fcb0ba19af6f506
Reviewed-on: https://skia-review.googlesource.com/150900
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
2018-08-31 14:08:22 +00:00
Greg Daniel
ecddbc0126 Add support for switching family queues in vulkan.
Bug: skia:
Change-Id: Ie4f620a96d1a6f7662819590d97073a694159f96
Reviewed-on: https://skia-review.googlesource.com/150483
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2018-08-31 13:25:22 +00:00
skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com
03a47063de Roll skia/third_party/skcms b116880ba8e8..018002b16a8a (1 commits)
https://skia.googlesource.com/skcms.git/+log/b116880ba8e8..018002b16a8a

2018-08-31 mtklein@google.com relax transform aliasing a bit


The AutoRoll server is located here: https://autoroll.skia.org/r/skcms-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
TBR=stephana@google.com

Change-Id: Ie5dbf74a0f80ffb1a470d9590c99d8b7dc6cc74c
Reviewed-on: https://skia-review.googlesource.com/150831
Commit-Queue: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Reviewed-by: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-31 13:17:30 +00:00
Mike Klein
351545a0c7 Revert "update SkPaint size sanity check"
This reverts commit cd72da268c.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> update SkPaint size sanity check
> 
> I counted twice... there are 7 pointers and 8 4-byte things.
> 
> Change-Id: I106a0f1c1bf9ee580e7b04afc763b2ec977fca3c
> Reviewed-on: https://skia-review.googlesource.com/150120
> Auto-Submit: Mike Klein <mtklein@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

TBR=mtklein@google.com,brianosman@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I579eab2f71bb1307c1e6c12da8678b787291411a
Reviewed-on: https://skia-review.googlesource.com/150845
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-08-31 13:08:47 +00:00
Chris Dalton
2f2757fa6b ccpr: Implement stroking with fine triangle strips
Implements strokes by linearizing the curve into fine triangle strips
and interpolating a coverage ramp for edge AA. Each triangle in the
strip emits either positive or negative coverage, depending on its
winding direction. Joins and caps are drawn with the existing CCPR
shaders for triangles and conics.

Conic strokes and non-rigid-body transforms are not yet supported.

Bug: skia:
Change-Id: I45a819abd64e91c2b62e992587eb85c703e09e77
Reviewed-on: https://skia-review.googlesource.com/148243
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Allan MacKinnon <allanmac@google.com>
2018-08-31 12:51:47 +00:00
skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com
628bc7713c Roll skia/third_party/skcms 5ac66b04c9e3..b116880ba8e8 (1 commits)
https://skia.googlesource.com/skcms.git/+log/5ac66b04c9e3..b116880ba8e8

2018-08-31 mtklein@google.com Get -Wreserved-id-macro clean


The AutoRoll server is located here: https://autoroll.skia.org/r/skcms-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
TBR=stephana@google.com

Change-Id: I50f828d8444a7c8cdcb97c57cbb4cc52158ed203
Reviewed-on: https://skia-review.googlesource.com/150826
Reviewed-by: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-31 12:48:27 +00:00
recipe-roller
6f0f1675d6 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.
recipe_engine:
  https://crrev.com/826c7b72a3a49aec40320edd994b899e94502715 Revert "[buildbucket] fill gitiles commit from legacy properties" (machenbach@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I72f2a16fc7f8ec641cfa3396c5893192654fc55d
Reviewed-on: https://skia-review.googlesource.com/150844
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
2018-08-31 12:44:41 +00:00
Robert Phillips
9407864ea9 Fix Fuchsia roll
It is dying with the error:

src/svg/SkSVGDevice.cpp:870:23: error: binding reference member 'fOrigin' to stack allocated parameter 'origin' [-Werror,-Wdangling-field]
            : fOrigin(origin)
                      ^~~~~~
src/svg/SkSVGDevice.cpp:941:21: note: reference member declared here
    const SkPoint&  fOrigin;

and was introduced in:

https://skia-review.googlesource.com/c/skia/+/150542 (Remove drawPosText from svg)

Change-Id: I7a2d1c2992100d0cfd2e50df6dd7195f62d053e6
Reviewed-on: https://skia-review.googlesource.com/150842
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-08-31 12:35:23 +00:00
recipe-roller
9b45afb254 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.
recipe_engine:
  https://crrev.com/b159b6a105fb08ac1bf1ab55d0d3537676d6226b Revert "[buildbucket] Parse CL from legacy properties" (machenbach@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I6d114bd7fe7840c439abdcf63750a4c86605d6e2
Reviewed-on: https://skia-review.googlesource.com/150841
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
2018-08-31 12:12:21 +00:00
angle-skia-autoroll
8ff2f13f38 Roll third_party/externals/angle2 1bf963b62929..fd1621076a74 (1 commits)
1bf963b629..fd1621076a


git log 1bf963b62929..fd1621076a74 --date=short --no-merges --format='%ad %ae %s'
2018-08-31 oetuaho@nvidia.com Support multisample arrays as framebuffer attachments


Created with:
  gclient setdep -r third_party/externals/angle2@fd1621076a74

The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=stephana@google.com

Change-Id: Iec35eb80a4ee372865b7211519ec8e529c5a7010
Reviewed-on: https://skia-review.googlesource.com/150801
Reviewed-by: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-31 12:10:16 +00:00
swiftshader-skia-autoroll
f8592a6942 Roll third_party/externals/swiftshader 62cfbb9c7876..5fb5e817a20d (1 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/62cfbb9c7876..5fb5e817a20d


git log 62cfbb9c7876..5fb5e817a20d --date=short --no-merges --format='%ad %ae %s'
2018-08-31 chrisforbes@google.com Consider context promotion when validating share context


Created with:
  gclient setdep -r third_party/externals/swiftshader@5fb5e817a20d

The AutoRoll server is located here: https://autoroll.skia.org/r/swiftshader-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
TBR=stephana@google.com

Change-Id: I3dbdc7ba088df466be318aa9a46131b77e7854c6
Reviewed-on: https://skia-review.googlesource.com/150800
Reviewed-by: swiftshader-skia-autoroll <swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: swiftshader-skia-autoroll <swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-31 02:18:50 +00:00
swiftshader-skia-autoroll
381efe7349 Roll third_party/externals/swiftshader 4bbff9eb88c1..62cfbb9c7876 (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/4bbff9eb88c1..62cfbb9c7876


git log 4bbff9eb88c1..62cfbb9c7876 --date=short --no-merges --format='%ad %ae %s'
2018-08-30 ghartman@google.com Resolve conflicts on Android.bp/.mk when building with O
2018-08-30 ghartman@google.com Allow SwiftShader to be moved to a non-default location


Created with:
  gclient setdep -r third_party/externals/swiftshader@62cfbb9c7876

The AutoRoll server is located here: https://autoroll.skia.org/r/swiftshader-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
TBR=stephana@google.com

Change-Id: I67caf4eb21e9f920ec2a46925f5434eee8ecd05b
Reviewed-on: https://skia-review.googlesource.com/150761
Reviewed-by: swiftshader-skia-autoroll <swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: swiftshader-skia-autoroll <swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-30 23:20:44 +00:00
angle-skia-autoroll
87bf8d2c58 Roll third_party/externals/angle2 44b2c0b1d349..1bf963b62929 (1 commits)
44b2c0b1d3..1bf963b629


git log 44b2c0b1d349..1bf963b62929 --date=short --no-merges --format='%ad %ae %s'
2018-08-30 tobine@google.com Clean up PlatformMethods attribute enum


Created with:
  gclient setdep -r third_party/externals/angle2@1bf963b62929

The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=stephana@google.com

Change-Id: I2fb504adb6930d701fafbc36c62bc9e22077f706
Reviewed-on: https://skia-review.googlesource.com/150760
Reviewed-by: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-30 23:08:53 +00:00
recipe-roller
bfefd5df26 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/f20c5a4a3c70dd116fb8b0177f2e20b1a7038446 [bot_update] Fix initialization from buildbucket (nodir@google.com)
recipe_engine:
  https://crrev.com/1a9239db3740a699a5b7ba732cd0be42b89548e0 [buildbucket] Parse CL from legacy properties (nodir@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I03c11c6d493038b27650755585e48d6a3f5db7e8
Reviewed-on: https://skia-review.googlesource.com/150683
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
2018-08-30 23:04:33 +00:00
recipe-roller
1c4bb306f5 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.
recipe_engine:
  https://crrev.com/8babfab3d9b041d23734ccfdd403beb070473f60 [buildbucket] fill gitiles commit from legacy properties (nodir@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I71abcdde78ef9fbf8628f3c1a811b52452045970
Reviewed-on: https://skia-review.googlesource.com/150681
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
2018-08-30 21:54:25 +00:00
skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com
5f0943f8d8 Roll skia/third_party/skcms 6b324dbdf772..5ac66b04c9e3 (1 commits)
https://skia.googlesource.com/skcms.git/+log/6b324dbdf772..5ac66b04c9e3

2018-08-30 mtklein@google.com remove PremulLinear


The AutoRoll server is located here: https://autoroll.skia.org/r/skcms-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
TBR=stephana@google.com

Change-Id: I99e55d77aac4cd5483d1922517b94dd887956f7e
Reviewed-on: https://skia-review.googlesource.com/150642
Commit-Queue: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Reviewed-by: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-30 21:54:24 +00:00
Mike Klein
ce086d36a4 Another manual ANGLE roll
This commit rebased the source paths in the .gni
file from ANGLE's src/ directory to its project root.

The update to third_party/angle2/BUILD.gn does the same.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE

Change-Id: Id814f67bed2dfab11f878544989054e38987a939
Reviewed-on: https://skia-review.googlesource.com/150485
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Stephan Altmueller <stephana@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Stephan Altmueller <stephana@google.com>
2018-08-30 21:31:47 +00:00
Ben Wagner
acb4b0f474 Detect when a FreeType glyph doesn't have a path.
It appears that the way to check a glyph doesn't have a path is to load
the glyph with the FT_LOAD_NO_BITMAP load flag and then check if the glyph
format is FT_GLYPH_FORMAT_BITMAP, meaning that no outline was available.

Change-Id: Ie19fc7005115f4c4f6072a7be0e93576f8db5877
Bug: skia:7878
Reviewed-on: https://skia-review.googlesource.com/150467
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2018-08-30 20:51:02 +00:00
Michael Ludwig
92e4c7fded Support input color argument to process() function in sksl .fp files
--

This expands sksl's capabilities with .fp files. Previously, it was possible to declare "in fragmentProcessor foo" and emit it automatically when "process(foo);" was called. This adds a variant of process that takes a second argument, which must be a half4 expression. This argument specifies the value, or dynamic expression calculated earlier in the parent shader, to use as sk_InColor by the child.

The CL is longer than anticipated because of properly handling dependencies between previous sksl statements and the input to the child. The original writeEmitCode() collected all extra emission code (the calls to build->emitChild) and put them before any call to codeAppendf. This makes it impossible to use a parent's variable, or the output of another child, as the input for process.

To solve this, there is now a flushEmittedCode() function that takes over the logic of outputting the extra emission code and the necessary codeAppendf calls. When invoked, it (by default) only appends completed sksl statements, and places any current expression back at the beginning of the output stream. It now updates fFormatArgs and fExtraEmitCodeCode as it consumes their contents. This allows writeFunctionCall() for a call to "process" to flush all previous statements before it adds its emit child code.

Bug: skia:
Change-Id: I63c41af6f3e0620aa890d10d14436ee6244f0051
Reviewed-on: https://skia-review.googlesource.com/148395
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2018-08-30 20:51:01 +00:00
Michael Ludwig
10c3776b44 Remove GrTextureStripAtlas, textured gradients use independent textures
The texture strip atlas code path has been disabled without performance
regressions since 8/3/18, so this deletes it completely from the code
base since it is complex and difficult to manage.

GrTextureStripAtlas, GrDynamicTextureStripAtlas, and
GrDDLTextureStripAtlas completely deleted, everything else is cleaning
up references/dead code using the atlas.

Bug: skia:
Change-Id: Ieb967b6e291a1d76da62fce9fa384acbda8c51c0
Reviewed-on: https://skia-review.googlesource.com/150472
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-08-30 20:43:30 +00:00
swiftshader-skia-autoroll
6c203e8316 Roll third_party/externals/swiftshader 60f8662dc0ef..4bbff9eb88c1 (1 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/60f8662dc0ef..4bbff9eb88c1


git log 60f8662dc0ef..4bbff9eb88c1 --date=short --no-merges --format='%ad %ae %s'
2018-08-30 sugoi@google.com Checking in Vulkan headers


Created with:
  gclient setdep -r third_party/externals/swiftshader@4bbff9eb88c1

The AutoRoll server is located here: https://autoroll.skia.org/r/swiftshader-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
TBR=stephana@google.com

Change-Id: I1eeb4e67ccde5ee450163dde3f98cd5de4872e33
Reviewed-on: https://skia-review.googlesource.com/150611
Reviewed-by: swiftshader-skia-autoroll <swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: swiftshader-skia-autoroll <swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
2018-08-30 20:38:17 +00:00
Herb Derby
7edaa73a12 Remove drawPosText from SkDevice
Change-Id: I1ca6d5222499e295485a5b7773fa3957410803eb
Reviewed-on: https://skia-review.googlesource.com/150543
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2018-08-30 20:21:58 +00:00
Herb Derby
8e318fda76 Reland "Check that mask to path fallback happens"
This is a reland of 9f85b5116e

Original change's description:
> Check that mask to path fallback happens
> 
> BUG=chromium:876767
> 
> Change-Id: I6aadf329af836a1e03aa85b34a58830be00ff750
> Reviewed-on: https://skia-review.googlesource.com/150135
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Khusal Sagar <khushalsagar@chromium.org>

Bug: chromium:876767
Change-Id: I3fdf17ef3bd9c3f8b0e19d017f14114f3675dc12
Reviewed-on: https://skia-review.googlesource.com/150544
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-08-30 19:34:13 +00:00