Commit Graph

42224 Commits

Author SHA1 Message Date
Greg Daniel
84ea04949c Reland "Remove support for copyAsDraw in gpu copySurface."
This reverts commit c5167c053b.

Reason for revert: fixed

Original change's description:
> Revert "Remove support for copyAsDraw in gpu copySurface."
>
> This reverts commit 6565506463.
>
> Reason for revert: seems to break things?
>
> Original change's description:
> > Remove support for copyAsDraw in gpu copySurface.
> >
> > The major changes on a higher lever are:
> > 1) The majority of all copies now go through GrSurfaceProxy::Copy which
> > takes in a proxy and returns a new one with the data copied to it. This
> > is the most common use case within Ganesh.
> >
> > 2) The backend copy calls no longer do draws, require origins to be the
> > same, and won't do any swizzling or adjustment of subrects. They are
> > all implemented to be dumb copy this data to this other spot.
> >
> > 3) The GrSurfaceContext copy call has now been moved to priv and renamed
> > copyNoDraw, and a new priv copyAsDraw was added to GrRenderTargetContext.
> >
> > 4) WritePixels and ReplaceRenderTarget both need to specifiy the destination
> > of copies. They are the only users (besides the GrSurfaceProxy::Copy) which
> > call the priv methods on GrSurfaceContext.
> >
> > Change-Id: Iaf1eb3a73ccaf39a75af77e281dae594f809186f
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217459
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
>
> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com
>
> Change-Id: Id43aa8aa1451e794342e930441d9975b90e6b59f
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218549
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

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

Change-Id: I1a96f85ae2ff7622a6b57406755d478e7fbcf56e
No-Presubmit: true
No-Tree-Checks: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218797
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-06-06 13:56:31 +00:00
Florin Malita
711f39fb45 [skottie] Add support for RangeSelector shapes
Introduce square/ramp/triangle/round/smooth shape generators,
and use them to seed the range selector coverage pipeline.

Change-Id: Ib7b94ceecd2ccf66820f4dd2443fdd62e2ac6a1b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218828
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-06-06 13:51:11 +00:00
Ben Wagner
a797cc9260 Fix GrBackendRenderTarget and GrBackendTexture operator=
Only check that the backends are different if both 'this' and 'that'
are valid.

Change-Id: I0b5701281c6b3fb7584b2d8bda3a78552d4ff99e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218979
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-06-06 12:47:05 +00:00
Robert Phillips
93d0146dc6 Experimental: Add R_16 and RG_1616 to Ganesh
This is to support the P016 and P010 YUV formats. Initially, only Vulkan and GL support these formats.

Change-Id: Ie9609e59c12528079f8d379359ddb9bac85b6a29
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218546
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-06-06 11:57:14 +00:00
skia-autoroll
c5fae22bce Roll third_party/externals/angle2 3c219171135d..b91f87b6ce1c (6 commits)
3c21917113..b91f87b6ce


git log 3c219171135d..b91f87b6ce1c --date=short --no-merges --format='%ad %ae %s'
2019-06-05 dongja@google.com Vulkan: enable OES_element_index_uint for Vulkan
2019-06-05 jmadill@chromium.org Vulkan: Minor cleanup to UtilsVk.
2019-06-05 geofflang@chromium.org Don't request backend version in the sample application.
2019-06-05 syoussefi@chromium.org Vulkan: add GLSL placeholder for transform feedback output
2019-06-05 syoussefi@chromium.org Remove unused bindGenericBuffer from TransformFeedback*
2019-06-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src a549bb817523..2f4a8dfd3a59 (2 commits)


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

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

Change-Id: I0de53a06e27c18b2977578e7382085417a406bae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218921
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-06 05:53:02 +00:00
skia-autoroll
f9515b7b1e Roll ../src 72cb69b7908e..5f60135c7766 (425 commits)
72cb69b790..5f60135c77


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

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

