Commit Graph

58176 Commits

Author SHA1 Message Date
Herb Derby
8516c0dce4 update LLVM in SkVM
The code was original target for LLVM 10. I have updated it
to use LLVM 14. This does not fully complete the LLVM code because
there are still missing ops: array32, from_fp16, to_fp16,
load64, store64, load128, store128.

args.gn:
extra_cflags = [
    "-DSKVM_LLVM",
    "-isystem",
    "../llvm-project/include",
]

extra_ldflags = [
    "-L../llvm-project/lib",
    "-lLLVM",
]

Running:
env DYLD_LIBRARY_PATH=/Users/herb/bin/llvm/lib ./out/SkVM-LLVM/dm

Change-Id: I79e3d3d62b29ed8bdad22890d4db5bc160ba4bf6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/460316
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-11-01 20:14:53 +00:00
Chris Dalton
784b7b7ab5 Remove recursion from PathWedgeTessellator chopping
Rather that recursively running Wang's formula and chopping, we run
Wang's once, divide by the maximum number of tessellation segments,
then chop in a flat loop. The next step will be to share this code
with other tessellators.

Bug: skia:12524
Change-Id: I6c5156f56885aee9f90b3be611fbef229740612d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465362
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-11-01 19:15:24 +00:00
Brian Osman
ccb459d57b Move alpha modulation into paint conversion (Step 2)
With paint conversion changed, this CL cleans up several SkShader
classes, based on the fact that input alpha will always be opaque.

Bug: skia:11942
Change-Id: I91c919a69b6dfe4fea40b799888dd6179defdd70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/463799
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-11-01 18:11:15 +00:00
Jorge Betancourt
172c7998e1 plumb experimental SkSL layer effect in native Skottie player
Long term plan is to expose a plugin (standalone or with bodymovin) that allows motion artists to write sksl into a composition.
This is the first step where we test how we'd read in the json data under the hood.

Change-Id: I300d3af5d01e12f5b495970f89fd12b5f464a9a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464368
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
2021-11-01 18:05:15 +00:00
Herb Derby
83e99569bd add constrained_add
This adds check to make sure that the results in the last
add of the lerp are in range. Also, Smooth out types.

Change-Id: I853835e530f6b6790e16464db12964d68ab9ef8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453718
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-11-01 17:30:16 +00:00
Kevin Lubick
afa657d6ab Move GR_MAKE_BITFIELD_OPS and GrAlignTo to non-GPU files
This is a more cautious attempt of https://skia-review.googlesource.com/c/skia/+/464876

GrAlignTo renamed to SkAlignTo and moved to SkTypes.h
(with the rest of our align helpers).

GR_MAKE_BITFIELD_OPS and GR_DECL_BITFIELD_OPS_FRIENDS
renamed to SK_* and moved to private/SkMacros.h

This avoids our public includes using a src header file
and messing with SkUtils.h, which apparently was used
by Android. That should be cleaned up in a separate effort.

Change-Id: I86d5e1fb6a7834034534266a6c340bc7757f9abb
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466176
Reviewed-by: Brian Osman <brianosman@google.com>
2021-11-01 17:26:59 +00:00
Herb Derby
c807847427 hoist Painter out of loop
All the fields of GrSubRunNoCachePainter are const, so
this can be hoisted out of the loop instead of creating
a new one each loop.

Change-Id: Ib430ad27f5ee1804316b1bf7737e9de80dc2f7b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465382
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-11-01 16:30:17 +00:00
John Stiles
81c86e8608 Fix fuzzer-discovered assertion with nonsense array sizes.
Change-Id: I7512491f55c10118f0ab058500f6ce9b5b8545cd
Bug: oss-fuzz:40557
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466296
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-11-01 15:26:14 +00:00
Herb Derby
ec98e205cd cleanup GrStrikeCache
Change-Id: Id4d9e105f7a1b7ff2cd3bfc9b20cd2309c6aca84
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465394
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-11-01 15:08:46 +00:00
Ben Wagner
8e37086c50 Remove SK_SURFACE_COPY_ON_WRITE_CRASHES
This flag is no longer needed, so remove it and the code it protected.

