Commit Graph

44593 Commits

Author SHA1 Message Date
Mike Klein
97afd2e21c add bsl.16b, cmeq.4s, cmgt.4s
These implement select, eq_i32, lt_i32, and gt_i32 on ARMv8.

Change-Id: Ic36dda1cc425ca91700f9b120594e420ea0f560a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248970
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-17 01:54:33 +00:00
Herb Derby
f29cb70281 Revert "Introduce SkGlyphSourceBuffer"
This reverts commit 77c53087c1.

Reason for revert: Breaks some windows builds

Original change's description:
> Introduce SkGlyphSourceBuffer
> 
> SkGlyphSourceBuffer provides a system for taking rejected glyphs from
> one glyph drawing stage, and turns them into the source for the next stage.
> It is rarely used, so it tries to conserve memory.
> 
> Change-Id: I5275ffa3e804fc494eb2f5803e0cf2d148a755f7
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248260
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

TBR=bungeman@google.com,herb@google.com

Change-Id: I4270d092f8daba3dddcadd6abbed10f14bf57490
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249077
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-10-16 21:28:35 +00:00
Robert Phillips
1dfc77cc08 Add unit test to exercise GrTextureFreed message handling after a context abandon
Bug: 1011368, 1014993
Change-Id: Ie9f7be15b321daa05fcac8109a24e42810f10737
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249008
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-16 21:11:12 +00:00
Herbert Derby
77c53087c1 Introduce SkGlyphSourceBuffer
SkGlyphSourceBuffer provides a system for taking rejected glyphs from
one glyph drawing stage, and turns them into the source for the next stage.
It is rarely used, so it tries to conserve memory.

Change-Id: I5275ffa3e804fc494eb2f5803e0cf2d148a755f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248260
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-10-16 20:55:32 +00:00
Robert Phillips
ddc21485cb Work around un-safe downcast in PromiseLazyInstantiateCallback destructor after a context abandon
90% of this CL is just renaming. The only two substantive changes are:
   holding a GrTexture* (rather than a GrGpuResource*) in the GrTextureFreedMessage (this avoids the downcast)
   adding the abandoned() checks to the two GrContext::purgeUnlockedResources methods (this prevents accesses of the message queue)

Bug: 1011368, 1014993
Change-Id: Ifff3842f7802add6b7cd34595578369543698ba1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249001
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-16 19:24:03 +00:00
Mike Klein
5d835d0e98 remove ternary min/max
It's just syntax sugar, and it's
too easy to typo max() -> mad().

Change-Id: Idd0088292c68547d45c274e80ee8735f698d0c36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248963
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>
2019-10-16 19:00:16 +00:00
Hal Canary
e054d3cf3d CanvasKit: Switch to WebGL 2.0
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit,Test-Debian9-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit

Bug: skia:9052
Change-Id: I444031276aea90d82f289b16ba6cd36de5192abd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248927
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-10-16 18:45:46 +00:00
Brian Osman
11e6aa823d Starting to hack up HDR transfer function support
Brings over skcms' encoding scheme, etc.

Change-Id: Ib8abec911acd1c50df3b201b4a9bde01b1cb123b
Bug: chromium:960620
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249000
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-10-16 18:40:16 +00:00
Mike Klein
0f61c12737 add used_in_loop bit to skvm::Builder::Instruction
Most hoisted values are used in the loop body (and that's really the
whole point of hoisting) but some are just temporaries to help produce
other hoisted values.  This used_in_loop bit helps us distinguish the
two, and lets us recycle registers holding temporary hoisted values not
used in the loop.

The can-we-recycle logic now becomes:
   - is this a real value?
   - is it time for it to die?
   - is it either not hoisted or a hoisted temporary?

The set-death-to-infinity approach for hoisted values is now gone.  That
worked great for hoisted values used inside the loop, but was too
conservative for hoisted temporaries.  This lifetime extension was
preventing us from recycling those registers, pinning enough registers
that we run out and fail to JIT.

Small amounts of refactoring to make this clearer:
   - move the Instruction hash function definition near its operator==
   - rename the two "hoist" variables to "can_hoist" for Instructions
     and "try_hoisting" for the JIT approach
   - add ↟ to mark hoisted temporaries, _really_ hoisted values.

There's some redundancy here between tracking the can_hoist bit, the
used_in_loop bit, and lifetime tracking.  I think it should be true, for
instance, that !can_hoist && !used_in_loop implies an instruction is
dead code.  I plan to continue refactoring lifetime analysis (in
particular reordering instructions to decrease register pressure) so
hopefully by the time I'm done that metadata will shake out a little
crisper.

