Commit Graph

57951 Commits

Author SHA1 Message Date
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
Greg Daniel
391f941949 [graphite] Add a Graphite no Gpu (i.e. Ganesh) build bot
Make sure graphite compiles standalone and not just if ganesh is also
enabled.

Bug: skia:12466
Change-Id: Ic843881a2a88c8d4b62f3a2ea38a10b6a86a12d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464817
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-10-28 17:58:59 +00:00
Kevin Lubick
da53bb8d95 Replace custom int conversion with SkTo in SkArenaAlloc
I think this was causing some of the strange errors with
https://skia-review.googlesource.com/c/skia/+/464876

Change-Id: I461630a16f2342aaab43902fadf640ba664a87e7
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464956
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-28 17:53:02 +00:00
Leon Scroggins
af5049b0d7 Revert "Remove GPU-related calls from SkSurface.h when !SK_SUPPORT_GPU"
This reverts commit 74105c5d09.

Reason for revert: Breaking Android's GPU-less build (used on desktops for AndroidStudio)

Original change's description:
> Remove GPU-related calls from SkSurface.h when !SK_SUPPORT_GPU
>
> Change-Id: Idca02c40bd8f540919702f09ba2a809acc377e67
> Bug: skia:12584
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464295
> Reviewed-by: Brian Osman <brianosman@google.com>

