Commit Graph

57320 Commits

Author SHA1 Message Date
Julia Lavrova
92f1bc0083 Small changes for SkText that are not in experimental directory
(also made utf 8<->16 conversion static on SkUnicode)

Change-Id: Ie64d18ad21a35ec10bd0b350fb7887fb78a419d8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448140
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-09-13 18:22:33 +00:00
John Stiles
7591d4b5ef Replace trio of XxxxLiteral types with a single Literal type.
Throughout SkSL we've begun using doubles as a convenient way to store
any SkSL value (int, float, bool) in a single type. This idea has now
been extended to literals. Rather than having three expression kinds for
integers, floats and boolean literals, we can have just one. These can
be accessed in a type-specific way (`floatValue`, `intValue`, and
`boolValue` return the expected type, or assert if it's not the
matching type), or in a type-agnostic way (`value` will return a double
and works on any type of Literal).

This allows us to remove a complex template trick (Literal<T> is gone),
removes two redundant Expression types, and and lets us reduce our code
size in ConstantFolder, FunctionCall, etc.

Most of the conversion process was pretty straightforward:
* `IntLiteral::Make` becomes `Literal::MakeInt`
* `x.is<IntLiteral>()` becomes `x.isIntLiteral()`
* `x.as<IntLiteral>.value()` becomes `x.as<Literal>.intValue()`

Change-Id: Ic328533611e4551669c7fc9d7f9c03e34699f3f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447836
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-13 17:32:34 +00:00
John Stiles
e7830650cb Update bloaty treemap to work on Python < 3.9.
`removeprefix` was only added to Python in March 2020. It isn't
available on Python 3.8.2, which is the default macOS Python installed
version.
https://www.python.org/dev/peps/pep-0616/

Change-Id: I7b8db0dfc55f1448cc72f41ba9a6ad5f099d48ef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448259
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-13 17:20:49 +00:00
Jim Van Verth
3e7dd35dec Metal: add label to loadMSAAFromResolve pipeline object
Bug: skia:12086
Change-Id: I833a04d7dbc4624a85051aa8442a074520335b76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448256
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-13 16:05:44 +00:00
Jim Van Verth
b9650debfa Metal: more fixes for stencil and discardable MSAA
* When loading the MSAA texture from resolve, we set up the render
command encoder to be compatible with the next op. So we should just use
that command encoder rather than create one. This mainly helps with
clears as detecting compatibility in that case is difficult.

Bug: skia:12086
Change-Id: I859761ff970520c36629f1b8054f73e2fd29eb67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447189
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-09-13 15:31:15 +00:00
Herb Derby
ec7b63a745 add baseline integer lerp
Add a lerp that uses full 32-bit resolution for the multiply.
This gives the same answers as the floating point, and
demonstrates the error introduced by using the faster
16-bit multiply.

Change-Id: I90c46b350fae09f74d9c9cf2af7ef3d3d1d0f202
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448102
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-09-13 14:49:09 +00:00
Herb Derby
2505b2ca46 use higher res to check [-1, 1)
Because the [-1, 1) lerp can handle a higher sampling rate in t,
decrease the t step to ensure everything is covered. The
limit needs to be trimmed by a 1/65536 to allow the older lerps
to run properly.

Remove the scaled test cases. They no longer make sense.
Change-Id: Ida841d65ebe794ba5d0ae67dfb145268764ec6a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448101
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-09-13 14:13:25 +00:00
John Stiles
dc652564a7 Fix for-statement assertion detected by the fuzzer.
The fuzzer found that the `DetectVarDeclarationWithoutScope` check was
placed too late in the function, and could be skipped over by for-loops
containing multiple variables. This was caught in ForStatement::Make,
which mirrors the Convert postconditions with matching assertions.