Change-Id: I6460ca96d1cbec0315bed3c9a0774cd88ab5be26
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248986
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-16 18:29:06 +00:00
Hal Canary
04b06774be [minor] SkGlyphRunList public before private
Change-Id: I7e82ff246ebab3e28c7400f5e09a0213dfffdbb0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248998
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-10-16 17:44:06 +00:00
Mike Klein
b5a30767e0 Reland "mark which SkVM tests should JIT or not"
This is a reland of 52435503e9

with better checks for when we should expect JIT and not.

Original change's description:
> mark which SkVM tests should JIT or not
>
> Most of these tests converted over to test_interpreter_only()
> are failing to JIT because of unimplemented instructions.  No
> bug there, just TODOs.
>
> But SkVM_hoist _should_ be JITting.  A while back I landed a CL
> that messed with value lifetimes that prevents it from JITting.
> Will be using this as a regression test to fix that bug.
>
> Change-Id: Id2034f6548a45ed9aeb9ae3cbb24d389cad7dc60
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248980
> Commit-Queue: Mike Klein <mtklein@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: Mike Klein <mtklein@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Herb Derby <herb@google.com>

Cq-Include-Trybots: skia.primary:Test-Android-Clang-NVIDIA_Shield-CPU-TegraX1-arm64-Release-All-Android,Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE2,Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE41,Test-Mac10.13-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts,Test-Mac10.14-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts
Change-Id: Id7bde7e879649e435fa424a9c9d6c51a31afd5e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248990
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-16 17:35:06 +00:00
Mike Klein
4e11526e3d Revert "mark which SkVM tests should JIT or not"
This reverts commit 52435503e9.

Reason for revert: lots of bots can't JIT, duh...

Original change's description:
> mark which SkVM tests should JIT or not
> 
> Most of these tests converted over to test_interpreter_only()
> are failing to JIT because of unimplemented instructions.  No
> bug there, just TODOs.
> 
> But SkVM_hoist _should_ be JITting.  A while back I landed a CL
> that messed with value lifetimes that prevents it from JITting.
> Will be using this as a regression test to fix that bug.
> 
> Change-Id: Id2034f6548a45ed9aeb9ae3cbb24d389cad7dc60
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248980
> Commit-Queue: Mike Klein <mtklein@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: Mike Klein <mtklein@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Herb Derby <herb@google.com>

TBR=mtklein@google.com,herb@google.com,ethannicholas@google.com

Change-Id: Ieea4b06f0d32249e3da56c6810d3c45c2abf2689
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248989
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-16 16:48:58 +00:00
Nathaniel Nifong
60c37e7ba1 Enable SKSL in skia_nanobench, enforce resources being present.
Don't include SKSL interpreter bench when interpreter is disabled.

Bug: b/141263986 b/141871494
Change-Id: Ie9a5f3f28b28af077f7279da0d20bfafb41bd6cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247054
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Pirama Arumuga Nainar <pirama@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2019-10-16 16:34:36 +00:00
Greg Daniel
2fca87d9b1 Switch GrFillInData to use GrColorType instead of GrPixelConfig.
Bug: skia:6718
Change-Id: Ic705a102bf1d84a800a856c9b1cfd614cf461500
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248997
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-10-16 15:45:36 +00:00
Mike Klein
52435503e9 mark which SkVM tests should JIT or not
Most of these tests converted over to test_interpreter_only()
are failing to JIT because of unimplemented instructions.  No
bug there, just TODOs.

But SkVM_hoist _should_ be JITting.  A while back I landed a CL
that messed with value lifetimes that prevents it from JITting.
Will be using this as a regression test to fix that bug.

Change-Id: Id2034f6548a45ed9aeb9ae3cbb24d389cad7dc60
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248980
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-16 15:45:16 +00:00
Mike Klein
91c1a231d4 add a TODO about lifetimes and hoisting
The logic for extending the lifetimes of hoisted values is yet again not
quite right.  We do need to track the proper lifetime of these values,
and only extend them to infinity if we actually hoist them.  The JIT
has a no-hoist fallback plan for JITting when under register pressure,
but we're actually undermining that by treating these values as eternal
today, burning those registers where they should be recycled.

So I think the answer to this is either,
   1) add a used_in_loop bit, and treat as eternal only if hoist && used_in_loop
   2) track two death points, one when hoisted, one when not

