Commit Graph

57741 Commits

Author SHA1 Message Date
Ravi Mistry
f42503c83e [g3-canary] Add PROD.md for infra failure alerts
Bug: skia:12521
Change-Id: I4620aafdf1a1d83039e4a23ede53e2a3d2351d55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457760
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-10-21 21:25:32 +00:00
John Stiles
e26e010000 Move GrUniformDataManager setter logic into templates.
This code originally contained 16 extremely similar versions of the same
logic. (set1i, 1iv, 1f, 1fv, 2i, 2iv...)

Now the core logic has been boiled down to two (set, setv) templated
helper functions, one for array and one for non-array uniforms. Template
arguments fill in the minor variations between each type.

Structuring the logic in this way makes it easier to perform sweeping
changes as needed, and guarantees that the setters all work the same.

Change-Id: Iaa74d25c612b12ab26d7f32879c174bca6c850c1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462099
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-21 21:08:37 +00:00
skia-autoroll
f93f6f2aaf Roll SK Tool from 192352898ba5 to 4b11248acd92
https://skia.googlesource.com/buildbot.git/+log/192352898ba5..4b11248acd92

2021-10-21 borenet@google.com [autoroll] Add skia-autoroll-internal-config to PROJECT_REPO_MAPPING

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: I03ac0559025e219841a4df40091a3d7b0e945873
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462320
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-21 20:54:08 +00:00
Chris Dalton
6b90705437 Simplify GrVertexWriter::writeQuad
This allows GrQuad to be written as a quad without the header needing
knowledge of it.

Bug: skia:12524
Change-Id: I22f67021877de426f710981d4fa2bd48c88a4d52
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462319
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-21 20:42:37 +00:00
Brian Osman
95a8c4fdc0 Make all shader caps uniquely-owned
Bug: skia:12559
Change-Id: I5775120a826e582e73aab83273e59bc48c057a5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462077
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-10-21 20:11:03 +00:00
John Stiles
97d9e47e8f Reduce the size of the lexer's data tables.
The lexer uses a matrix of state transition data to parse text. This
matrix was highly sparse and contained large runs of zeros and repeated
values. I found that by transposing the matrix, it became extremely
compressible. In its transposed state, most slices had only 1-3 unique
nonzero values.

This CL leverages this finding to reduce the matrix data from ~55K to
~10K. A handful of slices do contain a large number of unique values and
continue to be represented as plain 16-bit arrays. Some slices contain
no data at all and were eliminated entirely. The majority of slices are
now represented by a compact two-bit array. Bit pattern 00 always
represents zero. Bit patterns 01, 10 and 11 are translated into values
v0, v1 and v2, which are stored per slice (bit-packed to save a few
extra bytes). This transformation involves a fair amount of bit shifting
and masking, but the generated code will be quite efficient:
https://godbolt.org/z/eTvjr96ez

Change-Id: Iecc67aadd510ccf63b4bcb11ed861d703efefaae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461356
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-21 19:53:36 +00:00
Jim Van Verth
dbd3b1b04c [graphite] Add pipeline and draw support
Bug: skia:12466
Change-Id: I5c0c919d4523258a11b4545346093953a4f09c7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461597
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-10-21 19:34:26 +00:00
John Stiles
ff32c42ca3 Simplify matrix uniform data management.
We can use `if constexpr` to avoid the need for a helper function that
uses template specialization, and we can use `getBufferPtrAndMarkDirty`
instead of performing the equivalent operations by hand.

Change-Id: I548c719bae4f215e0a9c658a942deaec38ce27ad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462098
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-21 19:27:11 +00:00
Chris Dalton
09f4864734 Convert GrVertexWriter to a "stream syntax" API
This helps remove all Ganesh dependencies from GrVertexWriter so it can
be shared with Graphite.

Bug: skia:12466
Change-Id: I1ede1cfc48d501cb1e028bca1e8590e6c92f4e4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462316
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-21 18:51:00 +00:00
Julia Lavrova
dee9c2ae0c RTL done right (only WrappedText and VisualRun classes deal with it)
Jul started. It does not work yet.

Change-Id: Ie2c3d943f281dae86befff64f7342c097a5bc7b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/455257
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-10-21 18:41:30 +00:00
Brian Osman
2d1207acb9 Remove the "in blend modes randomly fail for all zero vec" workaround
At this point, it seems like this was a mis-diagnosis of the underlying
issue around dual-source blending (and its interaction with other blend
state).

