Roll ANGLE from 6a09e41ce6ea to 962fdf7b7882 (224 revisions) (#45400)

Roll ANGLE from 6a09e41ce6ea to 962fdf7b7882 (224 revisions)

https://chromium.googlesource.com/angle/angle.git/+log/6a09e41ce6ea..962fdf7b7882

2023-09-01 cclao@google.com Add templated BinaryOutputStream::writeVector and writeStruct
2023-09-01 mark@lunarg.com Tests: Limit CapturedTest to Vulkan backend
2023-09-01 romanl@google.com Traces: temporary patch to log zlib message on failure
2023-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from a745d5c29c56 to 385ae8bed1f9 (7 revisions)
2023-09-01 romanl@google.com Revert "Gold tests: add temporary logging of angledata hashes"
2023-09-01 romanl@google.com Revert "Traces: add temporary debug info to LoadBinaryData"
2023-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 988fe1c529b0 to 15007d22798e (6 revisions)
2023-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from f59e85c23631 to 613933d34730 (499 revisions)
2023-09-01 lexa.knyazev@gmail.com Validate missing fragment outputs for dual-source blending
2023-09-01 cclao@google.com Add more test for GL_SRGB8 format
2023-08-31 ynovikov@chromium.org Skip 2 DrawCallPerfBenchmark tests on Pixel 6
2023-08-31 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll vulkan-deps from a446c6320b6b to 988fe1c529b0 (28 revisions)
2023-08-31 syoussefi@chromium.org Move transform feedback buffer mode to program state
2023-08-31 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll Chromium from 90200ab2e92a to f59e85c23631 (744 revisions)
2023-08-31 syoussefi@chromium.org Clean up InfoLog usage during link
2023-08-31 jiawei.shao@intel.com D3D11: Fix register index of read-only storage images
2023-08-31 syoussefi@chromium.org Remove link results from program hash
2023-08-31 ynovikov@chromium.org Don't sync reclient on linux arm64
2023-08-31 romanl@google.com Cleanup: remove tests.csv
2023-08-31 steven@uplinklabs.net d3d11: avoid exit-time-destructor warning
2023-08-31 geofflang@chromium.org Handle Qualcomm's Windows vendor ID.
2023-08-31 jiawei.shao@intel.com D3D11: Fix the compilation of vertex shader with storage image
2023-08-31 romanl@google.com Tests: EGLMakeCurrentPerfTest loads GLES
2023-08-31 zzyiwei@chromium.org Vulkan: disallow pbo copies when offset is incompatible with vulkan
2023-08-30 cclao@google.com Add GL_RGBX8_SRGB_ANGLEX and GL_BGRX8_SRGB_ANGLEX formats
2023-08-30 geofflang@chromium.org Check that postTask is non-null before calling it.
2023-08-30 sokcevic@chromium.org [DEPS] Use Var instead of {} in DEPS
2023-08-30 jonahr@google.com Metal: Fix dropped out arguments from functions with many args.
2023-08-30 m.maiya@samsung.com Vulkan: Support EGL_EXT_gl_colorspace_bt2020
2023-08-30 phanquangminh217@gmail.com Add support for EGL_MESA_platfrom_surfaceless extension
2023-08-30 phanquangminh217@gmail.com egl: Fix device fallback if native display eglInitialize fails
2023-08-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e2ad2e99dc98 to 90200ab2e92a (420 revisions)
2023-08-30 syoussefi@chromium.org Move pre-link program state to ProgramState
2023-08-30 lexa.knyazev@gmail.com Validate active draw buffers for dual-source blending
2023-08-30 syoussefi@chromium.org Vulkan: Stop passing both ProgramExecutable and ...Vk around
2023-08-30 syoussefi@chromium.org Metal: Move program state to ProgramExecutableMtl
2023-08-30 syoussefi@chromium.org GL: Move program state to ProgramExecutableGL
2023-08-30 syoussefi@chromium.org Move left over link state to ProgramExecutable
2023-08-29 geofflang@chromium.org Return the vendor string as hex when it is unknown.
2023-08-29 mikes@lunarg.com Add build overrides for Vulkan Utility Libraries
2023-08-29 syoussefi@chromium.org D3D: Move program state to ProgramExecutableD3D
2023-08-29 m.maiya@samsung.com EGL: Update EGL headers
2023-08-29 syoussefi@chromium.org Make ProgramExecutableImpl managed by ProgramExecutable
2023-08-29 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll Chromium from 2f13938f5894 to e2ad2e99dc98 (165 revisions)
2023-08-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d213632452c2 to a446c6320b6b (9 revisions)
2023-08-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 92b28610c8f3 to 2f13938f5894 (510 revisions)
...
https://dart.googlesource.com/external/github.com/flutter/engine/+/4a94cfe20f997dd254e620bbb8377b47723c010e
2 files changed
tree: fa624828f2d7f56e4c7910c0530aefd160fa322f
  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.