I think the first is cleaner, and maybe easier too.

Change-Id: I09704ecaf12896d242850c2e827b19e31fb1dd70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/242591
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-10-16 15:37:38 +00:00
Brian Osman
5b43113e75 Interpreter: Reflect all uniform variables in ByteCode
Gives enough information to locate variables by name (using the same
scheme as glGetUniformLocation), and provide hints about type and size.

Bug: skia:9513
Change-Id: I9444f1042471967a79c9f05167dcdb78eca41bad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244502
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-16 15:35:48 +00:00
Stephen White
36446f281c Reformat BUILD files.
Change-Id: Iee2f376f7270200b5732726e9c6a3015b0cd4139
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248928
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2019-10-16 14:52:47 +00:00
Stephen White
1e2adcf428 Roll Dawn to ToT.
This requires some changes to dawnSetProcs() and some build file changes.

Change-Id: I8a643ec0690857d53db7c1f8f5223077e30f69e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248860
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-16 14:19:14 +00:00
Robert Phillips
29f3854d4e Start disentangling tessellation from pipeline creation in GrTextureOp
The idea/dream here is to be able to (optionally) tessellate in onPrePrepareDraws and then just copy the prePrepared data into the vertex buffer.

Change -Id: I899eebce36dc9516bfc4b0fce5e657458167c772

Change-Id: I899eebce36dc9516bfc4b0fce5e657458167c772
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248804
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-16 14:13:14 +00:00
Hal Canary
ebc89c1a7d canvaskit: add helpful message to compile.sh
Change-Id: I48a48c8d2f3853fd948cadfc7cc93f41d72e2ea2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248800
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-10-16 13:47:14 +00:00
Florin Malita
59e72b71b5 [skottie] Luma matte support
Expand matte support to include normal/inverted luma modes [1].

[1] https://helpx.adobe.com/after-effects/using/alpha-channels-masks-mattes.html#track_mattes_and_traveling_mattes

TBR=
Bug: skia:9390
Change-Id: Ie6555852e70449e4343944c70d2f9b8a98bb33cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248701
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-10-16 13:17:51 +00:00
Chris Dalton
083a75d676 Revert "Reland "ccpr: Unblacklist Qualcomm with msaa""
This reverts commit 7efe9e82a5.

Reason for revert: Pixel crash repro identified

Original change's description:
> Reland "ccpr: Unblacklist Qualcomm with msaa"
> 
> This is a reland of 3f55695a04
> 
> Original change's description:
> > ccpr: Unblacklist Qualcomm with msaa
> > 
> > Bug: skia:
> > Change-Id: I1ab69fe87136955b01a329675f1d0affec3700ec
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245530
> > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> 
> Bug: skia:
> Change-Id: Icbd0ad7546bc089c538afafed515b22b05130e47
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248702
> Reviewed-by: Ravi Mistry <rmistry@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=bsalomon@google.com,rmistry@google.com,csmartdalton@google.com

Change-Id: I0e8df5691a787aa8dade7c6386078c5ead746f6d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248911
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-16 08:19:34 +00:00
skia-autoroll
7274850f96 Roll third_party/externals/angle2 2d0e5b554d4f..0b9ebe58e380 (2 commits)
2d0e5b554d..0b9ebe58e3

git log 2d0e5b554d4f..0b9ebe58e380 --date=short --no-merges --format='%ad %ae %s'
2019-10-15 jmadill@chromium.org Vulkan: Add "ImageViewHelper".
2019-10-15 lsalzman@mozilla.com Use image upload workaround for Intel Ivy Bridge with D3D11 renderer.

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

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC csmartdalton@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=csmartdalton@google.com
Change-Id: I14bfd6949fe01f6b97fcb7bb6dbbcae9df9d94a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248898
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-16 05:52:50 +00:00
skia-autoroll
6ec3eaef79 Roll ../src 083c52f74ac2..fbf280c2d283 (475 commits)
083c52f74a..fbf280c2d2