Change-Id: Ibe524f4571628b06579e3f97613fcbf31c23fbf1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218922
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-06 04:41:42 +00:00
skia-autoroll
a5de1e311e Roll third_party/externals/swiftshader 5b424e69101a..5c9e165bc4d5 (1 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/5b424e69101a..5c9e165bc4d5


git log 5b424e69101a..5c9e165bc4d5 --date=short --no-merges --format='%ad %ae %s'
2019-06-05 chrisforbes@google.com Remove residue of texcoord replacement


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

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

Change-Id: I3c8f1487e036149bb44bb75ea794a5b6d0e212ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218920
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-06 04:36:32 +00:00
Ben Wagner
642178396b Use DirectWrite for default font.
This avoids the problematic use of SystemParametersInfoW when
better fallback is available.

Bug: chromium:969107,chromium:963636
Change-Id: Idaa1526f3307cd3dbe61a5ca02a40dc1b0ac5e07
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217944
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-06-06 00:28:09 +00:00
recipe-roller
20bcbacf5b 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/6e79d3e9d3b185a31cb4720498b13677f73378a6 Revert "[isolated] Roll client" (joshuaseaton@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I8a57a5cbc9a899c03716d0c54a1a8f4fdc9c178b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218824
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-05 23:30:44 +00:00
Michael Ludwig
0f809020ec Add GrQuadUtils namespace to hold ResolveAAType function
Change-Id: I6357af83b55be8efa8dfd709acde908296c05f82
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/216605
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-06-05 23:06:02 +00:00
recipe-roller
fc33e01353 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/5e72c468299a968684d6d458536719dc41085faf [buildbucket] Field mask in schedule requests (nodir@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I589740310f8c85d00ee73e185f318bc78890d9fd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218819
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-05 22:42:33 +00:00
Mike Klein
6b43c30cd7 add mad_unorm8 instruction
At some point adding more and more complex instructions reduces
to the absurdity of SolveTheWholeProblem-The-Instruction, but
I think this one will come up often enough to still make sense.
mad() makes sense for unorm8 just about everywhere mad() makes
sense for f32.

This instruction won't matter to a JIT, but helps the interpreter.

Change-Id: Iace92296cffbb6fbc3acd1f853cb01c51792f796
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218716
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-06-05 20:46:02 +00:00
Mike Klein
e4227613e7 use u32 in mul_unorm8
This lets the compiler know the /256 can be >>8 like we'd want it to be.
At head the compiler does a signed divide using two shifts and an add.

Before:
 49b:   49 c1 e1 07                     shl    $0x7,%r9
 49f:   48 c1 e0 07                     shl    $0x7,%rax
 4a3:   c5 fd 6f 04 01                  vmovdqa (%rcx,%rax,1),%ymm0
 4a8:   c4 a2 7d 40 04 09               vpmulld (%rcx,%r9,1),%ymm0,%ymm0
 4ae:   c5 fd 6f 4c 01 20               vmovdqa 0x20(%rcx,%rax,1),%ymm1
 4b4:   c4 a2 75 40 4c 09 20            vpmulld 0x20(%rcx,%r9,1),%ymm1,%ymm1
 4bb:   c5 fd 6f 54 01 40               vmovdqa 0x40(%rcx,%rax,1),%ymm2
 4c1:   c4 a2 6d 40 54 09 40            vpmulld 0x40(%rcx,%r9,1),%ymm2,%ymm2
 4c8:   c5 fd 6f 5c 01 60               vmovdqa 0x60(%rcx,%rax,1),%ymm3
 4ce:   c4 a2 65 40 5c 09 60            vpmulld 0x60(%rcx,%r9,1),%ymm3,%ymm3
 4d5:   c4 e2 7d 58 25 00 00 00 00      vpbroadcastd 0x0(%rip),%ymm4        # 255
 4de:   c5 e5 fe dc                     vpaddd %ymm4,%ymm3,%ymm3
 4e2:   c5 ed fe d4                     vpaddd %ymm4,%ymm2,%ymm2
 4e6:   c5 f5 fe cc                     vpaddd %ymm4,%ymm1,%ymm1
 4ea:   c5 fd fe c4                     vpaddd %ymm4,%ymm0,%ymm0
 4ee:   c5 dd 72 e0 1f                  vpsrad $0x1f,%ymm0,%ymm4
 4f3:   c5 dd 72 d4 18                  vpsrld $0x18,%ymm4,%ymm4
 4f8:   c5 fd fe c4                     vpaddd %ymm4,%ymm0,%ymm0
 4fc:   c5 fd 72 e0 08                  vpsrad $0x8,%ymm0,%ymm0
 501:   c5 dd 72 e1 1f                  vpsrad $0x1f,%ymm1,%ymm4
 506:   c5 dd 72 d4 18                  vpsrld $0x18,%ymm4,%ymm4
 50b:   c5 f5 fe cc                     vpaddd %ymm4,%ymm1,%ymm1
 50f:   c5 f5 72 e1 08                  vpsrad $0x8,%ymm1,%ymm1
 514:   c5 dd 72 e2 1f                  vpsrad $0x1f,%ymm2,%ymm4
 519:   c5 dd 72 d4 18                  vpsrld $0x18,%ymm4,%ymm4
 51e:   c5 ed fe d4                     vpaddd %ymm4,%ymm2,%ymm2
 522:   c5 ed 72 e2 08                  vpsrad $0x8,%ymm2,%ymm2
 527:   c5 dd 72 e3 1f                  vpsrad $0x1f,%ymm3,%ymm4
 52c:   c5 dd 72 d4 18                  vpsrld $0x18,%ymm4,%ymm4
 531:   c5 e5 fe dc                     vpaddd %ymm4,%ymm3,%ymm3
 535:   c5 e5 72 e3 08                  vpsrad $0x8,%ymm3,%ymm3
 53a:   e9 71 02 00 00                  jmpq   7b0

After:
 49b:   49 c1 e1 07                     shl    $0x7,%r9
 49f:   48 c1 e0 07                     shl    $0x7,%rax
 4a3:   c5 fd 6f 04 01                  vmovdqa (%rcx,%rax,1),%ymm0
 4a8:   c4 a2 7d 40 04 09               vpmulld (%rcx,%r9,1),%ymm0,%ymm0
 4ae:   c5 fd 6f 4c 01 20               vmovdqa 0x20(%rcx,%rax,1),%ymm1
 4b4:   c4 a2 75 40 4c 09 20            vpmulld 0x20(%rcx,%r9,1),%ymm1,%ymm1
 4bb:   c5 fd 6f 54 01 40               vmovdqa 0x40(%rcx,%rax,1),%ymm2
 4c1:   c4 a2 6d 40 54 09 40            vpmulld 0x40(%rcx,%r9,1),%ymm2,%ymm2
 4c8:   c5 fd 6f 5c 01 60               vmovdqa 0x60(%rcx,%rax,1),%ymm3
 4ce:   c4 a2 65 40 5c 09 60            vpmulld 0x60(%rcx,%r9,1),%ymm3,%ymm3
 4d5:   c4 e2 7d 58 25 00 00 00 00      vpbroadcastd 0x0(%rip),%ymm4        # 255
 4de:   c5 e5 fe dc                     vpaddd %ymm4,%ymm3,%ymm3
 4e2:   c5 ed fe d4                     vpaddd %ymm4,%ymm2,%ymm2
 4e6:   c5 f5 fe cc                     vpaddd %ymm4,%ymm1,%ymm1
 4ea:   c5 fd fe c4                     vpaddd %ymm4,%ymm0,%ymm0
 4ee:   c5 fd 72 d0 08                  vpsrld $0x8,%ymm0,%ymm0
 4f3:   c5 f5 72 d1 08                  vpsrld $0x8,%ymm1,%ymm1
 4f8:   c5 ed 72 d2 08                  vpsrld $0x8,%ymm2,%ymm2
 4fd:   c5 e5 72 d3 08                  vpsrld $0x8,%ymm3,%ymm3
 502:   e9 79 02 00 00                  jmpq   780

Change-Id: If38f59aeb3c37aba365e647cda1a753819a16aa8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218613
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-06-05 20:37:44 +00:00
Mike Klein
f1df3979c6 tidy up register allocation
- stack allocate up to 16 registers (up to 2KB)
   - align the heap fallback without loop
   - assert the heap fallback is aligned

Change-Id: I8d314c29967731a78aeceea179adfc40694f0606
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218601
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-06-05 20:28:42 +00:00
recipe-roller
e0d90c84e4 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/affd410d415a1bb443b695b673e8175c3f0bcd4c gclient: Report only the origin to metrics collection. (ehmaldonado@chromium.org)
  https://crrev.com/822dbc51a298688c61e4dd8c40fbc714e1460663 Reland "gclient: Require a target ref when applying patches." (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ibbbf77de568a77a1e6768b6bd09d1accb72ef54a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218605
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-05 18:49:08 +00:00
Chris Dalton
5b5403e75b ccpr: Preserve fill rules for cached paths
Fixes a bug where even-odd fill rule was not being preserved on paths
that were reused from a stashed fp16 coverage count atlas.

Bug: skia:8782
Change-Id: I6698498a6f4c8df8eff10b19beb80e49663a577c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218047
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-06-05 18:24:08 +00:00
recipe-roller
928b2997b3 Roll recipe dependencies (nontrivial).
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).


Please review the expectation changes, and LGTM+CQ.


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/075cb05bdeb5eb7f42cf259a5a40eebf54dc21dd tryserver: add a 10 minute timeout on fetching CL info from gerrit. (jbudorick@chromium.org)


R=stephana@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I35bba11e42d94b1f91735ee503331f7b60153ab3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218540
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Reviewed-by: Eric Boren <borenet@google.com>
2019-06-05 18:04:47 +00:00
Greg Daniel
c5167c053b Revert "Remove support for copyAsDraw in gpu copySurface."
This reverts commit 6565506463.

Reason for revert: seems to break things?

Original change's description:
> Remove support for copyAsDraw in gpu copySurface.
> 
> The major changes on a higher lever are:
> 1) The majority of all copies now go through GrSurfaceProxy::Copy which
> takes in a proxy and returns a new one with the data copied to it. This
> is the most common use case within Ganesh.
> 
> 2) The backend copy calls no longer do draws, require origins to be the
> same, and won't do any swizzling or adjustment of subrects. They are
> all implemented to be dumb copy this data to this other spot.
> 
> 3) The GrSurfaceContext copy call has now been moved to priv and renamed
> copyNoDraw, and a new priv copyAsDraw was added to GrRenderTargetContext.
> 
> 4) WritePixels and ReplaceRenderTarget both need to specifiy the destination
> of copies. They are the only users (besides the GrSurfaceProxy::Copy) which
> call the priv methods on GrSurfaceContext.
> 
> Change-Id: Iaf1eb3a73ccaf39a75af77e281dae594f809186f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217459
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

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

