Commit Graph

48042 Commits

Author SHA1 Message Date
Ethan Nicholas
5f56cb1d3b Revert "Optimize GrTessellatePathOp's code to emit inner triangles"
This reverts commit 0f9ebd100e.

Reason for revert: breaking a couple of bots (e.g. https://chromium-swarm.appspot.com/task?id=4bd6ccc785fa3110)

Original change's description:
> Optimize GrTessellatePathOp's code to emit inner triangles
> 
> Previously we used a naive algorithm to generate "middle-out" topologies
> for inner polygons, including copying all endpoints to a new array.
> 
> This CL adds a "GrMiddleOutPolygonTriangulator" class that
> accomplishes the same thing in 1/5th the time using a small O(log N)
> stack.
> 
> Change-Id: I3a7059e5d133a730b7084a17d8fbaaa3aaa81336
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285531
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>

TBR=csmartdalton@google.com,michaelludwig@google.com

Change-Id: I8ebca7078f2b9c12246447759efa9ce0cbb7e46b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285719
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-04-27 23:38:10 +00:00
Kevin Lubick
2514bd790a [infra] Remove old cloudbuild file
Change-Id: I3deeb263abbb8fff41531130cd3a0b8d818bf105
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285717
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2020-04-27 23:29:47 +00:00
Stephen White
3d2dd26cc0 Dawn: update to upstream Dawn API changes.
See https://hackmd.io/Et7xlhoaThmi8dEX_s-xSw

Change-Id: Ia85327fe43cb21d84eb17a954e72c7e2936385dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285667
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-04-27 22:25:38 +00:00
Chris Dalton
0f9ebd100e Optimize GrTessellatePathOp's code to emit inner triangles
Previously we used a naive algorithm to generate "middle-out" topologies
for inner polygons, including copying all endpoints to a new array.

This CL adds a "GrMiddleOutPolygonTriangulator" class that
accomplishes the same thing in 1/5th the time using a small O(log N)
stack.

Change-Id: I3a7059e5d133a730b7084a17d8fbaaa3aaa81336
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285531
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-04-27 20:33:09 +00:00
Julia Lavrova
f4cf893fee LTR/RTL iterateThroughClustersInGlyphsOrder simplified
Change-Id: I778039babc51b60f745a0acff91008d285d94b93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284926
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-04-27 19:16:38 +00:00
Mike Klein
5763b37ffb Revert "Reland "Add Abseil to third_party.""
This reverts commit 78debd6f6d.

Reason for revert: unexpectedly, Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All-TSAN

Original change's description:
> Reland "Add Abseil to third_party."
>
> This is a reland of 816226e822
>
> Original change's description:
> > Add Abseil to third_party.
> >
> > At present, this is a proof-of-concept which only supports a small
> > subset of absl modules:
> > - Base
> > - Hash
> > - Numeric
> > - String
> >
> > This is only used by one unit test, which builds a string and then
> > hashes it.
> >
> > Bug: skia:10165
> > Bug: b/154848688
> >
> > Change-Id: I016250bf700b522c7a6bc78cf1844abff2260c35
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284805
> > Reviewed-by: Derek Sollenberger <djsollen@google.com>
> > Commit-Queue: John Stiles <johnstiles@google.com>
> > Auto-Submit: John Stiles <johnstiles@google.com>
>
> Bug: skia:10165, b/154848688
> Change-Id: I618bb4411445fe5b45a91741934ca888a09adf05
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285537
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

TBR=djsollen@google.com,mtklein@google.com,johnstiles@google.com

Change-Id: I434da738bcc7fa76b46d0fa0fcbdd58c85b70fe7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10165, skia:10177, b/154848688
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285685
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-04-27 18:46:29 +00:00
Greg Daniel
d922f33b16 Update vulkan backend texture creation to use ganesh abstractions of vk resources.
This allows us to remove all the manual creation of vulkan objects in
the backend texture code. It also uses our command buffer tracking system
to know when to free and delete the vulkan resources.

Ideally we would be able to share even more code with uploading to
textures and command buffer submission, but more suibtle refactoring
would be needed to keep everything running smooth and not overly complex.
This changes at least allows us to move forward with current plans on
updating the backend texture data upload APIs.

Change-Id: I87aba838615b0c4538513fdc753fd8892c30948e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285500
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-04-27 17:13:04 +00:00
Mike Klein
9b1efe253c try skipping _cvtmask64_u64
This may or may not work.

Change-Id: I0be7517deafe7f27087e782782a7e135110ddebe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285683
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-04-27 17:06:19 +00:00
Mike Klein
f3dca0bee1 make --dylib mode work on linux
We're looking up skvm_jit where we need to look up _skvm_jit.

Change-Id: Iad00d2a371cbec590ebecc2ead15dc0aab5a1d4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285676
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-27 15:56:24 +00:00
Greg Daniel
b16beb94a3 Reland "Make compiling the amd vulkan memory allocator optional."
This reverts commit 6a5a91e164.

Reason for revert: chrome gn updated, so this should roll fine now

Original change's description:
> Revert "Make compiling the amd vulkan memory allocator optional."
> 
> This reverts commit 23da19863e.
> 
> Reason for revert: break chrome roll, need to land chrome change first
> 
> Original change's description:
> > Make compiling the amd vulkan memory allocator optional.
> > 
> > Change-Id: I79b9f78b52f215076a371cbd0ff057d61dd855f0
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285380
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> 
> TBR=egdaniel@google.com,brianosman@google.com,penghuang@chromium.org
> 
> Change-Id: Ifc17a07f5cdfcf7b38272e5c44e5b894019cf44a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285538
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,brianosman@google.com,penghuang@chromium.org

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

Change-Id: I4767039236137d3eaece2e16abef57278ce199ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285662
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-27 15:51:44 +00:00
Kevin Lubick
3088c69b5f [skottiekit] Add a proof-of-concept only Skottie WASM build.
The goal is to see how small this can be w/o disrupting
CanvasKit.

Change-Id: Ia96ebf94dbe335d9db481d9264279163f8c37e16
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285012
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-04-27 14:28:20 +00:00
Kevin Lubick
5766e3bd11 [canvaskit] Set Safari to webl 1
Bug: skia:10171
Change-Id: I2015a617338d975360fc228f4a061bba401eeb8c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285656
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-04-27 14:24:24 +00:00
Mike Klein
cde79c7b3c disable skx SkRP stages
I can reproduce the regression on my skylake xeon desktop.

Bug: skia:10174
Change-Id: Ibdc8dc3339433648223439d465917c67183f6c97
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285625
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-04-27 14:21:24 +00:00
Lingyun Cai
56f23a1d17 Add AVX512 implementation for blit_row_s32a_opaque
blit_row_s32a_opaque time is improved by ~20-30% using icelake cpu.
nanobench results:
                  before     after
SkVM_4096_Opts    0.141ns    0.108ns
SkVM_1024_Opts    0.161ns    0.110ns
SkVM_256_Opts     0.155ns    0.109ns

Change-Id: If46b3fbeb4a7b68b152aca2c0bc3e1417578d4b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284528
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-27 13:36:34 +00:00
Michael Ludwig
81ef385c1f Expand clear-as-draw workaround for Mac with Broadwell GPUs
Bug: chromium:1039912
Change-Id: I3e7d5b4fadc78e3c26ea41765aa5a2cf6e512b1b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285536
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-04-27 13:19:54 +00:00
John Stiles
78debd6f6d Reland "Add Abseil to third_party."
This is a reland of 816226e822

Original change's description:
> Add Abseil to third_party.
>
> At present, this is a proof-of-concept which only supports a small
> subset of absl modules:
> - Base
> - Hash
> - Numeric
> - String
>
> This is only used by one unit test, which builds a string and then
> hashes it.
>
> Bug: skia:10165
> Bug: b/154848688
>
> Change-Id: I016250bf700b522c7a6bc78cf1844abff2260c35
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284805
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Bug: skia:10165, b/154848688
Change-Id: I618bb4411445fe5b45a91741934ca888a09adf05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285537
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-04-27 06:07:43 +00:00
skia-recreate-skps
3cdf6a0a29 Update Go Deps
Change-Id: Ib6b2f24b50cc34c355756dd07ae2e6c1de4d071f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285612
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-04-27 05:38:53 +00:00
skia-autoroll
c883481ccd Roll third_party/externals/angle2 21c5af3151fb..3cb9c4bee9b3 (7 commits)
21c5af3151..3cb9c4bee9

git log 21c5af3151fb..3cb9c4bee9b3 --date=short --first-parent --format='%ad %ae %s'
2020-04-24 jonahr@google.com Statically link vulkan-loader on Mac
2020-04-24 jmadill@chromium.org Vulkan: Clean up ClipRectToScissor.
2020-04-24 jmadill@chromium.org Vulkan: Remove unicode character from error string.
2020-04-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 5ab1f36a38aa..f42c698d784a (8 commits)
2020-04-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 67f4838659f4..5547553a0c7b (2 commits)
2020-04-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 260a7c82e988..bb0380e3932a (3 commits)
2020-04-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-headers/src 382bf3de06fc..62becc509a88 (1 commits)

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

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 ethannicholas@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/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
Tbr: ethannicholas@google.com
Change-Id: Ie8394456da60680b31d1b71d16372744eda63a13
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285601
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-27 04:54:53 +00:00
skia-autoroll
408644b20a Roll ../src 132edc1c6ff4..9781ff27c9e9 (476 commits)
132edc1c6f..9781ff27c9


Created with:
  gclient setdep -r ../src@9781ff27c9

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 ethannicholas@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/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Bug: None
Tbr: ethannicholas@google.com
Change-Id: I2f7f32d78389929a348541ba67de267eab745846
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285602
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-27 04:53:13 +00:00
skia-autoroll
8566a8c470 Roll third_party/externals/swiftshader 91525d85792f..60aa34a990fa (5 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/91525d85792f..60aa34a990fa

git log 91525d85792f..60aa34a990fa --date=short --first-parent --format='%ad %ae %s'
2020-04-24 capn@google.com Omit ASSERT() expression evaluation in Release builds
2020-04-24 bclayton@google.com SpirvShaderDebugger: Ensure frames are fully popped
2020-04-24 bclayton@google.com SpirvShaderDebugger: Implement globals, stub array types
2020-04-24 bclayton@google.com SpirvShader: Add WriteCFGGraphVizDotFile debug function
2020-04-24 pcc@google.com Don't unlock Android buffers immediately after locking them.

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

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 ethannicholas@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/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: ethannicholas@google.com
Change-Id: Ifef50d7f1d7f9103e77683a39d205b450bbaf920
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285599
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-27 04:43:23 +00:00
skia-autoroll
981d590e8e Roll third_party/externals/dawn 635239faf8ef..00b90ea83262 (4 commits)
https://dawn.googlesource.com/dawn.git/+log/635239faf8ef..00b90ea83262

git log 635239faf8ef..00b90ea83262 --date=short --first-parent --format='%ad %ae %s'
2020-04-24 cwallez@chromium.org Enable more warning needed for Skia to build with Dawn on Linux
2020-04-24 cwallez@chromium.org Add Matrix chatrooms to README.md
2020-04-24 cwallez@chromium.org Deprecate BufferCopyView.rowPitch/imageHeight -> bytesPerRow/rowsPerImage
2020-04-24 cwallez@chromium.org Add a size argument to Set[Vertex|Index]Buffer

Also rolling transitive DEPS:
  https://chromium.googlesource.com/chromium/src/third_party/jinja2 b41863e42637..b41863e42637
  https://chromium.googlesource.com/chromium/src/third_party/markupsafe 8f45f5cfa000..8f45f5cfa000
  https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang 3f4e5c456306..3f4e5c456306
  https://chromium.googlesource.com/external/github.com/google/shaderc ced9c72d005e..ced9c72d005e

Created with:
  gclient setdep -r third_party/externals/dawn@00b90ea83262

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC cwallez@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

Bug: None
Tbr: cwallez@google.com
Change-Id: Ic6f4d9b3c55749cb6dfb035e1d4200a5f8581450
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285600
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-27 04:30:43 +00:00
Mike Reed
1ae3e75a0b Fix bug in path clipping (chopping)
When trying to chop a quadratic along the right edge of a clip,
the computed t value was so close to 1.0 that our chopper method
returns false (we would have needed doubles to detect this).

To handle this, pin the X values to the right edge, so that we at least
maintain the contract that we are clipped.

Bug: 1070835
Change-Id: Ifdc59f97c7f5c32b321647f6739b37b33ce801c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285576
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-04-26 21:48:33 +00:00
skia-recreate-skps
b6130e919d Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: Ic1c6bea425d7dc337b04e218e0fc2723c522baff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285560
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-04-26 06:14:22 +00:00
skia-recreate-skps
97cfb05aab Update Go Deps
Change-Id: I046ffebe2d0b5b0804a5da1d7825278819ba99c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285556
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-04-26 05:28:52 +00:00
Greg Daniel
6a5a91e164 Revert "Make compiling the amd vulkan memory allocator optional."
This reverts commit 23da19863e.

Reason for revert: break chrome roll, need to land chrome change first

Original change's description:
> Make compiling the amd vulkan memory allocator optional.
> 
> Change-Id: I79b9f78b52f215076a371cbd0ff057d61dd855f0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285380
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,brianosman@google.com,penghuang@chromium.org

Change-Id: Ifc17a07f5cdfcf7b38272e5c44e5b894019cf44a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285538
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-25 01:59:12 +00:00
Joe Gregorio
dccf63b233 Add Galaxy S20 to the tree.
Change-Id: I2a668f207101906a7216cbcec302d3c4514af872
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285381
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2020-04-24 23:00:51 +00:00
Jim Van Verth
c12aad9485 Some more minor fixes for D3D tests.
Change-Id: Ie0be9ef7f9aba1c91f03053311686905142b3814
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285498
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-04-24 21:00:41 +00:00
Herb Derby
438775b19e Reland "fix crbug 1073670"
This is a reland of 553deb66e4

Original change's description:
> fix crbug 1073670
>
> When drawing a path with effects, the deviceMatrix must not be modified.
>
> * added GM for regression checking
>
> Bug: chromium:1073670
>
> Change-Id: Id75d6f00aa50d891ec807f10be72c0068ec80356
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285387
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

Bug: chromium:1073670
Change-Id: I518497997f09e37d13fc05499b68135ebd4e0a96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285497
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-04-24 20:52:21 +00:00
Mike Klein
6d54e84dc5 Revert "Add Abseil to third_party."
This reverts commit 816226e822.

Reason for revert: 

https://chromium-swarm.appspot.com/task?id=4bc69ffc0a889110

/mnt/pd0/s/w/ir/clang_linux/bin/clang++ -rdynamic -Wl,-rpath,\$ORIGIN --target=armv7a-linux-gnueabihf --sysroot=/mnt/pd0/s/w/ir/armhf_sysroot -static-libstdc++ -static-libgcc -B/mnt/pd0/s/w/ir/armhf_sysroot/bin -B/mnt/pd0/s/w/ir/armhf_sysroot/gcc-cross -L/mnt/pd0/s/w/ir/armhf_sysroot/gcc-cross -L/mnt/pd0/s/w/ir/armhf_sysroot/lib -L/mnt/pd0/s/w/ir/chromebook_arm_gles/lib -Wl,--start-group @./dm.rsp  -Wl,--end-group -lpthread -ldl -lGLESv2 -lEGL -o ./dm
libabsl.a(libabsl.numbers.o): In function `absl::string_view::substr(unsigned int, unsigned int) const':
/mnt/pd0/s/w/ir/skia/third_party/externals/abseil-cpp/absl/strings/string_view.h:387: undefined reference to `absl::base_internal::ThrowStdOutOfRange(char const*)'
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)


Original change's description:
> Add Abseil to third_party.
> 
> At present, this is a proof-of-concept which only supports a small
> subset of absl modules:
> - Base
> - Hash
> - Numeric
> - String
> 
> This is only used by one unit test, which builds a string and then
> hashes it.
> 
> Bug: skia:10165
> Bug: b/154848688
> 
> Change-Id: I016250bf700b522c7a6bc78cf1844abff2260c35
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284805
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

TBR=djsollen@google.com,johnstiles@google.com

Change-Id: If9936f1beaf6ac9c85718ce445e823bf2f57a6fa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10165, b/154848688
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285491
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 20:15:42 +00:00
Brian Osman
eca31bc7a9 Remove support for reading old serialized SkVertices
Change-Id: If3010945532e1d6b16e590cf8c4afd4578ae770f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285392
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-04-24 20:04:31 +00:00
Joe Gregorio
ade3f4c3ea Revert "fix crbug 1073670"
This reverts commit 553deb66e4.

Reason for revert: Breaking ChromeBook builds, such as Build-Debian9-Clang-x86_64-Release-Chromebook_GLES_Docker


Original change's description:
> fix crbug 1073670
> 
> When drawing a path with effects, the deviceMatrix must not be modified.
> 
> * added GM for regression checking
> 
> Bug: chromium:1073670
> 
> Change-Id: Id75d6f00aa50d891ec807f10be72c0068ec80356
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285387
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

TBR=herb@google.com,robertphillips@google.com,brianosman@google.com

Change-Id: Ibe2243e435fd5b49b49bb55d909d7eb9cf4ca255
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1073670
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285496
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2020-04-24 19:56:03 +00:00
John Stiles
816226e822 Add Abseil to third_party.
At present, this is a proof-of-concept which only supports a small
subset of absl modules:
- Base
- Hash
- Numeric
- String

This is only used by one unit test, which builds a string and then
hashes it.

Bug: skia:10165
Bug: b/154848688

Change-Id: I016250bf700b522c7a6bc78cf1844abff2260c35
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284805
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-04-24 19:53:21 +00:00
Greg Daniel
d59a91df4d Rename GrSpirv* files to GrSPIRV.
Change-Id: I4a4fc5dbdf6bba78e6ba5d60478b3e109b685a67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285098
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-24 19:24:10 +00:00
Herb Derby
553deb66e4 fix crbug 1073670
When drawing a path with effects, the deviceMatrix must not be modified.

* added GM for regression checking

Bug: chromium:1073670

Change-Id: Id75d6f00aa50d891ec807f10be72c0068ec80356
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285387
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-04-24 18:59:20 +00:00
Mike Klein
246d29ab89 skx matches hsw now
I can only think that maybe Clang used to generate vrcp14ps,
we added those numbers, and now they went back to vrcpps and
the old precision?  Or maybe we wrote the old numbers against
zmm registers and vrcp14ps, but for ymm we get vrcpps?

Change-Id: I46e8b3ec226902c3337069212228f1709f0cf0b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285449
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2020-04-24 17:53:50 +00:00
Leon Scroggins III
63cfb3638c Reland "Move SkFrontBufferedStream into Android-only dir"
This reverts commit b25f30348b.

Bug: skia:10154

Original message:
> Add client_utils for code that is specifically for a single client.
> Move SkFrontBufferedStream into its android/ subdir. Rename the class
> to android::skia::FrontBufferedStream. Temporarily leave in
> SkFrontBufferedStream until Android updates to the new API.
>
> Add a new optional target for client_utils/android. It is built in dev
> builds for testing, and when building for the Android framework.

Deliberately do not include client_utils in Google3, since the whole
point is to only include where necessary.

Change-Id: I48938c56aabb98e1ed820240d43ffcd0fdce7956
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285104
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-04-24 17:36:30 +00:00
Greg Daniel
23da19863e Make compiling the amd vulkan memory allocator optional.
Change-Id: I79b9f78b52f215076a371cbd0ff057d61dd855f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285380
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-24 17:21:30 +00:00
Mike Klein
6a2729ce0a stack hint
Use the stack size from the first call to jit()
to minimize stack frame for second call to jit().

Change-Id: Icec42760fe13d90f8e3ced270ad94c754e58b385
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285446
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 17:17:21 +00:00
Florin Malita
ec403606f2 Fix skottie2movie build
... after https://skia-review.googlesource.com/c/skia/+/285378

(uses the *encoder* component, not the decoder)

TBR=

Change-Id: Icfd48c6f37284e5f3bb8b5d50810ca4d15e3326a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285383
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-04-24 16:50:40 +00:00
Jim Van Verth
6b1aabd4d1 Fix minor issue in D3D MSAA rendertarget setup
Bug: skia:9935
Change-Id: Iae72935c9835a02996b493ad32a79db7c1237902
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284932
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-04-24 15:57:50 +00:00
Florin Malita
123e3b893f [skottie/tools] Video playback support
Implement a VideoAsset wrapper, used for Skottie video layers.  This
requires a non-testlib build target for SkVideoDecoder, hence a
dedicated BUILD.gn.

Add software conversion fallback for SkVideoDecoder, using libswscale.

Change-Id: I80dd555a1241081e50ee4834b64ad3518948a0f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285378
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-04-24 15:56:50 +00:00
Mike Klein
51d35ed972 add SKX opts
Add an SkOpts slice for SKX, a.k.a. Skylake Xeon, a.k.a. skylake-avx512,
a.k.a. AVX-512 F+CD+BW+DQ+VL.

I've tried to do this a little differently than usual to see if we can
avoid special compiler flags, instead enabling the features we want from
inside the SkOpts_skx.cpp source file.  This is the approach we take in
skcms and that seems to be working fine.

Where we previously checked for AVX-512F before, now check more
carefully for the full SKX feature set, and rename things "SKX" to match.

To start, build raster pipeline stages and SkVM interpreter.

With interesting workarounds for,
   - clang-cl immintrin.h
   - build error with clamp() in ix_and_ptr() I don't understand

Change-Id: Ifb10da2c6b472567310d42b03893100577164df5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285343
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 15:35:50 +00:00
Chris Dalton
7f0b8973e9 Add CPU benchmarks for individual methods on GrTessellatePathOp
Change-Id: Ica5d3229fc602d17cf568a25742612c94b87ae9e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285215
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-04-24 15:23:41 +00:00
Herb Derby
8b0cfa8de9 condense stack usage
Only use a stack slot when spilled being careful to track hoised
slot data between vector and scalar code generation.

TODO:
Come up with a strategy to change the constant on the initial
subtrack from SP to reduce size.

Change-Id: Icf38ad33c7026dac065d51547db827b1516f2504
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285107
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-04-24 14:56:26 +00:00
Mike Klein
d5cba9d000 add SkColorSpace param to SkPixmap::erase()
We don't have a way to erase with a non-sRGB color.

Update the P3 gm to test this, removing the SkBitmap erase case where
there's no option for even an SkColor4f, let alone non-sRGB.  I'm not
sure it's really important to have one when we've got this on pixmap.

Updated release notes.

Change-Id: Ie98270d3f83e041593b4c6b2da8e325b36d4ff18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285341
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-04-24 14:20:54 +00:00
Chinmay Garde
13b6cf697f Ensure correct SkSurfce::MakeFromCAMetalLayer availability.
CAMetalLayer is available on iOS versions above 8.0. However, when using the
simulator, this version is bumped up to 13.0. This is done via a separate header
altogether and there is no provision to specify simulator versions in
API_AVAILABLE. SK_API_AVAILABLE_CA_METAL_LAYER must be used to signal correct
API availability in all versions of iOS including simulators.

Change-Id: I628e3062fd9531869400dc8a29d42f96afb11d82
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284988
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: Chinmay Garde <chinmaygarde@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-04-24 14:15:54 +00:00
skia-recreate-skps
1e21d14f2b Update Go Deps
Change-Id: I7f6ad14d8b817c3a5cd9adaa71d2746585b421f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285348
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-04-24 14:06:14 +00:00
Mike Klein
974fcc5be5 rework constants
Splat instructions no longer do anything at runtime;
instead we make sure at compile time the constant will be available.

Then when we want to find a given value we look for registers, splats,
and stack values, creating an x86 Operand or loading it into a Reg as
needed.  Constants are already in-memory, they're no-ops to spill.

This lets us simplify and delete lots of code, and we now only call
optimize() once for all backends, so it's a big deal for overhead.

Change-Id: I78a54feaf8b18be26efe73dffda903a7a9e31daa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285153
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 13:23:15 +00:00
Mike Klein
48c51bb51e test vcmpeqps with label offset
We're getting this wrong today, and likely also these several
other instructions.  We need to account for the immediate byte
that follows the ip-relative offset!

Add imm_byte_after_operand() to take care of this.

Change-Id: If0f4359b0a8e9d769bfde0d8456726e82f798123
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285237
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 13:22:45 +00:00
Florin Malita
8b70f4d052 [skottie] Video layer support
Bodymovin exports video layers similar to image layers, but assigns a
dedicated type id.

Since Skottie's ImageAsset interface already supports multi-frame
images, we can reuse the same mechanism for video.

Also, since we're adding sparse layer type handlers, we can now
fill all known Lottie layer enums and simplify the handling of camera
layers.

Change-Id: Ide6c6b3566d48f90f36f0143eaea7c62bbdedb2c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285106
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-04-24 12:28:05 +00:00