Change-Id: I6e9d97c7c9ca969aba65e601bbcd9fe676105838
Bug: oss-fuzz:38560
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448116
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-09-13 13:34:48 +00:00
Herb Derby
fe678d9b1c change of parameter from [0, 1) to [-1, 1) for better lerp
Using the extra bit improves the difference rate from .38% to .19%.
I think this uses the full resolution of all the values, and there
is no more accuracy by trying to get more bits in use. The maximum
difference is still 1.

This gives the same answer with the neon_vqrdmulhq_s16 and
ssse3_mm_mulhrs_epi16 instructions.

Change-Id: Ie801b68aead408c5e1845aaf94ea660121e414b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447719
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-13 13:32:03 +00:00
skia-autoroll
56efcf2d5b Roll Chromium from bb2d18926c64 to 74365f584962 (538 revisions)
bb2d18926c..74365f5849

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 scroggo@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: scroggo@google.com
Change-Id: I8e7dea3a1bbd62e70f6b7e8cdfffdd7640f5983b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448036
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-13 05:23:48 +00:00
skia-autoroll
4d57238278 Roll SwiftShader from 446e61c24b37 to 7f2c7d18de0c (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/446e61c24b37..7f2c7d18de0c

2021-09-10 capn@google.com Fix decompression of cube-compatible layered 2D images
2021-09-10 capn@google.com Refactor image decompression and cube border update
2021-09-10 capn@google.com Refactor cube compatibility

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 scroggo@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: scroggo@google.com
Change-Id: Icf4d72be497a0ab6f25e98ab126d9cdb957054f8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448038
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-13 05:11:52 +00:00
skia-autoroll
f543e63d82 Roll Dawn from 6fa50b5e6c57 to 42448dafb484 (11 revisions)
https://dawn.googlesource.com/dawn.git/+log/6fa50b5e6c57..42448dafb484

2021-09-11 jiawei.shao@intel.com Remove descriptor from the parameter of ComputePipeline::Initialize()
2021-09-10 tangm@microsoft.com D3D12: Use a separate space for the index offset constants
2021-09-10 enga@chromium.org dawn_native: Add RequestDevice to the Adapter
2021-09-10 enga@chromium.org dawn_wire: Support deserializing s->c chained structs
2021-09-10 cwallez@chromium.org Remove suppression for fixed Tint issue
2021-09-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from ebab7d2f7a7e to 2ebcb93cb36c (1 revision)
2021-09-10 bryan.bernhart@intel.com Skip failing CopyTexture tests on WARP
2021-09-10 cwallez@chromium.org Remove typedefs for deprecated types.
2021-09-10 cwallez@chromium.org Lift suppression for incorrect VVL image layout tracking
2021-09-10 cwallez@chromium.org Reenable / delete DISABLED tests.
2021-09-10 msisov@igalia.com rename use_x11 to ozone_platform_x11

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from ebab7d2f7a7e to 2ebcb93cb36c

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 bajones@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: bajones@google.com
Change-Id: Ib078a6413ca5882753d17e5c07eb4b0ae68280b6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448037
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-13 04:42:48 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
6a78ce3f39 Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: I05ba5776e1533c953242c01f13933caea1ccf8e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447996
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-09-12 08:32:18 +00:00
Michael Ludwig
47d824415e Revert "Fixed DSL assertion error on source files containing nulls"
This reverts commit db38ad7b14.

Reason for revert: breaking g3 roll since it thinks the test case is "binary" not flagged as binary

Original change's description:
> Fixed DSL assertion error on source files containing nulls
>
> The assertion was there to make sure we weren't running off the end of
> the source, but naturally fails in the presence of legitimate embedded
> nulls.
>
> Change-Id: I3b80499e9b182c9ea046c479f35d7a965d548401
> Bug: oss-fuzz:38107
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447182
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

Bug: oss-fuzz:38107
Change-Id: I650d12d728b5d932bda79e81205b873d8b44771f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447936
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-09-11 18:13:13 +00:00
Florin Malita
2e4dc863da Fix skottie2movie gpu async crash
We need to ensure all async reads are completed before we finish
encoding -- otherwise late reads will fire from the GrContext destructor
and crash because the encoder is no longer valid.

Change-Id: I0065561d2411ddd202897e625a187592e40ced87
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447184
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-09-11 15:49:19 +00:00
Ethan Nicholas
b13f36944c Added break statements to various default: cases
No behavioral changes, just stylistic.

Change-Id: I95a54bb2ee5610272ecea4886163ba79ae2544a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447837
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-09-10 21:32:49 +00:00
Michael Ludwig
144926d968 Allow subpixel nested rects to have nearly equal x/y half widths
When transforming to device space, equal local-space half widths in X
and Y might end up being fractionally different, which would prevent
optimizing the nested rect path to use the stroke aa rect op. Visually,
these very small differences are not going to be noticeable and the op
can just arbitrarily pick one of the two widths to use for coverage.

Also fixed an issue where if the aa stroke op returned null from
MakeNested(), drawSimplifiedShape() assumed it meant nothing needed to
be drawn. After https://skia-review.googlesource.com/c/skia/+/427976,
this actually isn't the case and it should attempt path rendering for
the unbalanced subpixel nested rects.

In the linked bug's case, the square rects would not transform to
identical x and y half widths depending on the UI scale of the browser
(differing by a negligible amount). This would then return a null op
and skip falling back to the path renderer so nothing would draw.

Bug: chromium:1234194
Change-Id: Ibd4254cb37e0fc01a5da342e06c4d82cb6223fe8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447462
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-09-10 21:05:27 +00:00
Greg Daniel
0c2cca5698 Make sure we use device bounds for DrawableOp.
The bounds stored on the SkDrawable are in local space, but the bounds
we want on the Op need to be in device space. Not doing this transform
caused a bug where other ops were incorrectly being reodered around the
drawable on the gpu.

This also fixes an issue where vulkan would draw to the base device
instead of the top device.

Bug: b/198924563
Change-Id: I7c3d8ac9efdeb2b18d9be9e1f812f0132aa05893
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447591
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-09-10 20:55:25 +00:00
Ethan Nicholas
96dbf7403e Reduced the number of temporary arrays created by DSLParser
Change-Id: I9b758fd816278b50d2b1182cbfe6e0752b09cc51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447720
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-09-10 20:44:22 +00:00
Michael Ludwig
181bb97c38 Reorganize and hide aa clip impl into .cpp file
Bug: skia:10205
Change-Id: Ia2dd9b99f5282a46aaeaf8eac54c9f6bfd583fc6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/445617
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-09-10 20:43:08 +00:00
Ethan Nicholas
9a1f92e4ff Add ExpressionArray variants to DSL calls
This allows us to reduce the number of temporary arrays being created by
going directly to the final array type.

Change-Id: I6161c663f7f69ed1d323ae05b4a92b2d0c1b4c04
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447194
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-09-10 20:06:56 +00:00
Ben Wagner
d532a9e544 Update supported iOS to 11
Skia bots build and test on iOS with a minimum of iOS 11. Chrome
currently requires 13 and other internal users are at minimum 11. While
Skia may currently build with older minimum targets (currently back to
iOS 8, though shortly will require iOS 9) it is not tested on versions
older than 11.

Change-Id: I34305438caccd4f990904a4cc4dcdff2c64b6cc5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447717
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-09-10 19:19:20 +00:00
Herb Derby
2b868d6b9a math and error rates for lerp
Study that compares scaled integer lerp to float lerp. This
shows an error rate of 0.38% with a max difference of 1.

Study to compare scaled values the would result as the
intermediate values of a bilerp. This shows an error rate
of 24% with a max difference of 1.

Change-Id: Id27b6baa9ce56efedb30f490a3f84ccf808315fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447183
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-10 18:51:51 +00:00
Ethan Nicholas
db38ad7b14 Fixed DSL assertion error on source files containing nulls
The assertion was there to make sure we weren't running off the end of
the source, but naturally fails in the presence of legitimate embedded
nulls.

Change-Id: I3b80499e9b182c9ea046c479f35d7a965d548401
Bug: oss-fuzz:38107
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447182
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-10 18:44:22 +00:00
Eric Boren
81f03a4f4c [infra] Roll infra to update vpython
Bug: chromium:1244124
Change-Id: If44330139ddecc37da40ad7ad4ef90dbf45ddf6a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447586
Reviewed-by: Erik Rose <erikrose@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2021-09-10 17:41:28 +00:00
Brian Osman
d4da5d1fd6 Remove deprecated field from SkRuntimeEffectBuilder::BuilderChild
Android has been updated to use fChild, so fIndex is dead.

Change-Id: Iec728aa91a4ad47f84e2188ade75f639f0c6087c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447186
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-09-10 17:41:10 +00:00
skia-autoroll
19d99b6577 Roll SK Tool from fe20b5b7cd6c to a369a738f282
https://skia.googlesource.com/buildbot.git/+log/fe20b5b7cd6c..a369a738f282

2021-09-10 kjlubick@google.com [machine] Flatten Firestore schema and reduce duplication
2021-09-10 kjlubick@google.com [machine] Rename store.StoreImpl to store.FirestoreImpl
2021-09-10 kjlubick@google.com [tmm] Refactor interrogation code to allow for growth.
2021-09-10 borenet@google.com Revert "[commandbuffer] Roll back vpython in an attempt to fix CommandBuffer"
2021-09-10 borenet@google.com [autoroll] Switch several rollers from master to main
2021-09-10 hernantorrisi@gmail.com replacing metadata filename with json file name
2021-09-10 ravi_mistry80@hotmail.com Update whitespace.txt
2021-09-10 kjlubick@google.com [gold] Fix incorrect timestamp
2021-09-10 kjlubick@google.com [gold] Fix error when there are no results
2021-09-10 jcgregorio@google.com [ansible] All Android devices migrated to rack4.
2021-09-10 kjlubick@google.com [auth] Rename constants and modernize tests.
2021-09-09 borenet@google.com [sk] Add reviewers instead of self CR+2 and force-submit
2021-09-09 brianosman@google.com Update iImage example to use newer SkSL syntax

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 jcgregorio@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: jcgregorio@google.com
Change-Id: I0253b2715014e30f737d241eab1cef035f06174b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447701
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-10 17:36:19 +00:00
Ethan Nicholas
c9d65f0b8a Fixed duplicate function definition error discovered by fuzzer
Bug: oss-fuzz:38140
Change-Id: I76a1b3ef8289b3089192d043d173677c00741a54
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/445836
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-10 17:35:52 +00:00
Michael Ludwig
c7ffd5e680 Clip vertical edges outside crop rect during convex edge walk
Bug: chromium:1239558
Change-Id: Ibc4655adaa72d1abf306940dd8b5e2f6a8b0edd9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/446923
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-09-10 15:59:54 +00:00
John Stiles
5da061a53b Simplify code in compile-time optimization.
We had several paths through the code which assembled a compound value
by manually building up an ExpressionArray of Literals. It takes much
less code to assemble a double[] array. We now have a helper function
which takes an array of doubles, converts them to an ExpressionArray of
the appropriate type of Literal, then returns a CompoundConstructor.

We also had several places in the code which called
  arguments[a]->getConstantSubexpression(b)->as<FloatLiteral>().value()
and this has been made into a helper lambda function.

Change-Id: I5ca2e94788a8b7fdfb37f42fbbbb1e728ed0a242
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447458
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-10 14:38:09 +00:00
John Stiles
12545d475f Implement compile-time optimization for outerProduct.
Change-Id: If57fb5acbf5bd0cfeadc54dd12c3ba1da0840491
Bug: skia:12202
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447416
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-10 14:34:32 +00:00
John Stiles
144ea42b1a Enable outerProduct() in public SkSL and add unit tests.
Compile-time optimization is not yet implemented so the generated code
contains a lot of checks which will be optimized away in a followup CL.

Change-Id: I83b5df8580a6712686d18812e3848a703feac315
Bug: skia:12202
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447300
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-09-10 14:32:50 +00:00
Ethan Nicholas
bf4a7d5235 Fixed DSLParser crash with invalid swizzle
In response to a non-identifier token after a dot, DSLParser would
attempt to swizzle a zero-length field and fail an assertion.

The same basic code path exists in the old compiler, but the resulting
parse error causes the process to abort before it attempts to process
the zero-length swizzle.

Bug: oss-fuzz:38106
Change-Id: Ifd997ce1d564b5f6ef0a9a785d8d9e254785e600
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/446185
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-09-10 14:29:22 +00:00
Heather Miller
588dcc093d Update Skia milestone to 96
Change-Id: I635df8267340a9068b80a2e6c001958cfb2d10e4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447578
Reviewed-by: Heather Miller <hcm@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Auto-Submit: Heather Miller <hcm@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2021-09-10 11:51:00 +00:00
skia-autoroll
c96f979384 Roll Chromium from a2b0fa8ea081 to bb2d18926c64 (15686 revisions)
a2b0fa8ea0..bb2d18926c

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 erikrose@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: erikrose@google.com
Change-Id: Ia45357a8776d2b7a4f1c0e8562839a1d882cb555
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447487
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-10 06:01:16 +00:00
skia-autoroll
c00ff3d6d6 Roll SwiftShader from 35209220317c to 446e61c24b37 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/35209220317c..446e61c24b37

2021-09-09 sugoi@google.com Refactor VkMemoryAllocateInfo parsing

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 erikrose@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: erikrose@google.com
Change-Id: I028f48841379808d73a19855869c77209792e97d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447486
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-10 05:17:50 +00:00
skia-autoroll
9292c806e9 Roll Dawn from 053b58cd29dc to 6fa50b5e6c57 (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/053b58cd29dc..6fa50b5e6c57

2021-09-10 jiawei.shao@intel.com Vulkan: Support extension "depth_clamp"
2021-09-09 jrprice@google.com metal: Use single-entry point transform
2021-09-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 25517e9ce811 to ebab7d2f7a7e (2 revisions)
2021-09-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 733addc20fbf to 25517e9ce811 (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 733addc20fbf to ebab7d2f7a7e

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 bajones@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: bajones@google.com
Change-Id: I4b975eb2de8826b4f213c66caa73dcec0d158712
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447485
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-10 04:47:51 +00:00
Jim Van Verth
f17e4008a8 Ignore more pixel mismatches in mtltestprecompile.
Change-Id: I31322f1e04430379d88ca1ed45e52a37b667fee3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447437
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-09 22:13:14 +00:00
John Stiles
2533953aa3 Add Round() to DSL.
I wrote some code which needed Round(); it isn't in ES2 so it wasn't in
the DSL intrinsic set yet.

Change-Id: I304f61b502a68d255d15899181e34fcae2ef16a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447017
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-09-09 19:24:27 +00:00
John Stiles
df84ccdb38 Disable SkSLIntrinsicPackUnorm2x16 test.
This test fails on my work laptop (Radeon 5300M) so simply disabling it
on the tree isn't sufficient in this case. We don't seem to have a test
opt-out mechanism that automatically applies to local runs of dm.

Change-Id: I83582f0cdc3c9e6a61e6dc8e07851b9705143423
Bug: skia:12434
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447057
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-09-09 19:13:46 +00:00
John Stiles
997c3eda28 Use generic types to specify square forms of outerProduct.
This reduces our memory footprint slightly (smaller dehydrated data,
fewer IRNodes in the rehydrated GPU module).

This required a small tweak to our built-in types. $squareMat and
$squareHMat are now aligned with our $vec/$genType generics. (The "1x1
matrix" case is explicitly marked as invalid, allowing `float2x2` to
match up with `float2` and `half2x2` to match up with `half2`.)

Change-Id: I219a7be42102afbf60bb6857b53ac2b4f469113d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447187
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-09-09 19:09:02 +00:00
John Stiles
feb1e1274c Add implementation of outerProduct() intrinsic to Metal.
Metal doesn't natively offer this intrinsic at all, but we now write an
equivalent template function whenever the intrinsic is encountered.
Proper testing will be added in a followup CL (when outerProduct is made
available in public SkSL).

Change-Id: Ie8d6bf8d735d0ab45b7559be68036b08c5802365
Bug: skia:12202
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447296
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-09-09 19:08:36 +00:00
Jim Van Verth
fc309eafda Metal: add programmatic command buffer capture
* Update capture method to use latest interface
* Add simple hooks to enable command buffer capture for dm, nanobench, etc.

Change-Id: Ia69f1d10f1f80084342f4f38d12aca92f4dc710c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447193
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-09-09 19:04:28 +00:00
Greg Daniel
3270a78150 Add Adreno5xx workaround for dual source blending followed by disabling blending bug.
Bug: chromium:1241134
Change-Id: If99fbd62aaa9e2b5d064fdec6a010d3ab0f9dd66
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/446817
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-09-09 19:03:54 +00:00
John Stiles
8d0dd0d1c1 Add support for pack/unpackUnorm2x16 to public SkSL.
This includes compile-time optimization and tests.

The unit test is disabled in a followup CL
(http://review.skia.org/447057) because it exposes a Radeon 5300M bug
in OpenGL.

Change-Id: I8b2f0411358aeb68c4edfeb0bd7a2814c4be1f40
Bug: skia:12202
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447056
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-09-09 18:59:15 +00:00
Brian Osman
74947225a5 Update comment explaining ignoreable subset rects
Change-Id: I1f3e5e0bdc216910be6b522f460b2c277134635c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447190
Auto-Submit: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-09-09 18:58:49 +00:00
Robert Phillips
171ff2fdd5 Patch TextureBindingsResetTest to match CommandBuffer expectations
Bug: skia:10412
Bug: skia:12437
Change-Id: I93077bbd2ed40252966305df1b93ceb813218828
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/446181
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-09-09 18:54:03 +00:00
John Stiles
19a7b9749c Convert constant variables to values earlier in intrinsic optimization.
It's dangerous to leave constant variable expressions lying around, as
the temptation to access them via getConstantSubexpression is just too
great, but this currently isn't supported. This bit us in `inverse`
(see http://review.skia.org/440260) and it seems like we had a similar
latent bug with `cross` as well.

Fortunately, this change seemed to simplify the code in general.

Change-Id: Idd3e84ca202a1f05f91c1d6d5e94a3bc6da0d8d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447016
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-09-09 18:53:46 +00:00
Corentin Wallez
2c704669fb Update usage of deprecated Dawn typedefs
Bug: dawn:22
Change-Id: I7c0a4f77bc2c2df81ff4be091bf86569898a1ade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447216
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@google.com>
Reviewed-by: Stephen White <senorblanco@google.com>
2021-09-09 18:32:56 +00:00
skia-autoroll
66ef11dceb Roll SK Tool from 876761b46493 to f9e7723e5a27
https://skia.googlesource.com/buildbot.git/+log/876761b46493..f9e7723e5a27

2021-09-09 rmistry@google.com Delete ds.MigrateData
2021-09-09 kjlubick@google.com [infra] Add now helper for changing time throughout tests.
2021-09-09 kjlubick@google.com [vfs] Use fs.FileInfo instead of os.FileInfo
2021-09-09 kjlubick@google.com [machine] Mock out times for tests and decouple firestore schema.
2021-09-09 kjlubick@google.com [tmm] Address some static analysis concerns
2021-09-09 kjlubick@google.com [tmm] Improve documentation and names.
2021-09-09 kjlubick@google.com [infra] Run RBE using the VM service account, not JSON keys.

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 jcgregorio@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: jcgregorio@google.com
Change-Id: I83a9268ae1d0f5d8eee0571b128c6f785259806b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447237
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-09 18:09:18 +00:00