Change-Id: Id43aa8aa1451e794342e930441d9975b90e6b59f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218549
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-06-05 17:37:11 +00:00
Brian Salomon
d1bc240f15 Use 1e-4 rather than 1e-5 as "nonZeroAlpha" in various shader code.
1e-5 may be zero in fp16.


Bug: skia:9099
Change-Id: I28a518f5cf1aa7926f7422625c0f14ed1a082809
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218558
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-06-05 17:15:04 +00:00
Greg Daniel
6565506463 Remove support for copyAsDraw in gpu copySurface.
The major changes on a higher lever are:
1) The majority of all copies now go through GrSurfaceProxy::Copy which
takes in a proxy and returns a new one with the data copied to it. This
is the most common use case within Ganesh.

2) The backend copy calls no longer do draws, require origins to be the
same, and won't do any swizzling or adjustment of subrects. They are
all implemented to be dumb copy this data to this other spot.

3) The GrSurfaceContext copy call has now been moved to priv and renamed
copyNoDraw, and a new priv copyAsDraw was added to GrRenderTargetContext.

4) WritePixels and ReplaceRenderTarget both need to specifiy the destination
of copies. They are the only users (besides the GrSurfaceProxy::Copy) which
call the priv methods on GrSurfaceContext.

Change-Id: Iaf1eb3a73ccaf39a75af77e281dae594f809186f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217459
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-06-05 17:04:31 +00:00
Mike Klein
754bad3f38 hoist loop-invariant code out of the loop
I'm of two minds about this... it adds register pressure and really only
tends to hoist few instructions that are fairly cheap anway.  On the
other hand, it's neat, it's easy to turn off (just set the initial
hoist value to false in Builder::push()) and it does deliver a
noticeable though slight performance improvement in the interpreter.

