1078 Commits

Author SHA1 Message Date
gaaclarke
543348a044 [Impeller] Implements canvas recorder with trace serializer (flutter/engine#46376)
This implements a portion of impeller canvas recorder that just prints
log statements to understand what is getting rendered in impeller when
executing code from the framework. Eventually this should get moved to
the displaylist layer when we have golden and interactive tests at that
layer.

This was useful for me to debug a fidelity issue, the hope is that
others will find it useful and can expand it as necessary. Eventually
the recordings can be used to generate tests.

design doc:
[go/impeller-canvas-recorder](http://goto.google.com/impeller-canvas-recorder)

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2023-09-29 09:24:27 -07:00
godofredoc
421f68e13a Prepare fuchsia script to coexist with v1 and v2 of fuchsia builders. (flutter/engine#46126)
Prepares fuchsia scripts to work correctly when both v1 and v2 of the fuchsia build are running in their respective environments.

Bug: https://github.com/flutter/flutter/issues/126461
Bug: https://github.com/flutter/flutter/issues/135189

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-26 01:27:26 +00:00
Zachary Anderson
594738f2d5 In run_tests.py, separate Dart package unit tests from other tests (flutter/engine#46232)
This PR creates a new test type for `run_tests.py` called `dart-host`.
The tests remaining under the `dart` type are tests that run in
`flutter_tester`. The `dart-host` tests run in the Dart CLI. This allows
`run_tests.py` to be simplified a bit, and while doing this I spotted a
couple of mistakes that were causing some tests not to run.

This PR also makes a couple of small style fixes to the build config
json files, converting tabs to spaces, and moving some "script" fields
before the "parameters" fields.
2023-09-24 18:22:27 -07:00
Matan Lurey
3d3a76280d Move git_repo_tools and process_fakes outside of clang_tidy. (flutter/engine#46017)
Closes https://github.com/flutter/flutter/issues/134988.
2023-09-21 12:16:42 -07:00
Matan Lurey
6b09ca7f44 Delete ci/lint.sh, which is no longer used. (flutter/engine#46049)
Found out while working on
https://github.com/flutter/flutter/issues/134969.

I suspect this stopped being used when we sharded out the Clang Tidy
builders?
2023-09-20 11:29:10 -07:00
Matan Lurey
8af3ec1fb9 Provide a default --target-variant for clang_tidy. (flutter/engine#45909)
Using `engine_repo_tools`, provide a default `--target-variant` for the `clang_tidy` tool.

Mostly test code added below, the major change is that `--target-variant` now has a default other than `host_debug` if we're running inside of an engine root (which we ~always are). I didn't make any other changes (i.e. to the pre-commit hook) to keep this change smallish.

Also rewrote the `README.md` to represent the current state as best I could.
2023-09-18 22:34:27 +00:00
Michael Goderbauer
efc22ee283 Enable private field promotion (flutter/engine#45722)
New feature in upcoming Dart 3.2. See https://github.com/dart-lang/language/issues/2020. Feature is enabled by bumping the min SDK version to 3.2.

Part of https://github.com/flutter/flutter/issues/134476.
2023-09-14 21:02:03 +00:00
Matan Lurey
367f454a40 Do not run real processes in clang_tidy_test.dart (flutter/engine#45748)
Partial work towards https://github.com/flutter/flutter/issues/133190.

Some context, from @zanderso on chat:

@matanlurey:

> For
[`clang_tidy_test.dart`](c020936303/tools/clang_tidy/test/clang_tidy_test.dart),
what is your vision there? I remember we ran into problems with it
actually executing `clang.run()` in too many of the test cases, but I
don't remember (or seem to have written down) what we decided to do 🙂

@zanderso:

> The existing tests are calling `computeFilesOfInterest` and
`getLintCommandsForFiles` and inspecting the results for positive tests
instead of hitting a real clang-tidy invocation. Tests of command line
flags that call `clangTidy.run()` are also testing cases that
short-circuit or fail before making a real invocation. Making it harder
to do a real invocation from a unit test probably requires plumbing a
fake-able ProcessRunner or ProcessManager object through to the
ClangTidy constructor.

---

All this PR does is allow providing a `ProcessManager` (defaults to
`LocalProcessManager`, i.e. `dart:io`) throughout the tool. Then, for
tests, I've implemented a _very_ minimal fake of both `ProcessManager`
and `Process` (it would be nice to share code w/ say, `flutter_tool`,
but lots of work/overhead for very little surface area).

After this CL, no tests in `clang_tidy_test.dart` actually run a
process. This should unblock adding new features (i.e. original intent
of https://github.com/flutter/flutter/issues/133190) without causing
headaches for others/CI?
2023-09-13 09:49:49 -07:00
Chris Yang
7774d22632 [ios] upload extension safe artifacts (flutter/engine#45664)
Uploads the artifacts for extension safe build. These artifacts need to be codesigned.

part of https://github.com/flutter/flutter/issues/124291

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-12 22:20:14 +00:00
gaaclarke
296e9102a0 [Impeller] moved validation layers on by default logic to gni scripts (flutter/engine#45682)
fixes https://github.com/flutter/flutter/issues/134460

Test will happen in the flutter repo as a result of
https://github.com/flutter/flutter/issues/134175

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2023-09-12 09:41:55 -07:00
Greg Spencer
528ab0c90b Remove usage of the Jazzy document formatter for Objective C, in favor of Doxygen. (flutter/engine#45561)
## Description

This removes references to Jazzy, and removes the `gen_objcdoc.py` script, since that is now handled by `gen_docs.py`

## Related Issues
 - https://github.com/flutter/flutter/issues/124833

## Related PRs
 - https://github.com/flutter/flutter/pull/134246
2023-09-08 17:45:06 +00:00
Zachary Anderson
ba9fdc5ea2 Roll Fuchsia with license script fix (flutter/engine#45498)
For https://github.com/flutter/flutter/issues/134042
2023-09-06 12:57:58 -07:00
gaaclarke
fbea251722 Remove android API 26 bump for validation layers (flutter/engine#45468)
not necessary after: https://github.com/flutter/engine/pull/45350

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-06 17:40:05 +00:00
Zachary Anderson
81534e8ace Adds a Dart library for loading and parsing build configs (flutter/engine#45390)
Also adds a test that the build configs in the repo are valid json that
matches the spec.

Fleshed out @christopherfujino's code from here
https://github.com/christopherfujino/flutter-engine-runner/blob/main/main.dart
2023-09-05 10:00:44 -07:00
gaaclarke
d23968a976 [Impeller] turned on validations for all debug builds (flutter/engine#45350)
fixes https://github.com/flutter/flutter/issues/133794

This adds the following shared libraries to the flutter.jar for debug builds on arm64:
```
lib/arm64-v8a/libVkLayer_khronos_validation.so
lib/arm64-v8a/libc++_shared.so
```

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-01 23:29:22 +00:00
Hossein Yousefi
5409eadd3c Update comment const_finder.dart (flutter/engine#45180)
The arguments no longer seem to be all required and non-null. Updated the doc comment to reflect this.
2023-08-31 20:04:53 +00:00
Zachary Anderson
b308156778 Adds an --rbe option to tools/gn that works on Linux hosts (flutter/engine#45271)
This PR lands changes to `tools/gn` to use Flutter's RBE instance
instead of Goma. It is initially supported only for builds from a Linux
host.

1. Authenticate with `gcloud`
```
engine/src$ ./buildtools/linux-x64/gcloud/bin/gcloud auth application-default login --disable-quota-project
```

2. GN
```
engine/src$ ./flutter/tools/gn --android --android-cpu arm64 --no-lto --runtime-mode debug --rbe
```

3. Build
```
engine/src$ ninja -C out/android_debug_arm64 -j200
```
2023-08-31 11:31:17 -07:00
Matan Lurey
293bca4e65 Add a build_bucket_golden_scraper tool. (flutter/engine#45243)
As discussed offline, this is best deleted when Skia-gold is used for
all of our engine tests.

However, this will be useful for unblocking some PRs until then :)

See README.md for details!
2023-08-30 17:26:01 -07:00
Zachary Anderson
f127ba2c14 Clean up engine repo Dart code (flutter/engine#45203)
Also adds a test to ensure that all packages are accounted for.
2023-08-29 11:19:42 -07:00
Matan Lurey
b5eb6ab69a A minimal engine_tools_lib to use for local-repo Dart tooling (flutter/engine#45154)
Partial work towards re-landing #44936.

Both the `clang_tidy` and `githooks` passage could benefit from being
able to automatically find the latest `compile_commands.json` output,
which means that some common code should exist in the `tools/`
directory.

This is a very minimal (but tested) library for doing exactly that.
2023-08-28 19:25:56 -07:00
Jackson Gardner
69b2747ca3 Skwasm platform views (flutter/engine#43011)
This implements platform views in Skwasm. There are a number of substantial changes rolled up in this change, including:
* Reworked the rendering system to use multiple canvases with a single WebGL context, via ImageBitmap rendering.
* Reworked our object management and bindings to use the `__externref_t` construct in C code.
* Upgraded emscripten to a much newer version
* Generified skwasm's scene builder to be able to work with any renderer that can produce `ImageBitmap` objects from Pictures, and whose `Canvas`, `Picture` and `ImageFilter` objects conform to `SceneCanvas`/`ScenePicture`/`SceneImageFilter`

For platform views themselves, most stuff is implemented except for clipping. I plan on doing that in a subsequent change.
2023-08-28 16:29:14 +00:00
Reid Baker
d8b11bc6fa Update gradle to 7.5.1 (flutter/engine#45113)
fixes flutter/flutter#133259
Added gradle update instructions and bumped gradle version.
2023-08-25 17:34:03 +00:00
Greg Spencer
87e6e728ca Add quotes around Doxygen configuration values (flutter/engine#45087)
## Description

Add quotes are the Doxygen configuration values that may have spaces, since otherwise Doxygen strips them.
2023-08-25 16:41:04 +00:00
Jackson Gardner
9727494b65 Revert "Turn on the skia_enable_optimize_size flag to save a bit of binary size" (flutter/engine#45082)
Reverts flutter/engine#45029

It appears this is causing a regression in the length of time some of our integration tests are taking, causing them to take twice as long, which is causing timeouts in CI. We should revert while we investigate.
2023-08-24 22:00:47 +00:00
Gray Mackall
424b1c3829 Add case checking to android sdk cipd upload script (flutter/engine#45063)
See https://github.com/flutter/flutter/pull/131901#issuecomment-1690252455 for the reason for this PR.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-24 20:43:05 +00:00
Jackson Gardner
8cd127938f Turn on the skia_enable_optimize_size flag to save a bit of binary size (flutter/engine#45029)
This flag removes some code from CanvasKit to reduce size by a little bit. I went ahead and did a run of the benchmarks (https://github.com/flutter/flutter/pull/133208) to see if it negatively affected anything, and there was no difference beyond noise between the current benchmark numbers and the benchmarks with this flag enabled.

The size differences are as follows:
Before the change:
```
total 30616
drwxr-xr-x  11 jacksongardner  primarygroup      352 Aug 23 14:33 .
drwxr-xr-x   7 jacksongardner  primarygroup      224 Aug 10 18:14 ..
-rw-r--r--@  1 jacksongardner  primarygroup     6148 May 12 17:41 .DS_Store
-rw-r--r--   2 jacksongardner  primarygroup    94899 Aug 23 14:23 canvaskit.js
-rwxr-xr-x   2 jacksongardner  primarygroup  6631693 Aug 23 14:23 canvaskit.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  2102151 Aug 23 14:23 canvaskit.wasm.br
drwxr-xr-x   5 jacksongardner  primarygroup      160 Aug 23 14:33 chromium
-rw-r--r--   2 jacksongardner  primarygroup   161478 Aug 23 14:28 skwasm.js
-rwxr-xr-x   2 jacksongardner  primarygroup  3296038 Aug 23 14:28 skwasm.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  1101502 Aug 23 14:28 skwasm.wasm.br
-rw-r--r--   2 jacksongardner  primarygroup     3095 Aug 23 14:28 skwasm.worker.js

./chromium:
total 15520
drwxr-xr-x   5 jacksongardner  primarygroup      160 Aug 23 14:33 .
drwxr-xr-x  11 jacksongardner  primarygroup      352 Aug 23 14:33 ..
-rw-r--r--   2 jacksongardner  primarygroup    94545 Aug 23 14:25 canvaskit.js
-rwxr-xr-x   2 jacksongardner  primarygroup  5223378 Aug 23 14:25 canvaskit.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  1492433 Aug 23 14:25 canvaskit.wasm.br
```

After the change:
```
total 28568
drwxr-xr-x  11 jacksongardner  primarygroup      352 Aug 23 14:42 .
drwxr-xr-x   7 jacksongardner  primarygroup      224 Aug 10 18:14 ..
-rw-r--r--@  1 jacksongardner  primarygroup     6148 May 12 17:41 .DS_Store
-rw-r--r--   2 jacksongardner  primarygroup    94899 Aug 23 14:37 canvaskit.js
-rwxr-xr-x   2 jacksongardner  primarygroup  6401703 Aug 23 14:37 canvaskit.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  2038390 Aug 23 14:37 canvaskit.wasm.br
drwxr-xr-x   5 jacksongardner  primarygroup      160 Aug 23 14:42 chromium
-rw-r--r--   2 jacksongardner  primarygroup   161478 Aug 23 14:41 skwasm.js
-rwxr-xr-x   2 jacksongardner  primarygroup  3143431 Aug 23 14:41 skwasm.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  1050854 Aug 23 14:41 skwasm.wasm.br
-rw-r--r--   2 jacksongardner  primarygroup     3095 Aug 23 14:41 skwasm.worker.js

./chromium:
total 15392
drwxr-xr-x   5 jacksongardner  primarygroup      160 Aug 23 14:42 .
drwxr-xr-x  11 jacksongardner  primarygroup      352 Aug 23 14:42 ..
-rw-r--r--   2 jacksongardner  primarygroup    94545 Aug 23 14:39 canvaskit.js
-rwxr-xr-x   2 jacksongardner  primarygroup  4993586 Aug 23 14:39 canvaskit.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  1427979 Aug 23 14:39 canvaskit.wasm.br
```

The brotli-compressed wasm modules save about 50-70kb each with this flag.
2023-08-24 18:52:22 +00:00
Jason Simmons
bdc7ac47a4 Remove a clang-tidy test that launches a full run of clang-tidy (flutter/engine#45033)
This can take a lot of time or be overly dependent on configuration details of the local git repository.
2023-08-24 01:24:26 +00:00
Brandon DeRosier
cf500170ce Revert "Enable clang-tidy for pre-push (opt-out), exclude performance-unnecessary-value-param" (flutter/engine#45020)
Reverts flutter/engine#44936
2023-08-23 20:17:13 +00:00
Brandon DeRosier
e5c4a38d8b [Impeller] Add STB text backend. (flutter/engine#44887)
Pull the STB text backend into the engine from impeller-cmake.
2023-08-23 13:06:50 -07:00
Matan Lurey
8d8a108d8a Enable clang-tidy for pre-push (opt-out), exclude performance-unnecessary-value-param (flutter/engine#44936)
Closes https://github.com/flutter/flutter/issues/132687.

Zach, this is a pretty naive attempt, so feel free to suggest alternatives. I considered for example just using `--checks=-{{LINT}}` as well, but figured that might be less discoverable (especially for non-core folks) than just a file called `.clang-tidy-for-githooks`.

/cc @jonahwilliams
2023-08-23 01:02:23 +00:00
Matan Lurey
af5d8338a9 Disallow using ./tools/gn --enable-unittests --android (or --ios) (flutter/engine#44930)
Closes https://github.com/flutter/flutter/issues/132611.

As seen on https://github.com/flutter/flutter/issues/132611, this will
never succeed compiling.

I tried to update the Wiki as well:

https://github.com/flutter/flutter/wiki/Setting-up-the-Engine-development-environment#vscode-with-cc-intellisense-cc
2023-08-21 20:20:01 -07:00
Greg Spencer
2bcecf60c9 Change Doxyfile options to not create subdirs (flutter/engine#44855)
## Description

This turns off the Doxyfile option `CREATE_SUBDIRS` because it prevents deep link URLs from being stable. It means that thousands of files will be in the main directory, but the filesystem should be able to handle that.

I got rid of the header/footer files for doxygen (because Doxygen will generate them anyhow) and fixed where it was looking for the Flutter logo.

I also ran Doxygen on the Doxyfile template and Doxyfile and updated all the options to correspond with the latest Doxygen.
2023-08-21 17:39:06 +00:00
Jackson Gardner
ab84ec613c Allow optional codepoints to be expressed to the font subset generator. (flutter/engine#44864)
This is the engine side change to fix https://github.com/flutter/flutter/issues/132711. There will be a subsequent framework change to express the space character as an "optional" character.
2023-08-18 22:08:10 +00:00
Greg Spencer
fc5b70b5d4 Add Doxygen doc generation for iOS, macOS, Linux, Windows, and Impeller (flutter/engine#43915)
## Description

This starts generating Doxygen docs for iOS, macOS, Linux, Windows, and Impeller. It doesn't remove the existing generation for iOS for now, until we can migrate the API docs to include these instead of those.

## Related Issues
 - https://github.com/flutter/flutter/issues/130999
 - Fixes https://github.com/flutter/flutter/issues/124833
2023-08-17 20:49:05 +00:00
Matan Lurey
809b6b8fa0 Passthrough stderr results of clang_tidy when --enable-check-profile. (flutter/engine#44789)
Required to actually see the results of the profile :)
2023-08-17 00:58:02 +00:00
Matan Lurey
c9246dfaf1 Add an optional '--enable-check-profile' to 'tools/clang_tidy'. (flutter/engine#44773)
Example usage:

```shell
$ dart tools/clang_tidy/bin/main.dart --lint-all --enable-check-profile
```

I plan to use this to help triage why clang_tidy takes so long, and if
particular rules are contributing to most of the cost.
2023-08-16 13:06:01 -07:00
Zachary Anderson
f8fb1ab5ea Update android_embedding_bundle CIPD instructions (flutter/engine#44644)
This PR updates the gradle build file for the android_embedding_bundle
cipd package to fetch license information about the dependencies listed
under `tools/androidx/files.json`. The README file for the
android_embedding_bundle now explains how to fetch the license
information and make sure it's correct in the cipd package.

This PR also pulls a new version of android_embedding_dependencies that
includes a `LICENSE` file.

It turns out that Flutter does not re-ship anything from the embedding
bundle to Flutter end-users. These dependencies are only used to create
a classpath against which we build the Android embedder and in-tree
tests. I've updated docs/comments to clarify that since I was initially
confused about how these were used.

I'm not adding a test that compares the license info fetched from maven
against a checked-in golden, yet. Still thinking about the most
effective way to do that in combination with the steps in the README.
2023-08-14 15:15:26 -07:00
Gray Mackall
8cce730f9b Fix name in description of 'create_cipd_packages.sh' (flutter/engine#44513)
The description uses an old name.

This PR also partly exists to spread awareness that this script exists, for whenever we need to upload [android versions to CIPD](https://chrome-infra-packages.appspot.com/p/flutter/android/sdk/all/mac-arm64/+/).

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-08 21:49:48 +00:00
Jason Simmons
64028157f8 Improve logging in the clang-tidy script (flutter/engine#44228)
* Add timestamps to process pool status logs
* Log the remaining job names when only a few jobs are pending

See https://github.com/flutter/flutter/issues/131689
2023-08-02 13:42:33 -07:00
Chris Yang
39fd1931c6 [iOS] Add darwin_extension_safe flag and use UIScene api when building for extensions (flutter/engine#43449)
iOS extensions forbids the usage of UIApplication.sharedApplication. This PR refactors the engine to use UISceneAPI when darwin_extension_safe flag is on. Using UISceneAPI can help avoid the usage of `UIApplication.sharedApplication` as much as possible.
This PR also added a new `_extension_safe` variant for the engine build so all the logic with the `darwin_extension_safe` flag is on can be tested separately.

This PR doesn't enable the engine to build for the extension even when darwin_extension_safe is true.

part of https://github.com/flutter/flutter/issues/124289

There are several issues related to UIApplication life cycle and I manually tested they still work with the scene API:

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-01 18:12:45 +00:00
David Worsham
716b6a2cd4 [fuchsia] Only use upstream vulkan headers (flutter/engine#44157)
Stop using the special fuchsia headers, as they are contributing to
undefined behavior when building with LTO.
They are also no longer needed. All relevant fuchsia extensions were
upstreamed some time ago.

In the process, engage in some cleanup which means the "vulkan_config"
is also no longer needed. Rely on GN "public_deps" to provide the vulkan
include paths to various source sets.

See b/291462180 for more details on why this fix was neccesary.
2023-08-01 13:17:14 +10:00
Jason Simmons
208c8eb4bf Set the required Android API level when Vulkan validation layers are automatically enabled for android_debug_unopt_arm64 builds (flutter/engine#44116)
The Vulkan validation layer headers will not build if the Android API level is 23 or lower.

Currently the engine buildroot's default Android API level is 23.  The API level must be overridden for any configuration where Vulkan validation is enabled.
2023-07-28 21:44:50 +00:00
Camille Simon
39cbbd22a3 [Android] Removes handling of Flutter splash screen (flutter/engine#44047)
Fixes https://github.com/flutter/flutter/issues/105173.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-07-28 18:08:35 +00:00
Matan Lurey
88cfeedf51 [Impeller] Set 'enable_vulkan_validation_layers' if --unopt and Vulkan is enabled. (flutter/engine#44055)
Context:

> @matanlurey:
> Would it make sense for `--unopt` to imply
`--enable-vulkan-validation-layers` if `--enable-vulkan` is set?
> The reason I ask is because it does seem to imply `glGetError` checks,
which (I could be wrong) is roughly similar?

> @chinmaygarde:
> Makes sense.

... so uh, here it is (let me know if we prefer anything different).
2023-07-27 22:48:22 -07:00
Jason Simmons
067f782825 Ignore the NOTICE.fuchsia file in the new license script (flutter/engine#44021)
See https://github.com/flutter/engine/pull/34038
2023-07-27 04:37:19 +00:00
Dan Field
c1314cc717 Embed a license readme in every zip archive (flutter/engine#43974)
fixes https://github.com/flutter/flutter/issues/130682

This patch makes all zip files created via the zip_bundle rule have an embedded LICENSE that points to a permalink to the LICENSE for that SDK commit hash. Previously we only did this for a few tools, but it was pointed out that some of the zip files we generate that are meant for consumption in the tool are otherwise missing a stand-alone license file (the tool downloads the full license file separately from the individual zips, as it would be costly to include it with each and every one).
2023-07-27 03:56:09 +00:00
Zachary Anderson
2fc2fa8503 Reset Dart VM optimization level to 2 (flutter/engine#43770)
Partial revert of https://github.com/flutter/engine/pull/43743

Setting the optimization level to `-Oz` reduced compressed binary size by 200KB, but regressed performance by 10-15% across the board (frame build time, gen_snapshot runtime, hot reload time, etc.)
2023-07-18 17:21:45 +00:00
Zachary Anderson
a48c39ab7e Add a GN flag to set the Dart VM's optimization level (flutter/engine#43743)
And set the level to `-Oz` for iOS and Android.
2023-07-17 18:57:08 -07:00
Jason Simmons
5c61353b89 Move Dart licenses into a separate golden file (flutter/engine#43289)
This will avoid conflicts between Dart rolls and rolls of other third
party components such as ANGLE.
2023-07-17 14:02:00 -07:00
Ian Hickson
93a21790b4 Make GOMA state automatic by default (flutter/engine#43584)
We used to default to force-enabled, which would fail on non-GOMA setups.
2023-07-13 06:34:51 +00:00