Created with:
  gclient setdep -r ../src@fbf280c2d2

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC csmartdalton@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Bug: None
TBR=csmartdalton@google.com
Change-Id: I35e12bc8b9a9db411ac195fe3d33428981e34467
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248900
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-16 04:36:50 +00:00
skia-autoroll
2b3a883db5 Roll third_party/externals/swiftshader a27dfcf868bf..9097eeb5359b (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/a27dfcf868bf..9097eeb5359b

git log a27dfcf868bf..9097eeb5359b --date=short --no-merges --format='%ad %ae %s'
2019-10-16 sugoi@google.com Workaround a compiler issue
2019-10-16 swiftshader.regress@gmail.com Regres: Update test lists @ a27dfcf8

Created with:
  gclient setdep -r third_party/externals/swiftshader@9097eeb5359b

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC csmartdalton@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
TBR=csmartdalton@google.com
Change-Id: I20ff1bd0d8f70890f8214ac9674bcfaa81d5a3ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248899
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-16 04:35:10 +00:00
Lee Salzman
634d15032d fix SkTextBlob::getIntercepts regression no longer considering glyph vertical offset
As of revision 7924d9a4ae (https://skia-review.googlesource.com/c/skia/+/222277), SkTextBlob::getIntercepts no longer considers each glyph's vertical offset. So getIntercepts will only work properly if each glyph has a vertical offset of 0. This patch restores the original behavior of offsetting the bounds from each glyph's position.

Without this fix, Firefox has no way to implement proper intercepts for underlining decorations when glyphs are offset...

Change-Id: I06fc4b63bd57c9d70e3b07a95ead69f3caa8b33a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248724
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Lee Salzman <lsalzman@mozilla.com>
2019-10-16 00:02:08 +00:00
Stephen White
20c626aa23 Update Dawn backend to ToT. This is about 3 months of changes.
Remove optional param to SetIndexBuffer().
Update SetVertexBuffers -> SetVertexBuffer.
PipelineStageDescriptor -> ProgrammableStageDescriptor.
Update past generator changes, ring buffer changes, etc.
Add ErrorScopeTracker.cpp/.h to the build.
Add Vulkan MemoryResourceAllocator files.
Fix vertexShader ShaderStageDescriptor.
Fix spirv-cross include path.
TextureUsageBit -> TextureUsage, etc.
DawnErrorCallback fixes.
Removal of texture.CreateDefaultView.
Fix GL supported_extesions mumbo jumbo.
Update past ChromeOS change.
Add PassResourceUsageTracker.cpp/.h to build.
Add GLFormat.cpp/.h to build.
Add Extensions and Toggles to the build.
Add EncodingContext, AttachmentState to build.
Add RenderEncoderBase to Dawn build.
gn format dawn BUILD.gn, spirv-cross BUILD.gn.

Change-Id: I26538d63c93668647048814aad6ad456ae323679
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248261
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2019-10-15 22:26:38 +00:00
Greg Daniel
ba8752f37d Remove use of GrColorType as in param in SimpleTextureEffect.fp to just constructor param.
This should also fix a bug in the check generated file housekeeper bot.

Change-Id: I70eeb1f8783c760fcba1e81ea79b2734cae54b25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248856
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-10-15 21:28:53 +00:00
Jim Van Verth
b7c5bac9da Remove some more MoltenVK support
Change-Id: I511f15f056e15beddeaaf203414a1519569bfbe4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248815
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-15 20:44:17 +00:00
skia-autoroll
c7a4e7751b Roll skia/third_party/skcms 8c5dee1e7fe2..8e28e18b5c9e (1 commits)
https://skia.googlesource.com/skcms.git/+log/8c5dee1e7fe2..8e28e18b5c9e

git log 8c5dee1e7fe2..8e28e18b5c9e --date=short --no-merges --format='%ad %ae %s'
2019-10-15 mtklein@google.com check we've fit an sRGB-ish TF

Created with:
  gclient setdep -r skia/third_party/skcms@8e28e18b5c9e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC csmartdalton@google.com,mtklein@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux-blink-rel

Bug: None
Change-Id: Ibd1304ec2e3356ee2881f8f7472a466a3b45adc0
TBR=csmartdalton@google.com,mtklein@google.com
TBR=csmartdalton@google.com,mtklein@google.com
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248840
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-15 20:18:27 +00:00
Chris Dalton
7efe9e82a5 Reland "ccpr: Unblacklist Qualcomm with msaa"
This is a reland of 3f55695a04

Original change's description:
> ccpr: Unblacklist Qualcomm with msaa
> 
> Bug: skia:
> Change-Id: I1ab69fe87136955b01a329675f1d0affec3700ec
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245530
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

Bug: skia:
Change-Id: Icbd0ad7546bc089c538afafed515b22b05130e47
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248702
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-15 20:15:37 +00:00
Greg Daniel
836080f43f Remove some unneeded colortype format validation checks in ProxyProvider.
These checks are no longer needed as we have enough checks in other parts
of the code now. Additionally we want to remove any GrColorType and format
compatibility checks in proxy provider since proxies will not have knowledge
of color types in the future.

This also lets us get ride of some used of GrPixelConfig.

Change-Id: Ice835cba69ff783fd7e7d9b57321882b1e50093a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248803
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-10-15 19:29:17 +00:00
Chris Dalton
b50cc81a3c Reland "Use GL_QCOM_TILED_RENDERING to explicitly discard stencil"
This is a reland of 7e6d3b00ad

Original change's description:
> Use GL_QCOM_TILED_RENDERING to explicitly discard stencil
> 
> Bug: skia:
> Change-Id: I7a6234f6a9955dbda83ab2d8fc6930fe680e102b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245529
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

Bug: skia:
Change-Id: Ifb2ac1a595be0ca55d75d53d85bf76f7d98e1c15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246282
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-10-15 19:23:48 +00:00
Greg Daniel
c594e62698 Plumb GrColorType through all ops/processors that sample textures.
This change also allows for the remove of GrPixelConfigIsOpaque function.

Bug: skia:6718
Change-Id: I7e7b70f02d911eda67640d648fb6348091e0f55d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248698
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-10-15 18:34:37 +00:00
Brian Osman
4beafa69ab Add interactive demo to particle gallery
Docs-Preview: https://skia.org/?cl=248805
Bug: skia:9513
Change-Id: Id862ebdc58c2cde38720e26f0140e20c5338c78c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248805
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-15 18:15:47 +00:00
Mike Klein
fb6a1abe45 try un-teaching TSAN about Mac semaphores
Now using dispatch_semaphore_t, maybe it already knows?

Change-Id: I65499ceaee195293541a37704ae424bbee7c8740
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248456
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-10-15 16:35:04 +00:00
Brian Osman
df18296f98 Add accessors to get/set SkParticleEffect fields
Simplify burst handling. Scripts should just add to burst (if
they want to handle programmatic bursting, as well).

Update most effects to handle dynamic updates to position better,
and add a sample effect meant to be used with mouse tracking.

Change-Id: Ia302e1d04e62e2b07974807c44067786cc10a8ad
Bug: skia:9513
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248798
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-10-15 14:54:50 +00:00
Robert Phillips
f22c57ddcc Centralize GrSamplerState key creation
This also changes how the Metal backend computes its key (removing the # of mipMap levels) and removes the use of the # of mipMap levels when setting up the MTLSamplerDescriptor

Change-Id: I29fedc7c7a12773f3efeea824bca98cbcde98be8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248565
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-15 12:54:40 +00:00
skia-autoroll
55f9cba6e2 Roll third_party/externals/angle2 fede5cb664d9..2d0e5b554d4f (4 commits)
fede5cb664..2d0e5b554d

git log fede5cb664d9..2d0e5b554d4f --date=short --no-merges --format='%ad %ae %s'
2019-10-15 mihu@microsoft.com GL_EXT_multisampled_render_to_texture extension. Part 2.
2019-10-15 jdarpinian@chromium.org Fix registry_xml.py dependency
2019-10-14 jmadill@chromium.org Metal: Use -weak_framework to support OS 10.10.
2019-10-14 bsheedy@chromium.org Add .yapfignore file

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

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC csmartdalton@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=csmartdalton@google.com
Change-Id: I6c9e0cb23a6445be884be46e6daf139f087cac37
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248731
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-15 05:50:25 +00:00
skia-autoroll
cad981d4aa Roll third_party/externals/swiftshader 1c462ebc904c..a27dfcf868bf (3 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/1c462ebc904c..a27dfcf868bf

git log 1c462ebc904c..a27dfcf868bf --date=short --no-merges --format='%ad %ae %s'
2019-10-14 digit@google.com Fix Linux build.
2019-10-14 digit@google.com [vulkan] Implement Linux-based external semaphore
2019-10-14 digit@google.com [linux]: Remove linux namespace.

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

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC csmartdalton@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
TBR=csmartdalton@google.com
Change-Id: I63aad6ded03d8133addc83119f1b79d47faebc1a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248732
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-15 04:37:15 +00:00
skia-autoroll
ee61d3d5a3 Roll ../src e034419fbc6a..083c52f74ac2 (362 commits)
e034419fbc..083c52f74a


Created with:
  gclient setdep -r ../src@083c52f74a

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC csmartdalton@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Bug: None
TBR=csmartdalton@google.com
Change-Id: I71f3b378b1c55018e3c090996124e13bb39c9344
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248733
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-15 04:33:05 +00:00
Chris Dalton
858cf233ef Call setNeedsStencil() when clearing stencil
Bug: chromium:1008312
Change-Id: I6e1d160515c6689ac6d62c40e712df287d47f955
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248723
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-14 23:51:51 +00:00
Robert Phillips
7d7aaf46ae Slim down GrFragmentProcessor::TextureSampler and GrPrimitiveProcessor::TextureSampler
I'm gearing up to add a GrBackendFormat to GrPrimitiveProcessor::TextureSampler so this CL just reduces the API surface area I'll need to alter.

The GrFragmentProcess::TextureSampler changes just keep it aligned with its "twin".

Change-Id: Ia9ece03ca76b4f6c8ebdaf0e0ba0061ecde6c5f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248558
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-14 19:48:19 +00:00
Joe Gregorio
4cb778e367 Fix usage of depot_tools in containers.
depot_tools w/vpython now seems to require the depot_tools dir
to be on PATH, and also python and curl need to be installed.

  * Creates a new base image that has all the build tools we need for
building Skia: skia-build-tools.
  * Moves skia-release to use that new base image.
  * Moves both the skia-release and wasm builds to use fetch and gclient sync.
  * Changes gcr.io/skia-public/emsdk-base:prod to depend on skia-build-tools.


Bug: skia:993053
Change-Id: Ib6218d8c18dd59d43de84dcf063f204cfc8556d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248556
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2019-10-14 19:38:40 +00:00
Jim Van Verth
c910602376 Reland "Minimal iOS app: Perform present subsequent to flush"
This is a reland of 4e385e21a4

Original change's description:
> Minimal iOS app: Perform present subsequent to flush
> 
> Currently the backbuffer present is not on the same MTLCommandQueue
> as the flush from Skia, which probably means that it's happening
> concurrently. This can overwhelm the GPU. This CL submits the present
> to the same queue as the flush.
> 
> Change-Id: Ibaf805553931c9dc46368b362a2391425ae3e60e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248557
> Reviewed-by: Hal Canary <halcanary@skia.org>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

Change-Id: I118047630b8936838d5da8ef4307ad5c5e8d2ade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248562
Reviewed-by: Hal Canary <halcanary@skia.org>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-14 18:32:37 +00:00
Ben Wagner
63acfe3dd6 [infra] Retry failed pushes in Android flavor
It seems like we see quite a few "force quarantined" bots when pushing
resources to the device fails. Rewrite copy_directory_contents_to_device
to use the _adb method, which automatically retries.

Change-Id: Iae36f8e42e85a58fdddc8c9dc80e693a371fab8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248560
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2019-10-14 18:14:07 +00:00
Mike Klein
33c36e05c3 insist SkPngEncoder's input is initialized
I'd rather catch uninitialized input here than
somewhere deep down in zlib or libpng.

Bug: chromium:1013368
Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN
Change-Id: I37f5a66a8fc12c7e0ce6d3100de94021bb5343ef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248551
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-14 18:13:37 +00:00
Stephen White
729c78d617 Dawn backend: update to Skia API changes.
Update to GrProgramInfo change.
Implement GrCaps::bytesPerPixel().

Change-Id: Ic695fe85f2cd1389918724d17368df60f88ee2db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247796
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-14 17:28:04 +00:00
skia-autoroll
f6d5064f86 Roll skia/third_party/skcms e9158fd9e492..8c5dee1e7fe2 (4 commits)
https://skia.googlesource.com/skcms.git/+log/e9158fd9e492..8c5dee1e7fe2

git log e9158fd9e492..8c5dee1e7fe2 --date=short --no-merges --format='%ad %ae %s'
2019-10-14 mtklein@google.com flip R,G,a for HLG
2019-10-14 mtklein@google.com retract the HLG/PQ APIs a bit
2019-10-14 mtklein@google.com support PQ/HLG in skcms_Transform()
2019-10-14 mtklein@google.com skcms_TransferFunction_invert() for PQ/HLG

Created with:
  gclient setdep -r skia/third_party/skcms@8c5dee1e7fe2

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC csmartdalton@google.com,mtklein@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux-blink-rel

Bug: None
Change-Id: Iec91cf4c7be050d38ca82eb5187a322a59217095
TBR=csmartdalton@google.com,mtklein@google.com
TBR=csmartdalton@google.com,mtklein@google.com
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248554
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-14 17:21:33 +00:00