I think the final decision will probably come down to what we think
about maintainability?

Change-Id: Idd6346f70f03188917918406731154246a7c6fcb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218584
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-05 16:31:41 +00:00
Greg Daniel
4d74f605d7 Make feature structs on GrVkBackendContext const.
Change-Id: I6655c2458a4a9b007cb3d5e100f5368697a0f6bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218547
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-06-05 15:56:00 +00:00
Hal Canary
27a7431b81 SkPDF: clean up image shader code
simplify dedup key

Change-Id: I0fd2a7357130c73dbfa799ade0ff443b74d72993
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218542
Auto-Submit: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-06-05 15:55:10 +00:00
Brian Salomon
68ba117a6f GrShaderCaps always stores config texture swizzles.
Previously the swizzles were all "rgba" when GL texture swizzle was
used. This made it impossible to know the component mapping in that
case from API-neutral code.

Change-Id: I5e55fec87f0de2f8d43d8dc7759125482fccd91c
Bug: skia:8962
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218280
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-06-05 15:42:30 +00:00
Brian Osman
6386efa1dd Remove unused "DropsTileOnZeroDivide" caps bit
Change-Id: I545d75a5b95833c6a78f225769ea30656700f785
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218543
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-06-05 15:38:07 +00:00
Brian Osman
95253bd0ac Fix SkSL standalone compile errors
With clang-cl, at least, I need these changes to build with
skia_compile_processors = true