Bug: skia:12584
Change-Id: I7742f67d3498f45ab862daae4c1d3518e89f7c2c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464921
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Owners-Override: Kevin Lubick <kjlubick@google.com>
2021-10-28 17:19:03 +00:00
Robert Phillips
1fe391f0dc [graphite] Add caches for uniformdata and programs
Bug: skia:12466
Change-Id: Id61b019b583357bb9474c58a81270b0b860c9c4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464120
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-10-28 17:02:57 +00:00
Kevin Lubick
c82f9efc0c Remove GrTypesPriv.h dep from SkSLUtil.h when SK_SUPPORT_GPU=0
Change-Id: I8f1f05d774fa69a5331f314f84e48ee726a708d6
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464901
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-28 16:52:35 +00:00
John Stiles
4363cdb5ea Fix for fuzzer-discovered error with bitwise-not.
A recent CL (http://review.skia.org/464121) made it an error to coerce a
literal value to a type that cannot hold the value. The fuzzer found a
case where we assumed type-coercion of a literal would always succeed,
and failed to null-check the result. We now null-check the result.

Change-Id: Id97c6016e56c20ef724028f71bbf4688dde3c064
Bug: oss-fuzz:40428
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464919
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-10-28 16:44:09 +00:00
Michael Ludwig
8837686752 [graphite] Actually record draws in DrawList
Bug: skia:12466
Change-Id: I91e1e90900997ad1e16710b51fa3dcdde6861d38
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462886
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-10-28 16:32:35 +00:00
Ben Wagner
4b38d9c437 Reland "Avoid crash when surface CoW allocation fails"
On low memory machines a common cause of crashes is when a draw
operation requires a large layer (or many large layers) because an
implementation of SkSurface_Base::onCopyOnWrite does not actually have
the resources available to do the copy when required by a draw. Allow
this method to fail and percolate up the call chain so that the draw
simply does not happen instead of crashing.

It appears some users are creating their own subclasses of
SkSurface_Base for their tests. Add SK_SURFACE_COPY_ON_WRITE_CRASHES to
keep the old crashy behavior until they can be updated.

Bug: chromium:1116362
Revert: 5b19ebe0c5.
Revert-Change-Id: I2873589f996ded9c9fd6d27b19155ca18d5b5326
Revert-Reviewed-on: https://skia-review.googlesource.com/c/skia/+/463956
Change-Id: Id06d1e6d3aacb409a3b00b9a862bd8ddd1aaa22f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464456
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-10-28 16:32:29 +00:00
John Stiles
f2d016f12e Fix for fuzzer-discovered error with negation.
Yesterday's negation-related changes (http://review.skia.org/464123)
exposed a flaw that the fuzzer was able to exploit. We were previously
able to assume that `simplify_negation` would always return a non-null
expression; in some cases, that is no longer true.

Change-Id: Ia585232b0e35fafe0c642384a59ef94ce743ffd5
Bug: oss-fuzz:40427
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464916
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-28 16:14:42 +00:00
skia-autoroll
533cfc8c9c Roll SK Tool from 8b318b839676 to 815443b0b456
https://skia.googlesource.com/buildbot.git/+log/8b318b839676..815443b0b456

2021-10-28 borenet@google.com [task scheduler] Add explicit support for CD pipelines

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 erikrose@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: erikrose@google.com
Change-Id: If9c30a359d9f727d2ff1bf21d77f84c4968be3ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464858
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 16:09:13 +00:00
Kevin Lubick
c5bcab8312 Move SkPromiseImageTexture's includes inside GPU guard
SkTypes.h makes sure SK_SUPPORT_GPU is defined.

I was tempted to move these files to include/gpu and
src/gpu, but that might be best handled in a follow-up
CL in case any clients depend on them.

Change-Id: Ia4d6717567fe6b1842bed2c7fc0439e85e1795b2
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464638
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-28 15:40:30 +00:00
Jim Van Verth
66485f9268 [graphite] Add vertex and instance buffer support.
Adds Attributes and supporting types to RenderPipelineDesc so they can
be created for the RenderPipeline.

Bug: skia:12466
Change-Id: I7ed920ea6d44f27f7dace81d35cd967a8dea55de
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464377
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-10-28 14:50:38 +00:00
Brian Osman
c41c3d52fe Revert "Move alpha modulation into paint conversion (Step 1)"
This reverts commit c77620c308.

Reason for revert: Android failing LayerTypeAndRenderTypeTransactionTest#SetAlphaClamped

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>

Bug: skia:11942
Change-Id: I382945cfe441412fe440cf2a658b5caa2e3ff696
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464697
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-28 14:25:12 +00:00
Kevin Lubick
74105c5d09 Remove GPU-related calls from SkSurface.h when !SK_SUPPORT_GPU
Change-Id: Idca02c40bd8f540919702f09ba2a809acc377e67
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464295
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-28 14:11:41 +00:00
John Stiles
aa68a6b3a5 Reject scalar casts of literals to types that can't hold them.
With this change, we no longer have any SkSL tests which are able to
make a Literal integer that overflows its type. Literal::MakeInt now
asserts that its value is within bounds. I look forward to the fuzzer's
inevitable attempts to trigger these assertions.

Change-Id: I7b15e862caaf65984d33f5d72d2c1de816d1d292
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464124
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-28 14:05:14 +00:00
Brian Osman
ecac4fedaf Prefer GL_EXT_texture_format_BGRA8888 over the APPLE variant
This aligns the order of the two checks that we do here. It's rare for a
device to advertise both extensions, but we've now seen one that does,
and it requires that we use the image format from the EXT extension.

Change-Id: I8c7af72d852b915cd6645aaa1ec4e0db0f7d0d31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464696
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-10-28 13:38:21 +00:00
Kevin Lubick
146cfcc042 Remove GPU-related calls from SkImage.h when !SK_SUPPORT_GPU
Change-Id: Icf6f45069b078f7936cfa08224fd8796d8c283b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464122
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-28 12:10:39 +00:00
skia-autoroll
1c51867540 Roll ANGLE from 421dbf200d36 to db83279a7f61 (11 revisions)
421dbf200d..db83279a7f

2021-10-27 kpiddington@apple.com Metal: Use 'fast' normalize to match DEQP expectations
2021-10-27 kpiddington@apple.com Metal: Use ES3 validation for GL_R/RG8_EXT formats
2021-10-27 penghuang@chromium.org VANGLE: change the default vulkan device choose logic
2021-10-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from e2aeccde416b to 49afd2823061 (34 revisions)
2021-10-27 jmadill@chromium.org Vulkan: Fix accessing stale FB cached variable.
2021-10-27 syoussefi@chromium.org Switch to python3 in DEPS
2021-10-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 21810915c4f1 to d143249a93bc (1 revision)
2021-10-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 06cd4429bf9e to e706a029a256 (10 revisions)
2021-10-27 thakis@chromium.org Run clang update script under python3 in angle
2021-10-27 ajgo@chromium.org disable cfguards for all deqp tests
2021-10-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from b7a27dd8face to 6e4379b531a3 (441 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 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
Test: Test: CQ plus above
Change-Id: I019e5fc0bfc015fbc88ae3bbd8b73346d9f991ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464420
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 05:25:03 +00:00
skia-autoroll
323c5c8c08 Roll SwiftShader from d143249a93bc to 9d8950e082d8 (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/d143249a93bc..9d8950e082d8

2021-10-27 srisser@google.com Update git-hooks to HEAD revision
2021-10-27 srisser@google.com Revert "Make git-hooks track with origin/main"
2021-10-27 sugoi@google.com Refactor Queue::Submit to use internal structure

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

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/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:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: egdaniel@google.com
Change-Id: I1d7afdc3b1f82bbe9a2c91bc6c5855995381e199
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464419
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 05:14:33 +00:00
skia-autoroll
3f2a17db4b Roll Chromium from 9a6759748ac2 to fdcbccbd5184 (416 revisions)
9a6759748a..fdcbccbd51

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: Iaaa2a9d7cd442f4d8b575433a2e8159959694bba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464417
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 04:55:07 +00:00
skia-autoroll
fc0be67d18 Roll Dawn from 3c786cd418f6 to 1de83e56f7e0 (6 revisions)
https://dawn.googlesource.com/dawn.git/+log/3c786cd418f6..1de83e56f7e0

2021-10-28 enga@chromium.org MaxLimitTests: workaround i32 maximum for size annotation
2021-10-28 bajones@chromium.org Improve validation errors for encoders
2021-10-28 shrekshao@google.com Pipeline constants: validate if any uninitialized overridable constants exist
2021-10-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from e7ca884b3d12 to 97c692d337e2 (1 revision)
2021-10-27 enga@chromium.org Add FromAPI / ToAPI helpers for dawn_native
2021-10-27 enga@chromium.org Reland "Populate some D3D12 limits from the backend"

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

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: I3c14a24b23e023e2165292db8ea6946cb8efb448
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464418
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 04:35:09 +00:00
Jorge Betancourt
2cddedd5f9 change method signature for FontChain
Change-Id: I1adf796be5ae1c6c7b70022cbe8e42ce9089f74d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/463258
Auto-Submit: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-10-28 01:57:32 +00:00
Greg Daniel
5b19ebe0c5 Revert "Avoid crash when surface CoW allocation fails"
This reverts commit 2e228bb72c.

Reason for revert: breaks android roll

Original change's description:
> Avoid crash when surface CoW allocation fails
>
> On low memory machines a common cause of crashes is when a draw
> operation requires a large layer (or many large layers) because an
> implementation of SkSurface_Base::onCopyOnWrite does not actually have
> the resources available to do the copy when required by a draw. Allow
> this method to fail and percolate up the call chain so that the draw
> simply does not happen instead of crashing.
>
> Bug: chromium:1116362
> Change-Id: I2873589f996ded9c9fd6d27b19155ca18d5b5326
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/463956
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>

Bug: chromium:1116362
Change-Id: I5ab590b6fc14bcb6712c00dda75d1e7cdc931447
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464077
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-28 01:51:09 +00:00
Florin Malita
9fcc959b13 Constify SkImage
SkImage is supposed to be immutable, convert remaining methods to const.

Change-Id: Icf673204474f09992a57c10f29703ae7b33e3904
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464256
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-10-28 01:07:57 +00:00
John Stiles
1fa2c28ee1 Fix dFdy test.
This was mistakenly using dFdx in some portions (copy-paste error).

Change-Id: Ifb159b3c44185d9166c10725b24002a28a0895b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464381
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-27 21:25:32 +00:00