Roll Skia from 4bdf90faf708 to d25aea76dbc7 (38 revisions) (#162746)

Roll Skia from 4bdf90faf708 to d25aea76dbc7 (38 revisions)

https://skia.googlesource.com/skia.git/+log/4bdf90faf708..d25aea76dbc7

2025-02-05 kjlubick@google.com Cleanups related to Masks and RRects
2025-02-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 9fa954563726 to 4d67b5012a2f (4 revisions)
2025-02-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 957bafb51066 to aa94da0253a2 (7 revisions)
2025-02-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from 16948351755e to aac2fe5e6d52 (9 revisions)
2025-02-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from 86cf34f50cbe to 28a2e8a45f16 (1 revision)
2025-02-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from 7132f397c4b2 to 83cddb9b590f (20 revisions)
2025-02-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 6fe9d7e0521b to 9fa954563726 (6 revisions)
2025-02-04 bungeman@google.com [pdf] Do not scale miterLimit
2025-02-04 briansalomon@gmail.com [graphite] list MtlGraphiteTypesPriv.h
in bazel/gn sources
2025-02-04 robertphillips@google.com [graphite] Add
PrecompileContext::precompile option
2025-02-04 hcm@google.com Merge 3 release notes into RELEASE_NOTES.md
2025-02-04 kjlubick@google.com Apply clang-tidy suggestion to
GrProcessorUnitTest.cpp
2025-02-04 lokokung@google.com [dawn][header] Use wgpu::StringView
instead of const char*.
2025-02-04 hcm@google.com Update Skia milestone to 135
2025-02-04 lokokung@google.com [dawn][headers] Use PassTimestampWrites.
2025-02-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 2e4b45a53a0e to 6fe9d7e0521b (10 revisions)
2025-02-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 44b5f0a59f2a to 957bafb51066 (6 revisions)
2025-02-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from f69f215a2ce4 to 16948351755e (9 revisions)
2025-02-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from acd89d9f169a to 7132f397c4b2 (15 revisions)
2025-02-03 egdaniel@google.com [Graphite] Update Vulkan buffer barriers.
2025-02-03 kjlubick@google.com Update skottie-base to include
skottie-dev files
2025-02-03 renatopereyra@google.com [Ganesh] Update Intel GPU mappings
in Vulkan backend
2025-02-03 jvanverth@google.com [graphite] Set up atlas-based clipping.
2025-02-03 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from de6d9c09f769 to 2e4b45a53a0e (30 revisions)
2025-02-03 robertphillips@google.com [graphite] Fix ContextOptions.h
#includes
2025-02-03 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 938de304bdcb to de6d9c09f769 (14 revisions)
2025-02-03 fmalita@google.com [skottie] Drop motion blur support
2025-02-03 robertphillips@google.com Make the Ganesh/Graphite DM
precompilation options more distinct
2025-02-03 robertphillips@google.com [graphite] Add API to return
Android-specific keys back to the user
2025-02-03 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from c469d593acab to acd89d9f169a (1 revision)
2025-02-03 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from 53594a79cc60 to f69f215a2ce4 (13 revisions)
2025-02-01 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
ANGLE from 439dfe5e2c51 to 44b5f0a59f2a (14 revisions)
2025-02-01 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
Dawn from 6bc6697d10a4 to c469d593acab (10 revisions)
2025-01-31 egdaniel@google.com [Graphite] Use Dawn
disable_lazy_clear_for_mapped_at_creation_buffer toggle
2025-01-31 fmalita@google.com [skottie] Visible track matte adjustments
2025-01-31 robertphillips@google.com Actually draw the new gradient
interpolation types
2025-01-31 bwils@google.com Skottie no longer checks version is set
2025-01-31 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from e330d9595d80 to 439dfe5e2c51 (8 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC bdero@google.com,kjlubick@google.com,nicolettep@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
...
https://dart.googlesource.com/external/github.com/flutter/flutter/+/892f9c13a2bb79cf12e5795a3f0fec0a47c008cb
2 files changed
tree: a066c88f2b8577c592f962cc70948523496cf826
  1. ci/
  2. tools/
  3. .gitignore
  4. commits.json
  5. DEPS
  6. OWNERS
  7. README.md
README.md

Monorepo

A gclient solution for checking out Dart and Flutter source trees

Monorepo is:

  • Optimized for Tip-of-Tree testing: The Monorepo DEPS used to check out Dart and Flutter dependencies comes from the Flutter engine DEPS with updated dependencies from Dart.

Checking out Monorepo

With depot_tools installed and on your path, create a directory for your monorepo checkout and run these commands to create a gclient solution in that directory:

mkdir monorepo
cd monorepo
gclient config --unmanaged https://dart.googlesource.com/monorepo
gclient sync -D

This gives you a checkout in the monorepo directory that contains:

monorepo/
  DEPS - the DEPS used for this gclient checkout
  commits.json - the pinned commits for Dart, flutter/engine,
                 and flutter/flutter
  tools/ - scripts used to create monorepo DEPS
engine/src/ - the flutter/buildroot repo
    flutter/ - the flutter/engine repo
    out/ - the build directory, where Flutter engine builds are created
    third_party/ - Flutter dependencies checked out by DEPS
      dart/ - the Dart SDK checkout.
        third_party - Dart dependencies, also used by Flutter
flutter/ - the flutter/flutter repo

Building Flutter engine

Flutter's instructions for building the engine are at Compiling the engine

They can be followed closely, with a few changes:

  • Googlers working on Dart do not need to switch to Fuchsia's Goma RBE, except for Windows. The GOMA_DIR enviroment variable can just point to the .cipd_bin directory in a depot_tools installation, and just goma_ctl ensure_start is sufficient.
  • The --no-prebuilt-dart-sdk option has to be added to every gn command, so that the build is set up to build and use a local Dart SDK.
  • The --full-dart-sdk option must be added to gn for the host build target if you will be building web or desktop apps.

Example build commands that work on linux:

MONOREPO_PATH=$PWD
if [[ ! $PATH =~ (^|:)$MONOREPO_PATH/flutter/bin(:|$) ]]; then
  PATH=$MONOREPO_PATH/flutter/bin:$PATH
fi

export GOMA_DIR=$(dirname $(command -v gclient))/.cipd_bin
goma_ctl ensure_start

pushd engine/src
flutter/tools/gn --goma --no-prebuilt-dart-sdk --unoptimized --full-dart-sdk
autoninja -C out/host_debug_unopt
popd

Building Flutter apps

The Flutter commands used to build and run apps will use the locally built Flutter engine and Dart SDK, instead of the one downloaded by the Flutter tool, if the --local-engine option is provided.

For example, to build and run the Flutter spinning square sample on the web platform,

MONOREPO_PATH=$PWD
cd flutter/examples/layers
flutter --local-engine=host_debug_unopt \
  -d chrome run widgets/spinning_square.dart
cd $MONOREPO_PATH

To build for desktop, specify the desktop platform device in flutter run as -d macos or -d linux or -d windows. You may also need to run the command

flutter create --platforms=windows,macos,linux

on existing apps, such as sample apps. New apps created with flutter create already include these support files. Details of desktop support are at Desktop Support for Flutter

Testing

Tests in the Flutter source tree can be run with the flutter test command, run in the directory of a package containing tests. For example:

MONOREPO_PATH=$PWD
cd flutter/packages/flutter
flutter test --local-engine=host_debug_unopt
cd $MONOREPO_PATH

Troubleshooting

Please file an issue or email the dart-engprod team with any problems with or questions about using monorepo.

We will update this documentation to address them.

  • flutter commands may download the engine and Dart SDK files for the configured channel, even though they will be using the local engine and its SDK.

Windows

  • On Windows, gclient sync needs to be run in an administrator session, because some installed dependencies create symlinks.