Change-Id: I9221355f135ee66af0b172ce7ac56e4ea077214e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218539
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-05 14:57:01 +00:00
Michael Ludwig
de4c58cbac Combine GrPerspQuad and GrQuad
Also moves GrQuadType to an inner enum of GrQuad as GrQuad::Type.
Renames some of the types for improved clarity (IMO)

Change-Id: I2c91d60374d2b7c414034e9fe0b0113a794bd610
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/216604
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-06-05 14:42:21 +00:00
Greg Daniel
6eb8c24009 Move readSurfacePixels and writePixelSurface into GrSurfaceContext.
Change-Id: I22770826e973a0e4c881bc74bcb3793c604887c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218193
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-06-05 14:34:04 +00:00
Mike Klein
c2d9a3145b Revert "print 1/K floats as fractions"
This reverts commit 346f82c1c3.

Reason for revert: *SAN bots

Original change's description:
> print 1/K floats as fractions
> 
> Change-Id: Id00cbd0950e77debb5ab5d45541dc0f8d13a3c42
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218338
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

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

Change-Id: Ic35cec97d2dc2c1e19dbdf8ea7b505ad75072da1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218529
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-05 14:12:26 +00:00
Robert Phillips
c70ed90f59 Revise GrDataUtils to be more self-contained
This makes the GL and Vk backends share more code and sets up for the Metal implementation.

