Commit Graph

42357 Commits

Author SHA1 Message Date
recipe-roller
d9a6511024 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/d05ca1537ccd7abb2e753b2e109567e18f0df4b7 Invert ios_internal fetch spec. (jbudorick@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I4eca8a99fedac79f2230f960650adc9627756198
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220744
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-06-13 18:24:34 +00:00
Mike Klein
821f5e8dfe remove mul_unorm8/mad_unorm8
I just kind of remembered that if we're doing (xy+x)/256
and x is a destination channel and y is 255-sa, then you
can get the +x for free by multiplying by 256-sa instead.

  (d * (255-sa) + d)
  (d * (255-sa + 1))
  (d * (256-sa)    )

Duh.  This is a trick we play in a lot of legacy code and
I've just now realized it's exactly equivalent to the trick
I want to play here... sigh.

Folding this math in kind of makes mul/mad_unorm8 moot.

Speed's getting good:

  I32_SWAR: 0.3  ns/px
  I32     : 0.55 ns/px
  F32     : 0.8  ns/px
  RP      : 0.8  ns/px
  Opts    : 0.2  ns/px

Change-Id: I4d10db51ea80a3258c36e97b6b334ad253804613
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220708
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-13 18:21:44 +00:00
Herb Derby
ed8d13089d Revert "[skottie] Use metrics for Shaper vertical alignment"
This reverts commit 084fa1b52f.

Reason for revert: Breaks google3 roller

Original change's description:
> [skottie] Use metrics for Shaper vertical alignment
> 
> Relying on visual bounds yields incorrect results in some cases (e.g.
> leading/trailing empty lines).
> 
> Update the vertical alignment logic to use metrics instead:
> 
>   - track the first line ascent and last line descent
>   - compute content height as
> 
>       first_ascent + last_descent + line_height * (line_count - 1)
> 
>   - relocate Result::computeBounds() to the unit test (only user)
> 
> Empirically, this causes top-alignment to be less snug (likely due to
> ascent slack in the tested fonts).
> 
> Bug: skia:9098
> Change-Id: Ib92bf907af8889d6b0d0fda22ef41a2cc8b50901
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220656
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>

TBR=bungeman@google.com,fmalita@chromium.org,reed@google.com

Change-Id: I2da2bf9b3bc4a2f333c0fbbd5a88434ef7ea65d5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9098
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220746
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-06-13 18:02:01 +00:00
recipe-roller
874bcf425b 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/a74bd78e9ccd242af225629c3a105e209f5bf400 Make it clear that compile_single_file.py doesn't support Jumbo builds (sebmarchand@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ib1aa978f0bc027023f99d27332f31a34f40a9004
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220742
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-06-13 17:52:50 +00:00
Brian Osman
ef787f79e5 Remove static initializers to make Chrome happy
Change-Id: I86374ad15433675626f477243a9c66177eb0e21a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220740
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-06-13 17:39:30 +00:00
Mike Klein
5640397c48 fix dst/arg aliasing issues
Any time we implement a Program::Instruction with multiple low-level
operations, we risk overwriting any arguments that alias the
destination.

This is why the _I32 tests are failing, mad_unorm8 where d == x.  We
want (x*y+x)/256+z, but end up calculating (x*y+x*y)/256+z when x == d.

We could fix this by never allowing any arguments to alias any
destinations, but most instructions don't have this problem, and doing
that blindly would bloat the register count significantly.

We could fix this by knowing which Ops may be prone to aliasing in any
backend, but I find that somewhat error prone and also a little
abstraction- level-violatey.  I would have thought, for instance, that
the mad_f32 Op might be vulnerable here, but it's actually not... in any
situation where there is aliasing, we actually lower it to a single
vfmadd instruction, never mul-then-add.

This sort of aliasing issue is going to keep coming back up again and
again, especially with 2-argument architectures like SSE.  Luckily it's
trivially easy to fix by reserving a single tmp register to use as the
result of all but the final instructions.

The interpreter is safe because all its switch cases are single r(d) =
... statements.  The right hand sides are evaluated before anything is
written back to a destination register slot.  Had it been written a
little differently, it could have easily had this same aliasing issue.

Change-Id: I996392ef6af48268238ecae4a97d3bf3b4fba002
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220600
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-13 16:53:29 +00:00
Robert Phillips
f83c4684a6 Revert "Add Ganesh support for RGBA_16161616 and RG_half"
This reverts commit 156622513f.

Reason for revert: valgrind

Original change's description:
> Add Ganesh support for RGBA_16161616 and RG_half
> 
> Change-Id: Ia424ff719c5fb8d1842a909ade09ad6f5f78f21f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219998
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=egdaniel@google.com,robertphillips@google.com

Change-Id: I7a8e99e70f575fb301ce289d9a04ebbec25b934b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220739
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-06-13 16:49:31 +00:00
Brian Osman
569f12f0e5 Interpreter: Vectorized interpreter
This converts the SkSL interpreter to operate in SIMT fashion. It handles
all the same features as the previous scalar implementation, but operates
on N lanes at a time. (Currently 8).

It's modeled after GPU and other parallel architectures, using execution
masks to handle control flow, including divergent control-flow.

Change-Id: Ieb38ffe2f55a10f72bdab844c297126fe9bedb6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217122
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-06-13 15:50:55 +00:00
Brian Salomon
d608e224b2 Add load/store to SkRasterPipeline for 16161616 unsigned normalized.
Bug: skia:8962

Change-Id: I0ab208063b6b7eca010f86d4d851ade23df5f849
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220529
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-06-13 14:48:35 +00:00
Greg Daniel
2e52ad1096 Prefer top left origin in write pixels when doing copy as draw.
Bug: chromium:972587
Change-Id: I05ab4393d4df20a8f55c4352d09f92f275cedf5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220736
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-06-13 14:32:23 +00:00
Florin Malita
084fa1b52f [skottie] Use metrics for Shaper vertical alignment
Relying on visual bounds yields incorrect results in some cases (e.g.
leading/trailing empty lines).

Update the vertical alignment logic to use metrics instead:

  - track the first line ascent and last line descent
  - compute content height as

      first_ascent + last_descent + line_height * (line_count - 1)

  - relocate Result::computeBounds() to the unit test (only user)

Empirically, this causes top-alignment to be less snug (likely due to
ascent slack in the tested fonts).

Bug: skia:9098
Change-Id: Ib92bf907af8889d6b0d0fda22ef41a2cc8b50901
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220656
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-06-13 13:04:53 +00:00
skia-autoroll
187e8f3123 Roll third_party/externals/angle2 2589cdcc88ec..85fef1bc62f8 (6 commits)
2589cdcc88..85fef1bc62


git log 2589cdcc88ec..85fef1bc62f8 --date=short --no-merges --format='%ad %ae %s'
2019-06-13 spang@chromium.org Vulkan: Build validation layers with asserts only
2019-06-12 clemendeng@google.com implement core egl image entry points
2019-06-12 jmadill@chromium.org Vulkan: Fix build with custom secondaries disabled.
2019-06-12 jmadill@chromium.org Roll SPIR-V headers and Tools.
2019-06-12 dongja@google.com Vulkan: add support for shadow samplers.
2019-06-12 jonahr@google.com Extend eglGetPlatformDisplay to allow feature overrides.


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

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=herb@google.com

Change-Id: I86cb59bef2fe3db96ded65c507a95134b717baf8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220680
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-13 06:02:33 +00:00
skia-autoroll
47c7e80e95 Roll ../src 5dc4d131fb35..f6ed31446fb7 (418 commits)
5dc4d131fb..f6ed31446f


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

The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-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: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
TBR=herb@google.com

Change-Id: I155b13c1864cf0a9d10ed884342bcf455c6b49af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220681
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-13 04:51:33 +00:00
skia-autoroll
34116c3fc0 Roll third_party/externals/swiftshader b8260a8e915d..df84b9466cfd (8 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b8260a8e915d..df84b9466cfd


git log b8260a8e915d..df84b9466cfd --date=short --no-merges --format='%ad %ae %s'
2019-06-12 chrisforbes@google.com Fix edge cases of various enumeration functions
2019-06-12 srisser@google.com Prevent integer-overflow on scissor test
2019-06-12 capn@google.com Fix GCC inline assembly syntax
2019-06-12 sugoi@google.com Fixed writing to a2b10g10r10
2019-06-12 thomasanderson@chromium.org Move libvk_swiftshader.lds from sources to inputs
2019-06-12 capn@google.com Use VK_TRUE/VK_FALSE consistently
2019-06-12 srisser@google.com Don't let shaders negate samplers
2019-06-12 chrisforbes@google.com Fix Android build


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

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=herb@google.com

Change-Id: I1d858f47756049f7184e5b336badc5ad56115769
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220679
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-13 04:33:03 +00:00
Brian Osman
b9416caa36 SkSL: Fix parsing of array types
This invoked operator bool(), so all arrays were parsed as having 1 column.

Change-Id: Iccd2a4fc80c905d8a5912f5639b0efbad050cbcf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220530
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-06-12 21:45:45 +00:00
Mike Klein
64a5b671b9 tighten up loop test
This trims one instruction of loop overhead, from

   sub(N, K)    // N -= 8
   cmp(N, K-1)  // if (N >= 8)
   jg loop      //     goto loop;

to

   sub(N, K)    // N -= 8
   ...          // if (N != 0)
   jne loop     //     goto loop;

To make this work we pass only multiples of K into the
JIT'd code, so it always hits exactly N = 0 to exit.

Change-Id: I81c7a2f8d5927971059a68c5bce2e3d6fb0b8ff2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220576
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-12 19:45:27 +00:00
Greg Daniel
662e2af351 Fix setting of pipeline barrier in creating backend VkImage.
Change-Id: I43847609bfbdc769487cab5bf19f754615cc8ddd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220528
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-06-12 19:41:06 +00:00
Robert Phillips
156622513f Add Ganesh support for RGBA_16161616 and RG_half
Change-Id: Ia424ff719c5fb8d1842a909ade09ad6f5f78f21f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219998
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-06-12 19:20:36 +00:00
Ravi Mistry
4ba62b5ff3 Add tip on patching to G3 bot
NoTry: true
Change-Id: Iafb020592e22cacbbf6a79f8e8dab2fb4c4546f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220520
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-06-12 19:01:36 +00:00
Mike Klein
3f593799da expand unit tests, fix extract
The mask-only special case for extract is wrong...
it never looked it its input!

This not only makes things correct-er, but oddly it also
makes them faster by breaking inter-loop data dependencies.

Disable tests for _I32... they're actually still broken
because of a much more systemic flaw in how I've evaluated
programs.  The _F32 and _I32_SWAR JIT code and all interpreted
code is just getting lucky.  o_O

While here, update the I32_SWAR code to use the same math as I32,
(x*y+x)/256 for unorm8 mul.  This just helps keep me sane.

Change-Id: I1acc09adb84c426fca4b2be5ca8c2d46d9678dd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220577
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-06-12 18:58:56 +00:00
Mike Klein
81756e4cae test and fix that we cover the right inputs
At head we're redoing any n<8 tail from the start,
not continuing from (n/8)*8 like we'd want.

Change-Id: I1a3d24cdffc843bbe6f3e01a163b6e3a20fdd0ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220556
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-12 18:44:58 +00:00
Mike Klein
d3cc16c8bb eliminate the need for a tmp ymm register
Like any other Instruction the store*s are assigned
a destination register d, which doesn't really make
sense, but works perfectly as a temporary register.

This means store8 doesn't need to reserve xmm/ymm15
as a temporary... it already has one naturally.   As
you might expect, the examples we have so far assign
the consumed input x register as the d register, so
things that used to look like

    vpackusdw %ymm6 ,%ymm6 ,%ymm15
    vpermq    $0xd8 ,%ymm15,%ymm15
    vpackuswb %ymm15,%ymm15,%ymm15
    vmoq      %xmm15,(%rdx)

now look more like

    vpackusdw %ymm6,%ymm6,%ymm6
    vpermq    $0xd8,%ymm6,%ymm6
    vpackuswb %ymm6,%ymm6,%ymm6
    vmoq      %xmm6,(%rdx)

Should be no perf difference, just simplified register bookkeeping.

This may suggest splitting load8/store8 into finer instructions,
two to do the physical loads and stores, and two for the 8->32
and 32->8 widen and narrow?  On the other hand load8 really is
just one vpmovzxbd instruction, so it'd be a shame to split it.
I suspect this will become more clear as I add 16-bit support.

Change-Id: I7c2b4d6b1689d40b50382f65fc00c01c54529c8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220543
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-12 17:34:38 +00:00
Brian Osman
072e6fc374 Remove version string from Viewer's "highlight" SkSL shader
Change-Id: Id61b7b9d9bc7611727a27be0172fcabc2ef4345a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220522
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2019-06-12 16:03:36 +00:00
Mike Klein
b464002fb2 remove moot comment
Change-Id: I0263b4ea8c60695c890f31d45198a7bd45ff3db8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220536
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-12 15:13:36 +00:00
Nathaniel Nifong
208363e959 Minor optimization to serialization of SkPictures with many subpictures.
During the dummy serialize step that dedupes typefaces, all work not relevant to typefaces is skipped.
For a picture that is approx 100% subpictures, serialization time is reduced by about 50%

Change-Id: I00a2579e935a15c5ccabc065b8326c0cad74244b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215121
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-06-12 14:50:56 +00:00
Mike Reed
d62d406aa2 Revert "Revert "try resolver pattern""
This reverts commit 2bafb64ed3.

Change-Id: I46f29284546a8978fd0005a0937e28410e5ac0da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220518
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-06-12 14:46:56 +00:00
skia-autoroll
698fa78b3c Roll third_party/externals/angle2 1b5ad312c57a..2589cdcc88ec (5 commits)
1b5ad312c5..2589cdcc88


git log 1b5ad312c57a..2589cdcc88ec --date=short --no-merges --format='%ad %ae %s'
2019-06-11 clemendeng@google.com GLSLTest stack overflow bug fix
2019-06-11 clemendeng@google.com removed msvs_projects from devsetup
2019-06-11 jmadill@chromium.org Vulkan: Add missing command pool reset.
2019-06-11 dongja@google.com Vulkan: Add support for gl_VertexID/gl_InstanceID
2019-06-11 kbr@chromium.org Reland "Temporarily disable creating D3D debug device."


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

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=herb@google.com

Change-Id: Ie90cfa83f262b5a5c5bc053a6d1d90d4dda69c1d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220478
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-12 05:57:12 +00:00
skia-autoroll
ed7966f179 Roll ../src 3032e0d81bfa..5dc4d131fb35 (409 commits)
3032e0d81b..5dc4d131fb


Created with:
  gclient setdep -r ../src@5dc4d131fb

The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-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: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
TBR=herb@google.com

Change-Id: Iceecfccb3167dbe0f50ada31fa844610a882fdf5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220479
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-12 04:40:21 +00:00
skia-autoroll
6a9e2827fe Roll third_party/externals/swiftshader 0a9f0179ddef..b8260a8e915d (9 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/0a9f0179ddef..b8260a8e915d


git log 0a9f0179ddef..b8260a8e915d --date=short --no-merges --format='%ad %ae %s'
2019-06-12 stevensd@google.com [fuchsia] Remove deprecated non-resizable vmo flag
2019-06-12 hliatis@google.com Allow default construction of BackingMemory on Android
2019-06-11 sugoi@google.com Ripped out SwiftConfig
2019-06-11 bclayton@google.com CMake build: Only export explicit symbols on macOS
2019-06-11 bclayton@google.com LLVM CoroSplit: Add pass dependency on CallGraphWrapperPass
2019-06-11 bclayton@google.com CMakeLists: Add missing LLVM aarch64 source files.
2019-06-11 bclayton@google.com Build: Sort LLVM source files lexographically.
2019-06-11 bclayton@google.com Fix 'control reaches end of non-void function' warnings treated as errors
2019-06-11 swiftshader.regress@gmail.com Regres: Update test lists @ 0a9f0179


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

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=herb@google.com

Change-Id: Iac41d3ce67826ce83109ce0f8116d88045f593af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220477
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-12 04:34:01 +00:00
recipe-roller
d82ca0bf2c 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/bdc5cd8872c898ccb123cf7ea29d7a7975f28364 cq: use gerrit_changes from buildbucket, which are ordered by CQ daemon. (tandrii@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iad52667b14b95c0cf5e3e62dd7f768b7e731ab27
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220416
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-06-12 00:51:04 +00:00
Greg Daniel
a47ab49146 A few fixes to recent gpu Copy Op changes.
Make sure we make the dst be visited so that the allocator knows
it can reuse the dst copy texture.

Don't flip the copy rect for origin until after setting the bounds on
the copy op

Bug: chromium:972587
Change-Id: Ibb37e41b45e773e5df2c79c2e0e3ec79a871632f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220219
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-06-11 22:45:49 +00:00
Brian Salomon
cd5caa34fb Allow async read back GM to YUV to fail. Skip on DDL.
Currently fails on GrContext's that don't support transfer buffers.
TODO: fallback to synchronous read pixels.

Bug: skia:8962
Change-Id: I464ea00519013a371ba29912a0220fa42b252243
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220299
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-06-11 21:50:29 +00:00
Julia Lavrova
f39124b076 Baseline for empty text
Change-Id: I7c172bfb8f35f684030489f75cd997acdbbe3a75
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220298
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-06-11 21:49:49 +00:00
Mike Reed
daf1945321 expose xform to google3
Change-Id: Ic4a238b615c428fe6d1e9d6dd9fb56b39bc9c8f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220300
Reviewed-by: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
2019-06-11 21:21:38 +00:00
Mike Klein
0b5ffce7c9 refine perf dumps a little
We can use our hash to identify each CodeLoad entry, and that will mean
`perf inject -j` will dump out an .so for each function named
jitted-<pid>-<hash>.so, obviating the need for our own .bin dumps.

The .so's are nicer anyway because you can just `objdump -d` them;
they know what format, architecture, etc. they hold.

Change-Id: I701bda6bf55ac7716a2210b09373aa02e806c6ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220317
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-11 20:55:52 +00:00
Brian Salomon
217522c40d Add SkRasterPipeline support for more load/store formats and GrSwizzle.
Adds loads/stores (but not dst loads/gathers) for:
*fp16 single and two channel
*fp32 two channel
*normalized unsigned 8 bit two channel
*normalized unsigned 16 bit single and two channel

TODO: 4 channel unsigned normalized 16 bit.

MISSING: fp32 single channel. No matching current or future GrColorType
planned AFAIK.

Intent is to support all (noncompressed) GrColorType load/stores in
order to implement fallbacks for 3D API limitations on texture uploads
and render target readbacks (some of which require swizzling).

Also, can be used to support YUV<->RGB planar
splitters/joiners on CPU.

Bug: skia:8962
Change-Id: I258d5682a1f4025b31639a97b1a1a02077a2453f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219999
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-06-11 20:31:02 +00:00
Herb Derby
e713a3c7b4 Make fAdvance{X|Y} private.
Clients of glyphs now use the accessors to get advance information.
Scalers still have full access to the fAdvance{X|Y} fields.

Change-Id: I4e83621811ca65627356caaad7efe2327a45f8b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220217
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-06-11 19:34:00 +00:00
Mike Klein
7760112e01 better perf support for JIT code
References:

   https://lwn.net/Articles/638566/
   https://v8.dev/docs/linux-perf
   https://cs.chromium.org/chromium/src/v8/src/diagnostics/perf-jit.cc
   https://lore.kernel.org/patchwork/patch/622240/

Usage:

    ninja -C out dm nanobench
    perf record -k 1 out/nanobench -m SkVM_4096_I32\$
    perf inject -j -i perf.data -o perf.data.jit
    perf report -i perf.data.jit

Percent│
       │
       │
       │    Disassembly of section .text:
       │
       │    0000000000000040 <skvm-jit-8e8f2c67>:
       │    skvm-jit-8e8f2c67():
       │      vbroadcastss 0xd3(%rip),%ymm0        # 11c <skvm-jit-8e8f2c67+0xdc>
  0.35 │ 9:   vmovups (%rsi),%ymm1
  1.54 │      vandps %ymm0,%ymm2,%ymm2
  3.41 │      vpsrld $0x8,%ymm1,%ymm3
  0.26 │      vandps %ymm0,%ymm3,%ymm3
  0.55 │      vpsrld $0x10,%ymm1,%ymm4
  1.63 │      vandps %ymm0,%ymm4,%ymm4
  2.84 │      vpsrld $0x18,%ymm1,%ymm1
  0.46 │      vandps %ymm0,%ymm1,%ymm1
  0.17 │      vmovups (%rdx),%ymm5
  1.51 │      vandps %ymm0,%ymm6,%ymm6
  3.31 │      vpsrld $0x8,%ymm5,%ymm7
  0.38 │      vandps %ymm0,%ymm7,%ymm7
  0.28 │      vpsrld $0x10,%ymm5,%ymm8
  2.30 │      vandps %ymm0,%ymm8,%ymm8
  3.32 │      vpsrld $0x18,%ymm5,%ymm5
  0.47 │      vandps %ymm0,%ymm5,%ymm5
  0.64 │      vpsubd %ymm1,%ymm0,%ymm9
 12.49 │      vpmulld %ymm9,%ymm6,%ymm6
  1.19 │      vpaddd %ymm6,%ymm6,%ymm6
  8.75 │      vpsrad $0x8,%ymm6,%ymm6
  1.40 │      vpaddd %ymm2,%ymm6,%ymm6
  1.42 │      vpmulld %ymm9,%ymm7,%ymm7
  4.06 │      vpaddd %ymm7,%ymm7,%ymm7
  2.55 │      vpsrad $0x8,%ymm7,%ymm7
  2.14 │      vpaddd %ymm3,%ymm7,%ymm7
  2.57 │      vpmulld %ymm9,%ymm8,%ymm8
  1.28 │      vpaddd %ymm8,%ymm8,%ymm8
  2.85 │      vpsrad $0x8,%ymm8,%ymm8
  0.41 │      vpaddd %ymm4,%ymm8,%ymm8
  2.52 │      vpmulld %ymm9,%ymm5,%ymm9
  3.88 │      vpaddd %ymm5,%ymm9,%ymm9
  1.90 │      vpsrad $0x8,%ymm9,%ymm9
  2.83 │      vpaddd %ymm1,%ymm9,%ymm9
  1.43 │      vpslld $0x8,%ymm7,%ymm7
  4.35 │      vorps  %ymm6,%ymm7,%ymm7
  3.08 │      vpslld $0x8,%ymm9,%ymm9
  1.71 │      vorps  %ymm8,%ymm9,%ymm9
  3.58 │      vpslld $0x10,%ymm9,%ymm9
  3.37 │      vorps  %ymm7,%ymm9,%ymm9
  1.01 │      vmovups %ymm9,(%rdx)
  0.37 │      sub    $0x8,%rdi
  1.73 │      add    $0x20,%rsi
  3.27 │      add    $0x20,%rdx
       │      cmp    $0x7,%rdi
  0.40 │    ↑ jg     9
       │      vzeroupper
  0.05 │    ← retq
       │      xchg   %ax,%ax
       │      incl   (%rax)
       │            ...

Change-Id: Ibac83c92748139f7579c198ff09edf5564d2138e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220316
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-11 19:30:49 +00:00
Shachar Langbeheim
db610b3038 third-party.gni: Search includes using -I.
This will ensure that the headers from the dependencies will have
precedent over system headers, thus preventing situations where system
headers will block dependency headers and prevent compilation.

Change-Id: I0d480a6d3898f2da99cf2706c5335aaac05b4e4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220276
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-11 19:04:29 +00:00
Ravi Mistry
1e81d788eb Increase timeout for G3 framework bot
NoTry: true
Bug: skia:
Change-Id: Ib30cf32f1ae58be69803decd90be548dd069a5b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220218
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-06-11 18:48:09 +00:00
Mike Klein
613ad38b10 add basic JIT using xbyak
Long term we'll need to spin up our own codegen rather than using xbyak,
since it uses exceptions and does not support ARM.

I really don't like how I've hacked in the caching of the JITted
program, but that'll change anyway when switching away from xbyak.

Performance looks good, better than (lowp) SkRasterPipeline
but not quite as good as hand-tuned code:

  Opts:     0.2 ns/px
  RP:       0.7
  F32:      0.8
  I32:      0.6
  I32_SWAR: 0.5

ninja -C out dm nanobench && out/dm -m SkVM && gobjdump -D -b binary -mi386:x86-64 /tmp/code.bin --insn-width=10

Change-Id: I34ce46e1d3fe5aa75f42709049a92ac79bf48bbd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219341
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-11 18:40:39 +00:00
Herb Derby
cc5dc01824 Make fForceBW private.
It is only used by SkScalerContext_DW to communicate with itself.

Change-Id: I2926a31e285368d1825b13e4ec1d597c6ddc7fe1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220257
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-06-11 18:26:09 +00:00
Jim Van Verth
19e8a7185d Fix ASAN issue with CreateTestingOnlyMtlTextureInfo
Bug: skia:8243
Change-Id: I33ae473a201ed69cbca726556a501c418749ac68
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220256
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-06-11 18:14:59 +00:00
Brian Salomon
df586b7d56 Use float literal with std::fill of floats
Change-Id: Ie96b3d0cb7e9f8d9070c25c90a41641ae3114ec8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220236
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-06-11 17:57:39 +00:00
Jim Van Verth
3e5b01746c Don't use MSAA config if can't resolve
Bug: skia:8243
Change-Id: I538e7181ab9922bbabb06e4acde1d560f2502de1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220216
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-06-11 17:48:31 +00:00
Julia Lavrova
a3552c5e6d Reland "SkParagraph"
This is a reland of 10ad0b9b01

Original change's description:
> SkParagraph
>
> Change-Id: I0a4be75fd0c18021c201bcc1edfdfad8556edeff
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/192100
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

Change-Id: I46cf43eae693edf68e45345acd0eb39e04e02bfc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219863
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2019-06-11 17:20:36 +00:00
Brian Osman
2d170c35d4 Remove all NexusPlayer bots and driver workarounds
This device is very old and very unsupported. It doesn't officially come
with a browser (Chrome needs to be sideloaded).

Bug: skia:6531 skia:6670 skia:7286 skia:7921
Change-Id: I720cd3a40981694bf7befa5cafc700717dcd7cdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219486
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-06-11 17:05:23 +00:00
Ravi Mistry
5fc8912087 Add bin/try-clients to trigger client tryjobs
Will trigger the following:
  skia.primary:
    Build-Debian9-Clang-arm-Release-Flutter_Android
    Build-Debian9-Clang-cf_x86_phone-eng-Android_Framework
    Build-Debian9-Clang-host-sdk-Android_Framework
    Build-Debian9-Clang-TAP-Presubmit-G3_Framework
  luci.chromium.try:
    mac_chromium_compile_dbg_ng

Bug: skia:9154
Change-Id: I88a21865777f7da52e8333920ad9d10da5e788ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219482
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-06-11 16:55:53 +00:00
Ethan Nicholas
53bd4c5d4e fixed an skslc crash with uninitialized globals
Bug: oss-fuzz:14372
Change-Id: I9445a36a7d7b04ba63f1e5c9b1d1bd270708a7c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219481
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2019-06-11 16:35:03 +00:00
Ethan Nicholas
d188c18835 fixed SkSL handling of negated literal vectors
Bug: oss-fuzz:14409
Change-Id: I837083139489d46f7db2f697ce85a0cabf85fb94
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219997
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2019-06-11 16:34:04 +00:00