Change-Id: I679eb3cb4cee81c4205309012931e134e108f232
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465696
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-11-01 15:04:14 +00:00
Kevin Lubick
39eccabdc3 [infra] Add Release Test+AppleM1+Metal job
Change-Id: I98f8dcccf9ff1b13bb3d9fb05d3a0ded4fd225fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466107
Reviewed-by: John Stiles <johnstiles@google.com>
2021-11-01 12:53:26 +00:00
John Stiles
259ad78445 Remove unreferenced canCoerce method.
Change-Id: I87cc0e6d9dc60a0ceaf32c453d2278091ea3c5e5
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465393
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-11-01 12:52:23 +00:00
skia-autoroll
2d76d7760f Roll ANGLE from bae19e0626f1 to 5a0e6c1e8589 (14 revisions)
bae19e0626..5a0e6c1e85

2021-10-30 syoussefi@chromium.org Suppress failing test
2021-10-30 timvp@google.com Revert "Vulkan: Don't expose MSRTT on SwiftShader"
2021-10-30 kpiddington@apple.com Merge Webkit up to Oct 27 2021
2021-10-29 timvp@google.com Android: Add back third_party/ to AOSP
2021-10-29 jmadill@chromium.org Vulkan: Implement robust shader outputs.
2021-10-29 timvp@google.com Vulkan: Only add samplable formats to outCompressedTextureFormats
2021-10-29 gman@chromium.org Fix Blitting in Metal backend.
2021-10-29 jmadill@chromium.org translator: Always report gl_FragData array size.
2021-10-29 lubosz.sarnecki@collabora.com DisplayVkAndroid: Always expose EGL_RECORDABLE_ANDROID.
2021-10-29 syoussefi@chromium.org Vulkan: Don't expose MSRTT on SwiftShader
2021-10-29 penghuang@chromium.org vulkan: implement EGLDevice for vulkan backend
2021-10-29 syoussefi@chromium.org Vulkan: Remove MSRTT assertion in the presence of OOM
2021-10-29 lubosz.sarnecki@collabora.com capture_gles_3_2: Skip capturing debug calls
2021-10-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 367ea8143d4d to b8a060d71358 (521 revisions)

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 robertphillips@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/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
Tbr: robertphillips@google.com
Change-Id: Ic59278af286e350b5c93178a4e79188a5224f4e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466096
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-01 05:22:44 +00:00
skia-autoroll
6c1024bc25 Roll Chromium from fb2681cfd505 to 851a40fb4132 (548 revisions)
fb2681cfd5..851a40fb41

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 robertphillips@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/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
Tbr: robertphillips@google.com
Change-Id: Ifd7aa4ebe40b25d208f243deb90da365018f5db3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466097
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-01 04:50:19 +00:00
skia-autoroll
abbcc2cf1c Roll Dawn from 94d1678c6737 to b19556e907c5 (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/94d1678c6737..b19556e907c5

2021-10-29 lokokung@google.com Revert "Adds destroy handling for simple objects without new backend changes yet."
2021-10-29 enga@chromium.org Implement GPU-based validation for dispatchIndirect
2021-10-29 cwallez@chromium.org Remove the use_tint_generator toggle
2021-10-29 cwallez@chromium.org Infra: Use Python 3 for the Dawn recipe.

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: alanbaker@google.com
Change-Id: If8430dd224302efb37ecab840bd3d5ac54e8f37d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466098
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-01 04:41:19 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
88b36ad61e Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: I3f437e4e36e2533b8839546df30cbfe1727335b6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465901
Commit-Queue: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Bot-Commit: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-10-31 08:17:44 +00:00
skia-autoroll
30f1f34732 Roll SK Tool from 5820787cf885 to 8cba87bd1924
https://skia.googlesource.com/buildbot.git/+log/5820787cf885..8cba87bd1924

2021-10-31 skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com Update CIPD Packages

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

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Tbr: borenet@google.com
Change-Id: I6b62950b4eea5b51776d61cbbd586508dc194355
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465899
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-31 06:25:44 +00:00
Joe Gregorio
6ce94bbdef Add Wembley devices to tree.
Change-Id: Ic657319cf4f3ba2c3c23e2923cf121138d16dbf2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457397
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-30 19:07:14 +00:00
John Stiles
9b9805959d Reland "Add support for half-precision types in Metal."
This reverts commit 9d24b02c2f.

Reason for revert: needs premul/unpremul conversion fix (http://review.skia.org/465798)

Original change's description:
> Revert "Add support for half-precision types in Metal."
>
> This reverts commit d90e09b1ae.
>
> Reason for revert: MacMini failing CompressedBackendAllocationTest
>
> Original change's description:
> > Add support for half-precision types in Metal.
> >
> > This will hopefully improve performance on lower-end GPUs.
> >
> > Change-Id: I9c2ee6dc31acd08bec0bfb5f59edc3cf90163f9e
> > Bug: skia:12339
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465078
> > Auto-Submit: John Stiles <johnstiles@google.com>
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: John Stiles <johnstiles@google.com>
>
> Bug: skia:12339
> Change-Id: Ic5aa4bef454ca67f5ce26c600444d9565e0158cb
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465796
> Auto-Submit: Brian Osman <brianosman@google.com>
> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>

Bug: skia:12339
Change-Id: I53a8a6fef299da15d206d884ba7029820ffcff43
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465799
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-30 14:33:52 +00:00
John Stiles
3828b4160b Use full floats for premul/unpremul conversion.
In Metal on some GPUs, `test_for_preserving_PM_conversions` can fail
when half4s are used for premul conversion.

Change-Id: I95a737a88aa8f5a998e3201516900977d5223666
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465798
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-30 14:26:46 +00:00
Brian Osman
9d24b02c2f Revert "Add support for half-precision types in Metal."
This reverts commit d90e09b1ae.

Reason for revert: MacMini failing CompressedBackendAllocationTest

Original change's description:
> Add support for half-precision types in Metal.
>
> This will hopefully improve performance on lower-end GPUs.
>
> Change-Id: I9c2ee6dc31acd08bec0bfb5f59edc3cf90163f9e
> Bug: skia:12339
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465078
> Auto-Submit: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>

Bug: skia:12339
Change-Id: Ic5aa4bef454ca67f5ce26c600444d9565e0158cb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465796
Auto-Submit: Brian Osman <brianosman@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-10-29 23:04:09 +00:00
Robert Phillips
60e456ecbb [graphite] Partially connect Recorder, DrawBufferManager, DrawPass, and UniformCache.
Additionally, the default clip state was quick rejecting all the draws.

Bug: skia:12466
Change-Id: I8eaa95418bf24af2a5718c8cf21e97cdd7f80a34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465476
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-10-29 22:31:34 +00:00
Chris Dalton
6bb17ab48d Reland "Lift recursive curve culling out of tessellators"
This is a reland of 75e1f4c028

Original change's description:
> Lift recursive curve culling out of tessellators
>
> We need recursive chopping/culling logic in order to draw
> astronomically large paths. But rather than do that at the same time
> the tessellators chop curves, this CL moves that logic into an
> SkPath -> SkPath transformation that runs ahead of time (and only if
> the path is extremely large to begin with). This will enable us to
> remove recursion from the tessellators and quickly determine ahead of
> time the size of buffers they need.
>
> Bug: skia:12524
> Change-Id: Ib2800fb23054f1548501811203173e58273fbc83
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/463936
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>

Bug: skia:12524
Change-Id: Idf54f0c2bddaaddc9fc17bee99c910f3961682a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465361
Reviewed-by: Greg Daniel <egdaniel@google.com>
Auto-Submit: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-10-29 21:59:30 +00:00
John Stiles
d90e09b1ae Add support for half-precision types in Metal.
This will hopefully improve performance on lower-end GPUs.

Change-Id: I9c2ee6dc31acd08bec0bfb5f59edc3cf90163f9e
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465078
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-29 19:47:02 +00:00
John Stiles
ba9d5362e4 Detect and properly handle swizzles of out-of-range literal values.
Change-Id: Ic30c48dce0cb0072f07defcdb0b9e60b94f50818
Bug: oss-fuzz:40479
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465392
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-29 19:39:33 +00:00
John Stiles
9e682cf211 Add flag for 16-bit uniform support.
When the flag is disabled, everything works the same as before and all
uniforms are copied to buffers as 32-bit values. Enabling the flag will
cause shorts and halfs to be written to the uniform buffer as 16-bit
values (converting as needed).

Change-Id: I7e7c191f98b14b55a2587dc1499e8a6ff72f573c
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464920
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-29 18:35:54 +00:00
Greg Daniel
50add5af1a [graphite] Add support for synchronous surface readpixels
Bug: skia:12466
Change-Id: Ia0da94fc300ab678712e9bb79a011694fea8595e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464677
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-10-29 17:43:04 +00:00
John Stiles
1ea54a127f Disable tests on iPhone 6 that use too much memory.
The iPhone 6 only has 1GB of RAM. (The iPhone 7 and 8 have 2GB.)

Change-Id: I4efd00f21feb9c7b6e42d99936989573d26acef3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465390
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Erik Rose <erikrose@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Erik Rose <erikrose@google.com>
2021-10-29 16:12:35 +00:00
Brian Osman
379957e1f8 Reland "Move alpha modulation into paint conversion (Step 1)"
This is a reland of c77620c308

Original change's description:
> Move alpha modulation into paint conversion (Step 1)
>
> Skia has a rule that says (roughly), any SkShader is modulated by the
> paint alpha. The CPU backend implements this precisely - the entire
> shader sees the opaque paint color, and the alpha is applied once at
> the root. The GPU backend has previously made each SkShader responsible
> for doing this modulation. That led to two kinds of problems:
>
>   1) Some shaders forgot to do the modulation at all.
>   2) In shader trees, it's possible for the alpha to get applied
>      multiple times, or to child effects where it isn't desired.
>
> A consequence of #2 is that the GPU implementation of things like
> blend-shaders have to jump through hoops to invoke their children with
> opaque versions of their input colors.
>
> This CL allows us to remove the explicit alpha modulation from a variety
> of shaders, and should also cleanup of the blend shader logic. However,
> to get the CL past chrome's layout tests, we need to guard the change.
> So this version just makes the major change so paint conversion, in a
> way that will work universally. Once chrome switches to the new method,
> it will be safe to clean up the various shader implementations.
>
> Bug: skia:11942
> Change-Id: I518534becdd5d10cbd78cf3ff7d4a46dd1faabf9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464116
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