Change-Id: I11af0c9b70c32e14c353848db3d6adbfe5f08225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462176
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-10-21 16:54:51 +00:00
Kevin Lubick
7ce380e967 [canvaskit] Remove deprecated MakeTypefaceFromData and RefDefault
Change-Id: I0072fa5c11834a6250f2f5b9290ecea0d30f2128
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462177
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
2021-10-21 16:45:42 +00:00
Kevin Lubick
2d13fab55c [canvaskit] Define requestAnimationFrame and other definition fixes.
Change-Id: I28a908fb680d704bf730a5968691f54d4a9e0a68
Bug: skia:12555 skia:12550
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462056
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
2021-10-21 16:45:42 +00:00
Leandro Lovisolo
83d71bd12c Remove redundant Test*-Android_ASAN and Test*-Android_ASAN_Vulkan tasks.
These tasks were made redundant by the new Test*-Android_HWASAN tasks introduced in the parent CL (https://skia-review.googlesource.com/c/skia/+/436572).

See parent CL and http://go/skia-android-hwasan for the rationale and details.

Bug: skia:12099
Change-Id: I17db9cfe3ae2f08a73262fbd336a65b99a4d72cd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461357
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2021-10-21 15:25:56 +00:00
Leandro Lovisolo
b34e97b5d9 Add Android HWAddress Sanitizer tasks.
Design doc: http://go/skia-android-hwasan.

This CL defines the following tasks:

- Build-Debian10-Clang-arm64-Debug-Android_HWASAN
- Test-Android-Clang-Pixel4a-CPU-Snapdragon730G-arm64-Debug-All-Android_HWASAN
- Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN

The HWAddress Sanitizer is only available on 64-bit Arm devices, and requires Android 10+ built with HWAddress Sanitizer support. There are prebuilt HWASan images for supported Pixel devices at https://ci.android.com (instructions at https://developer.android.com/ndk/guides/hwasan).

To support these tasks, we added two Pixel 4a devices to the tree, flashed with the corresponding prebuilt HWASan image. The specific Pixel devices were chosen based on stock availability.

See patchset 11 for an example error I introduced in //gm/3d.cpp, which was caught by the HWAddress Sanitizer.

Bug: skia:12099
Change-Id: Ic3847abc61c8a1bf686d29b97ef9d89b9bb5eb86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436572
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
2021-10-21 15:22:44 +00:00
Jim Van Verth
bb553eda93 [graphite] Implement remainder of RenderCommandEncoder methods
Bug: skia:12466
Change-Id: I7be58aca7eedf18e4157d9473216785eead8c89a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461700
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-10-21 14:54:33 +00:00
John Stiles
f08ebb15f0 Add a distinct error message for reserved words.
After reporting the error, we convert the reserved word to an identifier
as this led to the best error reporting. (This avoids double error
reporting or strange cascading errors.)

Change-Id: I67209bc342fe794287baeaaaf34fa77afd4ac26b
Bug: skia:12560
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462096
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-21 14:26:06 +00:00
Kevin Lubick
05ac1b86ad Add LICENSE to third_party/musl_compat
Change-Id: I997446733308e61db850aa022e06fd3609b0d914
Bug: skia:12563
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/462076
Reviewed-by: Ravi Mistry <rmistry@google.com>
2021-10-21 13:49:16 +00:00
Kevin Lubick
4d41304def [infra] Add hermetic toolchain for C/C++ using Clang+Musl
This can successfully build a C library:
   bazel build --config=clang //third_party:libpng

This can build and run a statically-linked executable:
   bazel test --config=clang //:bazel_test

For more verbose compile and linking output, add the
`--features diagnostic`
flag to a Bazel command (see _make_diagnostic_flags() in
toolchain/clang_toolchain_config.bzl. Similarly, a
`--features print_search_dirs` can be used to show where
clang is looking for libraries etc to link against.
These features are made available for easier debugging.

Suggested review order:
 - Read https://docs.bazel.build/versions/4.2.1/tutorial/cc-toolchain-config.html
   if unfamiliar with setting up C++ toolchains in Bazel
 - .bazelrc and WORKSPACE.bazel that configure use and download
   of the toolchain (Clang 13, musl 1.2.2)
 - toolchain/build_toolchain.bzl which downloads and assembles
   the toolchain (w/o installing anything on the host machine)
 - toolchain/BUILD.bazel and toolchain/*trampoline.sh to see
   the setup of the toolchain rules.
 - toolchain/clang_toolchain_config.bzl to see the configuration
   of the toolchain. Pay special attention to the various
   command line flags that are set.
 - See that tools/bazel_test.cc has made a new home in
   experimental/bazel_test/bazel_test.cpp, with a companion
   BUILD.bazel. Note the addition of some function calls
   that test use of the C++ standard library.
   The number being used to test the PNG library is the latest
   and greatest that verifies we are compiling the one brought
   in via DEPS (and not a local one).
 - third_party/* to see how png (and its dependent zlib) have
   been built. Pay special attention to the musl_compat hack
   to fix static linking (any idea what the real cause is?)
- //BUILD.bazel to see definition of the bazel_test executable.

Change-Id: I7b0922d0d45cb9be8df2fd5fa5a1f48492654d5f
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461178
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
2021-10-21 12:43:49 +00:00
skia-autoroll
9cb2040059 Roll ANGLE from 02b73c2fd738 to b06606b99291 (16 revisions)
02b73c2fd7..b06606b992

2021-10-21 cnorthrop@google.com Tests: Add Zillow trace
2021-10-20 cnorthrop@google.com Capture/Replay: Fix glAttachShader filtering
2021-10-20 timvp@google.com Vulkan: Remove support for GL_RGB8 from DisplayVkAndroid
2021-10-20 kpiddington@apple.com Metal: Add Shadow Sampler Grad workaround for AMD
2021-10-20 jmadill@chromium.org Remove Nexus 5X expectations from dEQP tests.
2021-10-20 syoussefi@chromium.org Revert "Vulkan: Flush descriptor set updates during flush*Commands()"
2021-10-20 jmadill@chromium.org Re-land: "Isolate commit_id.h from other code."
2021-10-20 syoussefi@chromium.org Vulkan: Don't create pipeline with depthWrite if !depthTest
2021-10-20 jmadill@chromium.org infra: In milo, split console into 'compile' and 'test'.
2021-10-20 jmadill@chromium.org infra: Remove old bot configs.
2021-10-20 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 85101b9ec148 to 2a86d62642ce (3 revisions)
2021-10-20 m.maiya@samsung.com Remove glext_angle.h, merge contents into gl2ext_angle.h
2021-10-20 syoussefi@chromium.org Vulkan: SPIR-V Gen: Handle scalar(const) produced by index clamp
2021-10-20 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from fe06f6ff26f8 to 59f9313742fc (6 revisions)
2021-10-20 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 0d22e489aa33 to 0d66e54fc44e (485 revisions)
2021-10-20 syoussefi@chromium.org Translator: Validate precision for function args

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 jcgregorio@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: jcgregorio@google.com
Test: Test: Dota Underlords MEC
Test: Test: angle_perftests --gtest_filter="*zillow*"
Change-Id: I5174a72f71793abe41bf473b26885bdfe833932b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461878
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-21 05:22:58 +00:00
skia-autoroll
c7038a7c41 Roll SwiftShader from 6b700ffc6a8a to 6683bca5f94e (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/6b700ffc6a8a..6683bca5f94e

2021-10-21 sergeyu@google.com [Fuchsia] Fix Vulkan compilation
2021-10-20 swiftshader.regress@gmail.com Regres: Update test lists @ 6b700ffc

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 jcgregorio@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: jcgregorio@google.com
Change-Id: I531aefc2a961982f10bb9b8364c3351bc43d0795
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461879
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-21 05:09:31 +00:00
skia-autoroll
403215a12f Roll Chromium from 0a219531705e to 54201acd43e4 (434 revisions)
0a21953170..54201acd43

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 jcgregorio@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: jcgregorio@google.com
Change-Id: I6d2636ab98877bc577daaa523d5806ce66014c68
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461877
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-21 05:01:01 +00:00
skia-autoroll
d252ff3f66 Roll Dawn from ba0d653b8c00 to 0383297416f9 (8 revisions)
https://dawn.googlesource.com/dawn.git/+log/ba0d653b8c00..0383297416f9

2021-10-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from e81d7dc3c80a to 347c74e67126 (1 revision)
2021-10-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 7103f51603dc to e81d7dc3c80a (2 revisions)
2021-10-20 enga@chromium.org Revert "Populate some D3D12 limits from the backend"
2021-10-20 bajones@chromium.org Various validation error improvements
2021-10-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 8645953be246 to 7103f51603dc (1 revision)
2021-10-20 bajones@chromium.org Improve validation errors for encoders
2021-10-20 enga@chromium.org Populate some D3D12 limits from the backend
2021-10-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 54180d6631b3 to 8645953be246 (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 54180d6631b3 to 347c74e67126

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 jrprice@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: jrprice@google.com
Change-Id: Ib09a23ca88282dbb4b2ead6c3d54be45d743bc3f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461880
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-21 04:40:35 +00:00
Brian Osman
e3ff9b1783 Remove GrContextOptions from GrShaderCaps constructor
Bug: skia:12559
Change-Id: I91e0b46702ca361737459d64d1cdb57f8dd2f64e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461697
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-10-20 22:51:42 +00:00
John Stiles
b19be63810 Fix ODR violation in Metal code.
In places where we use GR_METAL_SDK_VERSION to determine the contents of
a class, it's important to consistently #include the header which sets
the value of GR_METAL_SDK_VERSION.

Change-Id: Ic4824ff36c982d3493ebec03dd38465bb90b287a
Bug: skia:12513
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461836
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-10-20 21:33:32 +00:00
Jim Van Verth
6dcb6b44e9 [graphite] Take two at fixing non-Metal build
Bug: skia:12466
Change-Id: I7eb240985ce0c267bbc7be040e0f812407d31435
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461699
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-10-20 20:53:08 +00:00
Michael Ludwig
251e7e6bfd [graphite] Wire up BoundsManager for color/depth ordering
Except that applyClipToDraw doesn't actually evaluate any clip shapes,
and the BoundsManager is the slow/naive one, I think all the changes to
Device fully implement the tracking/work needed for color/depth sorting.

Bug: skia:12466
Change-Id: I74f38e56d34d822c2be35f1ebedfb7c00b87f04c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/460616
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-10-20 20:20:01 +00:00
Jim Van Verth
271dedc924 [graphite] Add iOS compile bots
Bug: skia:12561
Change-Id: I0a739dcfd4214ee4855f04a70fb6f66ab638bf2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461478
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-10-20 19:53:39 +00:00
Jorge Betancourt
aaa70658c2 expose directional blur to skottie
Change-Id: I759e4fff7a6d9cd1aae6ece060d570d05c1af94a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461236
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
2021-10-20 19:41:30 +00:00
Jorge Betancourt
ebe2d82384 [JetSki] get TypeFace from FontMgr
Change-Id: Ied6cc2f67434757ed1cf6dd4edb6c40798ec206b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450038
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2021-10-20 19:33:30 +00:00
Chris Dalton
dd07eb01c8 Move VectorXform into the wangs_formula namespace
This class is only meant to be used with Wang's formulas, so it
belongs in their name namespace.

Bug: skia:12524
Change-Id: Ib1667781b947a7f052af103b7bf9084d09a690de
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461567
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-10-20 18:17:48 +00:00
Chris Dalton
49c766732d Delete the skgpu::tess namespace
Tessellation code can just exist in the skgpu namespace.

Bug: skia:12524
Change-Id: I44d473c5f82d608bb6cd3bb9df239c4f4028da4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461557
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-10-20 18:16:48 +00:00
Brian Salomon
524f336088 Make Greg Daniel a Skia API owner.
Change-Id: I7a7a61eba40131acea3db7ed1da5c3e3cb47ee86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461596
Reviewed-by: Heather Miller <hcm@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-10-20 17:59:42 +00:00
Chris Dalton
8f6a229a71 [graphite] Add alignment directives to IntersectionTree arrays
Thise should have been aligned properly already due to their
placement, but it doesn't hurt to make it more explicit.

Change-Id: Idb6a03e93d86df7727324987f166d197d5e708a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461377
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2021-10-20 17:48:28 +00:00
Greg Daniel
ac29367c91 [graphite] Fix graphite iOS build.
Bug: skia:12466
Change-Id: Id0419836ca96d99836879d509ca2cd1c9244d76f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461598
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-10-20 17:15:09 +00:00
Brian Osman
cb3c02005c Add SkColorMatrix factories for SkYUVColorSpace
This lets clients access and use the same RGB to YUV matrices that we
use internally.

Inspired by https://crrev.com/c/3223983

Bug: skia:12545
Change-Id: I7f70f56e721819c3d33da447eff2e572b7774c51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461476
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-10-20 16:47:03 +00:00
Herb Derby
0edd2c33d3 use faster cases in blitAntiH for SkVMBlitter
Use the coverage from the mask to avoid or reduce blitting.

nanobench
desk_chalkboard 51ms -> 38ms.

Change-Id: I58e3ca5f9ef59dbd5b9ceb1a905ea1f3d948fd89
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461296
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-10-20 15:27:35 +00:00
Jim Van Verth
c7fa96c4e5 [graphite] Fix non-Metal compile error
Bug: skia:12466
Change-Id: I2e0421191d05c3e0f457425e0dab49c2afb9c2b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461477
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2021-10-20 14:57:00 +00:00
Greg Daniel
8582724780 [graphite] Add copyTextureToBuffer call on CommandBuffer.
Bug: skia:12466
Change-Id: I44bd3899dea817318f83444f023c1c8adcfc2d1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/459881
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-10-20 14:12:28 +00:00
skia-autoroll
d62b7ef970 Roll ANGLE from 7f87a326e878 to 02b73c2fd738 (16 revisions)
7f87a326e8..02b73c2fd7

2021-10-20 timvp@google.com Vulkan: Flush descriptor set updates during flush*Commands()
2021-10-20 gman@chromium.org Update bug number for point clipping AMD metal
2021-10-20 gman@chromium.org Update bug numbers in dEQP test expectations
2021-10-19 lubosz.sarnecki@collabora.com Reland "RendererVk: Enable VK_KHR_image_format_list on SwiftShader."
2021-10-19 gert.wollny@collabora.com libANGLE: Assert on mExecutable when syncing images
2021-10-19 jmadill@chromium.org infra: Remove SwANGLE bots from CQ.
2021-10-19 syoussefi@chromium.org Vulkan: Optimize updating blend state in pipeline desc
2021-10-19 syoussefi@chromium.org Revert "Isolate commit_id.h from other code."
2021-10-19 jmadill@chromium.org infra: Add new configs to CQ.
2021-10-19 syoussefi@chromium.org Vulkan: Async Queue: Fix signal of external semaphores
2021-10-19 syoussefi@chromium.org Vulkan: Improve wording in DeferredClears.md
2021-10-19 weiweilin@google.com [milo] migrate to new bug_url_template
2021-10-19 gert.wollny@collabora.com Capture/Replay: Skip binary formats test when none are supported
2021-10-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from a9d8c46f2b61 to fe06f6ff26f8 (7 revisions)
2021-10-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 33eaf1f76b60 to 85101b9ec148 (7 revisions)
2021-10-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 54930e1ff6ee to 0d22e489aa33 (634 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 jcgregorio@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: jcgregorio@google.com
Change-Id: I759852ff50681ad1a7ec091a61a72804a8b7f0af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461397
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-20 05:20:28 +00:00
skia-autoroll
950ad78541 Roll Chromium from 26d05efa8664 to 0a219531705e (479 revisions)
26d05efa86..0a21953170

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 jcgregorio@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: jcgregorio@google.com
Change-Id: I8c13879352176ab31dd005ab670e841bc97f7212
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461396
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-20 05:15:33 +00:00
skia-autoroll
53f44b699b Roll SwiftShader from 7997cbc34bb2 to 6b700ffc6a8a (5 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/7997cbc34bb2..6b700ffc6a8a

2021-10-19 srisser@google.com Add VK_KHR_shader_integer_dot_product structs
2021-10-19 swiftshader.regress@gmail.com Regres: Update test lists @ 85101b9e
2021-10-19 capn@google.com Avoid SPIR-V binary identifier clashes
2021-10-19 capn@google.com Avoid recompiling identical SPIR-V binaries
2021-10-19 capn@google.com Store the SPIR-V binary of a vk::ShaderModule in an sw::SpirvBinary

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 jcgregorio@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: jcgregorio@google.com
Change-Id: Ia70add10f81248b9cdf4b64df223db8fca83b78e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461398
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-20 05:08:32 +00:00
skia-autoroll
3208de5b3f Roll Dawn from 40b73c646e2d to ba0d653b8c00 (15 revisions)
https://dawn.googlesource.com/dawn.git/+log/40b73c646e2d..ba0d653b8c00

2021-10-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from c34f08dd4589 to 54180d6631b3 (1 revision)
2021-10-20 jiawei.shao@intel.com D3D12: Support [[num_workgroups]] for Dispatch
2021-10-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 7d0fc07b202b to c34f08dd4589 (2 revisions)
2021-10-19 enga@chromium.org Populate supported Vulkan limits from the backend
2021-10-19 lokokung@google.com Moves DestroyApiObject call into ApiObjectBase::DeleteThis
2021-10-19 bclayton@google.com dawn_node: Use the new CTS server runner
2021-10-19 yunchao.he@intel.com Add validation rule for depth/stencil between bundle and pass
2021-10-19 bclayton@google.com dawn_node: Run CTS serially if --j 0 is specified
2021-10-19 bclayton@google.com dawn_node: Only rebuild CTS if something has changed
2021-10-19 amaiorano@google.com D3D12: dump disassembled DXBC when dump_shaders is enabled
2021-10-19 bclayton@google.com dawn_node: Track promises
2021-10-19 bclayton@google.com dawn_node: Prevent setImmediate() being queued multiple times
2021-10-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 5f5d43ff5193 to 7d0fc07b202b (1 revision)
2021-10-19 bajones@chromium.org Improve errors in BindGroupLayout, BindingInfo
2021-10-19 enga@chromium.org Add tests for some limits

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 5f5d43ff5193 to 54180d6631b3

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 jrprice@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: jrprice@google.com
Change-Id: I979ffa555fa0160950cad1f10ad408f4d5fe0ba6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461399
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-20 04:45:37 +00:00
Michael Ludwig
40b143c174 [graphite] Add mapRect(skgpu::Rect) to Transform
While we won't be transforming shapes, we do need an accurate way to
transform bounding boxes to device space. Right now this just uses
SkM44's mapRect function and converts to/from an SkRect. However,
under the hood SkM44 uses a similar negation trick as skgpu::Rect so
I need to explore if using Rect's internal structure directly will let
us compute the bounding box with fewer operations.

Additionally, SkM44's mapRect clips to a fixed w=epsilon plane, and I
think Transform::mapRect should just do the right thing and handle
w clipping/projection as accurately as possible.

Bug: skia:12466
Change-Id: I08c9df6c40cbcdcd8f622baae222bdf361d59070
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/460578
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2021-10-20 00:03:58 +00:00
Michael Ludwig
3793335614 [graphite] Update Shape to use skgpu::Rect and float2
Switches Shape to store kRect types as skgpu::Rect instead of SkRect,
although it can be constructed or set from an SkRect. It returns a Rect
from rect() and bounds() now.

Also switches out the line to be constructed from float2's, and re-use
the fRect storage to store the first segment vertex in topLeft and
the second vertex in botRight.

Bug: skia:12466
Change-Id: I1032fb6f222b0853305186c0e34091b014ae0cea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/460577
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-10-19 23:25:48 +00:00
Jim Van Verth
c9b9174475 [graphite] Use std::move when adding RenderPass attachment to CmdBuffer
This step was missing from the previous CL.

Bug: skia:12466
Change-Id: I3da0082efefbabf6008fc8962d706f75f0743ecc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461176
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-10-19 23:07:02 +00:00
Chris Dalton
2fceb21cb7 [graphite] Add an IntersectionTree class
Implements a BSP tree with NEON/SSE optimizations that tracks
non-overlapping regions. This object can be used batch sets of paths
into non-overlapping draws. Performance on AppleM1 with our existing
benchmarks looks very promising:

    desk_motionmarkarcs.skp     1227 paths -> 69 draws    450us
    desk_motionmarksuits.skp    1417 paths -> 26 draws    201us
    desk_chalkboard.skp         1940 paths -> 11 draws     84us
    desk_ynevsvg.skp             859 paths -> 10 draws     31us
    desk_micrographygirl.skp     318 paths -> 29 draws     11us

Bug: skia:12466
Change-Id: I847a93ed726dea10cb403cb76e578bd81eb920d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/460298
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2021-10-19 19:45:01 +00:00
Florin Malita
b3460f9979 [skottie] Floatify Fractal Noise
Halfs are lacking sufficient precision for this effect.

Change-Id: If3c2cac34d465d74b7ad8228417c42950f48adfd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/461177
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-10-19 19:20:08 +00:00
Chris Dalton
e1bfa18fc5 [graphite] Rect::isEmptyOrNegative() -> Rect::isEmptyNegativeOrNan()
Bug: skia:12466
Change-Id: I89d41509b8158aabac5250f035115954e8ae7f4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/460655
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-10-19 18:07:30 +00:00
Chris Dalton
aa0600136c Extract ToolUtils::sniff_paths
Makes the path sniffing code from BisectSlide reusable.

Change-Id: I21c1e752590359c557c35804e5d5044d8041a308
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/460637
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-10-19 17:39:11 +00:00