Change-Id: Idcc434f54bcfd1ef5963abe85cadbd807783299c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217956
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-06-05 13:58:35 +00:00
Jim Van Verth
90ef39f806 Add GrCFResource::reset() to allow Chrome to transition to sk_cf_obj.
Chrome is using operator= to set the Metal texture resource, but
sk_cf_obj doesn't support that for the bare object. This will allow
me to transition them to reset() instead.

Change-Id: Iadfb9624fac2ee6292e3d3f16057a19c683923e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218537
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-06-05 13:55:05 +00:00
Brian Salomon
e2826ab59c Add API to invalidate GL texture parameters from GrBackendTexture.
This is modeled on how we coordinate VkImage layout changes between
GrContext and clients.

A type GrGLTextureParameters is used to track the current parameter
state.

When a client creates a GrBackendTexture in order to wrap a resource
they created a new GrGLTextureParameters is created and the wrapped
GrGLTexture will share ownership.

When GrContext creates a non-wrapped GrGLTexture, the GrGLTexture
creates a new GrGLTextureParameters and any GrBackendTextures created
from that GrGLTexture will share ownership.

Clients indicate parameter changes by calling
GrBackendTexture::glTextureParametersModified().

We still assume all texture parameters may have changed after a call
to GrContext::resetContext() (for now). The "timestamp" that is used
to implement this has been moved from GrGpu to GrGLGpu as there were
no other use cases.

Change-Id: Ic24e00488fad254a29d5eec6890278b67df6efae
Bug: skia:7966
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217385
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-06-05 13:50:25 +00:00
skia-autoroll
9893f8e151 Roll third_party/externals/angle2 2dd40a44d1a6..3c219171135d (5 commits)
2dd40a44d1..3c21917113


git log 2dd40a44d1a6..3c219171135d --date=short --no-merges --format='%ad %ae %s'
2019-06-05 spang@chromium.org Add ARM vendor id
2019-06-04 jmadill@chromium.org Vulkan: Store array buffer conversions in BufferVk.
2019-06-04 jonahr@google.com Rename EGL_ANGLE_workaround_control to EGL_ANGLE_feature_control.
2019-06-04 syoussefi@chromium.org Vulkan: Process dirty framebuffers first
2019-06-04 syoussefi@chromium.org Vulkan: Rename Resolve* shaders to BlitResolve


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

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

Change-Id: Ic0c634bfa5433b630ebcd51897831d27762f7331
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218463
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-05 05:51:56 +00:00
skia-autoroll
7e2c3cdbb2 Roll ../src ce989eacabd7..72cb69b7908e (348 commits)
ce989eacab..72cb69b790


Created with:
  gclient setdep -r ../src@72cb69b790

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