Cq-Do-Not-Cancel-Tryjobs: true
Bug: skia:11942
Change-Id: I3bf184932adbb425959b02d28af1e6b7f5d127d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464928
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-10-29 16:07:22 +00:00
Robert Phillips
527d127719 [graphite] Partially connect DrawPass, UniformCache and ProgramCache
Bug: skia:12466
Change-Id: Ib23a501664ebba581376fa0cb1ce5c6537e5d349
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465136
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-10-29 15:58:30 +00:00
Brian Osman
0dfb2d9679 When setting paint color/alpha, pin alpha to [0,1]
We used to just assert, but it turns out that Android has tests that
explicitly set out-of-range alpha values (and disable our asserts).

Bug: skia:11942
Bug: b/186543004
Change-Id: I167de7aba261ca3df579f9a0bddb0d90605e0094
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465381
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-10-29 15:57:53 +00:00
John Stiles
378e4aecfe Report int-literal overflow via cast-from-float.
The fuzzer discovered that SkSL could create an out-of-range int literal
by casting from a floating point literal. We were only doing range
checks when the starting literal was an integer. Since we now assert
when an out-of-range int literal is created (as of
http://review.skia.org/464124), the fuzzer can detect this error.

Change-Id: Ie66f60ddbe7b4fbe5b648c17292c59a4ba079716
Bug: oss-fuzz:40456
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465385
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-29 14:55:30 +00:00
John Stiles
a143a37747 Wrap 'u_rtFlip.y * dfdy()' in parentheses, in GLSL.
This guards against unexpected results when dfdy is used in complex
expressions. In practice, I'm not aware of this causing any trouble.

Change-Id: Ia476e57936969d248273856a94d5c403b47c29b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465379
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-29 14:03:35 +00:00
John Stiles
570f6dfe76 Wrap 'u_rtFlip.y * dfdy()' in parentheses, in Metal.
This guards against unexpected results when dfdy is used in complex
expressions. In practice, I'm not aware of this causing any trouble.

Change-Id: I639bef465d7907049d79681a49f9be67b4c435a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465378
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-29 13:56:47 +00:00
Greg Daniel
b469c10c85 Revert "Wrap 'u_rtFlip.y * dfdy()' in parentheses."
This reverts commit 9fc189f1cb.

Reason for revert: shader compile failure on AndroidOne-GPU-Mali400MP2 devices

Original change's description:
> Wrap 'u_rtFlip.y * dfdy()' in parentheses.
>
> This guards against unexpected results when dfdy is used in complex
> expressions. In practice, I'm not aware of this causing any trouble.
>
> Change-Id: I58d4762871481fdb4c173b570e4d5d6edf657af7
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465077
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Change-Id: Idfaa9316d657717d5ee7117837c9cc9c3d4ee189
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465377
Auto-Submit: Greg Daniel <egdaniel@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-10-29 12:51:09 +00:00
Greg Daniel
b3ecd560a2 Revert "Move GR_MAKE_BITFIELD_OPS and GrAlignTo to non-GPU files"
This reverts commit 65a726bb49.

Reason for revert: You cannot include a src file in an include file. This ends up using c++17 features in our includes. Breaks rolls.

Original change's description:
> Move GR_MAKE_BITFIELD_OPS and GrAlignTo to non-GPU files
>
> These have been renamed SK_MAKE_BITFIELD_OPS and SkAlignTo
> because nothing seemed particularly GPU/Ganesh specific to them.
>
> I moved the latter to SkTypes.h because we have other align
> code there and former to src/SkUtils.h because I didn't know
> where else it should go.
>
> The primary motivation was removing the GrTypesPriv.h
> include from src/core/SkBlockAllocator.h. I had attempted
> some amount of #if SK_SUPPORT_GPU, but that's not as clean
> here because both our CPU and GPU backends use the
> SkBlockAllocator (as far as I could tell).
>
> This also moves sk_memset* from SkUtils.h to SkOpts.h, because
> SkOpts.h requires bringing in RasterPipeline, which seemed
> like overkill.
>
> Change-Id: I5163ef5064ad3840a15b7e873930d60e2620bf9d
> Bug: skia:12584
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464876
> Reviewed-by: Brian Osman <brianosman@google.com>

Bug: skia:12584
Change-Id: I1b772bbbc6f150d737bb53fa4e5f45d1581929fa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465376
Auto-Submit: Greg Daniel <egdaniel@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-10-29 12:50:09 +00:00
skia-autoroll
5e4e56abe8 Roll ANGLE from db83279a7f61 to bae19e0626f1 (12 revisions)
db83279a7f..bae19e0626

2021-10-28 cclao@google.com Vulkan: Avoid unnecessary wait if mapBufferRange indicates read only
2021-10-28 syoussefi@chromium.org Vulkan: SPIR-V Gen: Fix float+matrix
2021-10-28 timvp@google.com Disable flaky multithreaded tests
2021-10-28 jmadill@chromium.org Vulkan: Remove "current queue serial".
2021-10-28 b.schade@samsung.com Translator: Fixed textureGatherOffsets validation
2021-10-28 jmadill@chromium.org Refactor program pipeline handling.
2021-10-28 jmadill@chromium.org GN: Remove unneeded version header visibility rule.
2021-10-28 hans@chromium.org Drop -Wweak-template-vtables
2021-10-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e706a029a256 to a03d00bd2a78 (5 revisions)
2021-10-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from d143249a93bc to 9d8950e082d8 (3 revisions)
2021-10-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 6e4379b531a3 to 367ea8143d4d (450 revisions)
2021-10-28 timvp@google.com win-trace: Skip failing tests

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 egdaniel@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/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
Tbr: egdaniel@google.com
Change-Id: I98fc8939861d46737ed3d4cdba80dd62768c4d8f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465278
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-29 05:29:04 +00:00
skia-autoroll
0b01f8f4dc Roll Chromium from fdcbccbd5184 to fb2681cfd505 (553 revisions)
fdcbccbd51..fb2681cfd5

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 egdaniel@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/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
Tbr: egdaniel@google.com
Change-Id: Ia4fe7213b9195a8d11584d62adc3166822a8278c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465276
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-29 04:45:37 +00:00
skia-autoroll
4de3238e82 Roll Dawn from 1de83e56f7e0 to 94d1678c6737 (5 revisions)
https://dawn.googlesource.com/dawn.git/+log/1de83e56f7e0..94d1678c6737

2021-10-29 jiawei.shao@intel.com Implement ConcurrentCache
2021-10-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 2f17549702b5 to 85a4282de666 (1 revision)
2021-10-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from c6ce5785d021 to 2f17549702b5 (3 revisions)
2021-10-28 lokokung@google.com Adds destroy handling for simple objects without new backend changes yet.
2021-10-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 97c692d337e2 to c6ce5785d021 (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 97c692d337e2 to 85a4282de666

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: alanbaker@google.com
Change-Id: I9eb7204b08e4aeb05e60682aa7edf2b71bb242a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465277
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-29 04:37:04 +00:00
John Stiles
9fc189f1cb Wrap 'u_rtFlip.y * dfdy()' in parentheses.
This guards against unexpected results when dfdy is used in complex
expressions. In practice, I'm not aware of this causing any trouble.

Change-Id: I58d4762871481fdb4c173b570e4d5d6edf657af7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465077
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-10-28 23:05:03 +00:00
John Stiles
f08e257b90 Fix type of RTFlip uniform.
This uniform uses a float2 type, not half2. Previously, this was only a
latent problem, since we treated halfs and floats the same when setting
up uniform buffers.

Change-Id: I54f7033561542cf984c08070b2c3eca4173ca69c
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465216
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-10-28 23:05:01 +00:00
Jim Van Verth
b5450fb901 [graphite] Add index buffer support and instanced draws
Bug: skia:12466
Change-Id: I12c64396791d8e0b8891b82927b1c8811a6e164f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464385
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-10-28 21:31:32 +00:00
Herb Derby
5a1368327d GrTextBlob: cleanup and update comments
Change-Id: I4d7ba9077ea2314d626450e6064de452b8ff1a08
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464922
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-10-28 20:54:30 +00:00
John Stiles
721388ecdb Keep uniform types even in release.
We need to know a uniform's type to convert it to the uniform-buffer's
expected format when uniforms are set. We have this data in other
arrays, but it's not accessible to the program data manager.

We don't necessarily need to use a bitfield here, if we think there's
ever a possibility of having a uniform buffer > 16MB in size.

Change-Id: I88b3936de5319d65c76891ec0f1d87badc71d2dd
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465076
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-10-28 19:55:34 +00:00
Robert Phillips
db7f2c67c2 [graphite] Add lookup by unique ID to program and uniform caches
The SortKey will only hold the uniqueID of the program and uniform data. When actually executing the draw we will need to reconnect with the actual data.

Bug: skia:12466
Change-Id: Iea7f0a99d471ea7fe2a3864bdd60255b09289088
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464926
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-10-28 19:43:00 +00:00
John Stiles
e56c5ba08c Remove unreferenced struct.
Change-Id: I8c8f831ea8d489933b6db5b1cbb22a59d6605ab1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464929
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-28 19:37:28 +00:00
John Stiles
ebbee17401 Fix skslc build breakage.
Change-Id: Ifedf6172c8152b809ef8faeae4dd0e7b87b142ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464927
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-28 19:27:44 +00:00
Jim Van Verth
762a01fd99 [graphite] Stub out details of DrawList->DrawPass algorithm
Bug: skia:12466
Change-Id: I3c3eda26d0c09a58108a5b7bdd1bca0e63973f17
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462887
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-10-28 19:00:25 +00:00
Robert Phillips
8b49157aae [graphite] Move MSL creation into the ProgramInfo
Bug: skia:12466
Change-Id: If31d25a1f4a4805069f6556c6802f33fa0bdfcc1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464380
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-10-28 18:48:40 +00:00
Kevin Lubick
65a726bb49 Move GR_MAKE_BITFIELD_OPS and GrAlignTo to non-GPU files
These have been renamed SK_MAKE_BITFIELD_OPS and SkAlignTo
because nothing seemed particularly GPU/Ganesh specific to them.

I moved the latter to SkTypes.h because we have other align
code there and former to src/SkUtils.h because I didn't know
where else it should go.

The primary motivation was removing the GrTypesPriv.h
include from src/core/SkBlockAllocator.h. I had attempted
some amount of #if SK_SUPPORT_GPU, but that's not as clean
here because both our CPU and GPU backends use the
SkBlockAllocator (as far as I could tell).

This also moves sk_memset* from SkUtils.h to SkOpts.h, because
SkOpts.h requires bringing in RasterPipeline, which seemed
like overkill.

Change-Id: I5163ef5064ad3840a15b7e873930d60e2620bf9d
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464876
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-28 18:18:47 +00:00