Change-Id: I99bf926dadd6e3b73797b907522afdcd6e050d09
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218464
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-05 04:54:56 +00:00
skia-autoroll
57bc74b619 Roll third_party/externals/swiftshader 79d4ac9ab695..5b424e69101a (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/79d4ac9ab695..5b424e69101a


git log 79d4ac9ab695..5b424e69101a --date=short --no-merges --format='%ad %ae %s'
2019-06-04 sugoi@google.com Revert Chromium vulkan unit test build for now
2019-06-04 sugoi@google.com Build fix for MacOS and Fuchsia


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

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

Change-Id: I6e239f3d5086d943240bc5768e6dcfadd66a5447
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218462
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-06-05 04:32:16 +00:00
recipe-roller
89fc1db4e8 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/7bd3deb9c112801932856d8f18edddd62dffa9cf [isolated] Roll client (joshuaseaton@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7c1104fb64a1031b22b22b7f709abd4386780b76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218224
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-05 00:52:04 +00:00
recipe-roller
bb365e2c53 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/b70069b5465136f8634c5694b714b1b4421276f5 Remove swarming_task from StepData. (karenqian@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ia7a5ee39ce96b4d2316be90aaf362a93c633b88c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218339
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-04 23:52:32 +00:00
Mike Klein
346f82c1c3 print 1/K floats as fractions
Change-Id: Id00cbd0950e77debb5ab5d45541dc0f8d13a3c42
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218338
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-04 21:11:22 +00:00
Mike Klein
eb1fe8fb54 move peepholes where they're relevant
Much easier to reason about in each method.
And extend extract->shr special case to any right shift.

Change-Id: If6af83cf07b2c300cf47816c4c15d717e4d49a8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218337
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-06-04 20:56:12 +00:00
Florin Malita
1c44db15d1 [skottie] Initial text range selector support
Each animator can have multiple range selectors, whose combined "coverage"
modulates how the animator props compose with other/initial props.

Since there can be multiple animators with different/arbitrary selectors,
we compute independent property values for each fragment.

Supported features:

 - start, end, offset, amount
 - units: percentage, index
 - based-on: characters-only for now
 - mode: add-only for now
 - shape: square-only for now

Change-Id: If7fee46ffb29e1f92542822481ed699fd0b0b521
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218076
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-06-04 20:50:32 +00:00
Mike Klein
771633190e print SKVM test failures
Can sometimes be hard to know what's going on
on the bots without a little bit more debug help.

Change-Id: Ie556a8de88349170e9d9e44c16098223442838a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218316
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-04 20:33:42 +00:00
Mike Klein
cf0daac980 allow two immediates
This lets us move the calculation of extract's shift up to Builder time.

Most immediates live in y.imm now, with extract using both y.imm (mask)
and z.imm (shift), and pack using z.imm for its shift because it needs
both x and y regs.

Change-Id: I0081382f4d4c02198cae5819294b3adeea7341bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218249
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-06-04 20:18:12 +00:00
Robert Phillips
4bdd36f625 Make color initialization version of createBackendTexture public
Mechanical.

Change-Id: I48be78a12684fc5243ee509e391984daa190fb7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218182
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-06-04 20:12:22 +00:00
Mike Klein
a4bb020636 add SkVMBuilders.* to DM deps in G3
Needed since https://skia-review.googlesource.com/c/skia/+/218041

Change-Id: I914c22e62d96b423041e4810a41b892789030510
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218336
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
2019-06-04 18:42:23 +00:00
Michael Ludwig
d17e05aeda Extract GrQuadList into separate header
Change-Id: I152ea5a40c4cc65ef5250ca575622a25cf6d1d2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/216603
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-06-04 18:08:06 +00:00
Eric Boren
6fed6d320b [infra] Fixes for chrome_release_branch
Change-Id: I5bccb29582f894c982de78e41fd5dbf3888b9be1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218190
Commit-Queue: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
2019-06-04 17:41:50 +00:00
Mike Klein
3c00d3d379 dump register and instruction count
Change-Id: Ib0d4f354787e413749fdda8b59ccc2f94472b0ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218243
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-04 17:27:29 +00:00
Mike Klein
9656dcedc2 add extract instruction
Kind of the flip side of pack.

Made slightly awkward by instructions having only one immediate...
calling _BitScanForward / __builtin_ctz() at runtime seems to work
fine, but it really could have been done at compile time.

Change-Id: Ic83fe8e0a1603fb9189598dcc26c842cc797bf45
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218241
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-06-04 17:23:49 +00:00
Mike Klein
1665aaa5fd add pack instruction
This instruction can lower to some useful SSE/NEON
instructions, and even if not, is a handy way to
express the frequent paring of << and |.

I32_SWAR:  2.3 -> 1.9
I32:       2.6 -> 2.4
F32:       5.1 -> 4.7

Change-Id: Ia169ad40f0aaef32417e05d9bf91c2d2542e7b5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218238
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-06-04 17:14:49 +00:00
recipe-roller
87e0147b85 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/2c48f24c7f88f2f09821db492e8cc9a4361ded58 git-cl: Report presubmit execution time. (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I1ca5787680c24b318f7b1de7e541d1662009462b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218189
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-04 17:04:19 +00:00