Follow-up to https://github.com/flutter/flutter/pull/160937
(https://github.com/flutter/flutter/issues/160933).
This more or less mirrors what we did already for `onSurfaceCreated` to
match `onSurfaceAvailable`.
With this approach, the master branch should immediately start seeing
better behavior in terms of being able to use the `onSurfaceDestroyed`
callback effectively (before the surface has been released). For
example, for a plugin that already uses `onSurfaceDestroyed`, [i.e
`camerax`](97ce56a68e/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java):
```java
@Override
public void onSurfaceDestroyed() {
// Invalidate the SurfaceRequest so that CameraX knows to to make a new request
// for a surface.
request.invalidate();
}
```
... the request is now invalidated _before_ the surface has been
destroyed, which is what (I believe) we wanted?
---
Folks that want to publish package updates that _definitely_ use the
correct timing will have to wait for the next stable.
/cc @hasali19 would be great to get your input here.
Auto-generated by `dart testing/skia_gold_client/tool/generate.dart`.
This is just to make sure that everything is working after the recent
configuration.
Closes https://github.com/flutter/flutter/issues/157206.
I also added a `prefix` that will default to `engine.` to avoid
accidentally stomping on golden names across repos.
/cc @gaaclarke for visibility, @Piinks for visibility.
(I would love to get rid of this "engine copy" of the client as part of
longer-term mono repo deduplication).
Unblocks https://github.com/flutter/flutter/pull/160556.
Currently the merge queue runs in post-submit mode, which looks for (and
fails to find) digests for PRs that have not yet been submitted,
blocking the engine goldens from being enabled/checked in
https://github.com/flutter/flutter/pull/160556. This PR is a proposal to
fix that by skipping the tests.
We might decide instead that tests should not be running in the merge
queue at all, in which case we will _not_ merge this PR and will change
how the merge queue works instead. Otherwise this PR is a proof of
concept of [aligning implementations with the
framework](a9b3f6c042/packages/flutter_goldens/lib/flutter_goldens.dart (L338)).
Ensures that the onscreen command buffer is blocked via the render ready
semaphore, instead of just the layout transition. I can confirm this
fixes the rendering artifacts on the Samsung a50 - which I suspect are
the same as the issues these other devices are having. Essentially,
without the semaphore protecting the onscreen pass we can end up writing
to the color attachment while it is still being read.
* https://github.com/flutter/flutter/issues/160522
* https://github.com/flutter/flutter/issues/160370
Closes https://github.com/flutter/flutter/issues/160933.
The timing of this callback gives our users (and plugin authors) a
chance to stop using the `Surface` before it becomes invalid, allowing
us to fix https://github.com/flutter/flutter/issues/156488 - we no
longer need to do shenanigans on storing and restoring state because
`ExoPlayer` can now handle it out of the box; see
https://github.com/flutter/flutter/issues/160933#issuecomment-2564092567.
It's unfortunate we have to go through a bit of churn on the callback
API, but realistically this _is_ the feedback we were looking for when
originally creating it - it just took longer than expected due to the
long release cycle.
/cc @hasali19, @xxoo, @camsim99
Now that "auto" is not supported anymore, it makes more sense to make
this dart define false by default. And there's no need to pass
`FLUTTER_WEB_AUTO_DETECT=false` anymore.
A few clarifications in the gclient file templates:
* Sort sections such that RBE and standard variants are consistent.
* Add web engine instructions in comments.
* Explain how to use SSH-based GitHub checkouts.
Fixes https://github.com/flutter/flutter/issues/160593
Primitive Restart cannot be used on some (All?) Adreno's because it
causes a dramatic performance regression. Opt out and use the GLES
strategy. Refactors the batch submit command buffer capability into
workarounds_vk
This is no longer working after the monorepo merge:
https://github.com/flutter/flutter/issues/160670.
That issue tracks instead teaching the `Linux ci_yaml flutter roller` to
roll both sets of configurations.
Changes since last roll:
```
fc5db8ea927 Version 3.7.0-267.0.dev
601e85438f3 [tests] Cascade tests for static member and constructor enum shorthands.
4093bdaf5a8 [vm] Change try-catch IL representation.
b3ab7e274c5 Elements. Migrate lib/src/generated/ffi_verifier.dart
6e5fb8baa16 [dart2wasm] Add support for dynamic module options.
7bea7d185d4 [dart2wasm] Add indirection for struct initialization.
```
Fixes https://github.com/flutter/flutter/issues/160480
Both The Impeller and Skia variant of the OES texture rendering use the
same shared code path, so the Impeller code must match the weird 1x1
texture behavior of Skia. In addition, we have to add back the
TiledTextureContents support, since we need to render a texture with a
transform. I had previously tested this but neglected to force the
SurfaceTexture path, so I only tested the ImageReader path which does
not use a transform.
Changes since last roll:
```
85569ab5b39 Version 3.7.0-266.0.dev
8c1fa6d05b8 [tfa,aot,dart2wasm] Allow tree-shaking of extension type members independently of their tear-offs
5078a20a6d5 [cfe] Use OffsetMap for BodyBuilder.finishFields
a6b0fced839 [tfa,aot,dart2wasm] Retain libraries which only have extensions and extension types
4bcb4b10443 (tag: 3.7.0-265.0.dev) Version 3.7.0-265.0.dev
982b9fad444 [vm] Turn on entry point checking in JIT mode.
04530d578ff Roll dart_style 3.0.1 into the SDK.
c2abea31557 [deps] Roll dart-lang/native
3b056e1d500 [dart2wasm] Fix deferred loading tests on optimized configs.
ca668b701c3 (tag: 3.7.0-264.0.dev) Version 3.7.0-264.0.dev
54af9b3a39a (tag: 3.7.0-263.0.dev) Version 3.7.0-263.0.dev
72acd9d0ff3 [dart:svg] Add value->newLength parameter name change to templates
57c4da6911d Make Driver.instrumentationService private and final
f934e392f2d analyzer: Remove unnecessary Driver.httpServer
c5c3544b71f Fix Fuchsia build error.
2f857baba7e [dart2js] Make an check.
b3e7e027380 (tag: 3.7.0-262.0.dev) Version 3.7.0-262.0.dev
08252fc9e91 [dartdev] Use VmInteropHandler for invoking sub commands
96c4e4c81f8 [dart2wasm] Use field type instead of global type for static field type.
e3e7ca846a8 [gardening] Fix service/uri_mappings_lookup_test.
580107f8474 Migrate generic_type_alias.test
0a5a8f17af8 [vm] Remove BaseIsolate as it serves no purposes anymore.
9820487a3c4 [analyzer] Support enclosingFragments that are local variables
dbf60082974 DAS: Support monospaced text (eg code snippets) in generated doc comments
59499d362a2 [dart2wasm] Add support for declaring functions as module elements.
a0e1bce4b27 (tag: 3.7.0-261.0.dev) Version 3.7.0-261.0.dev
96fbc264ca1 [dart2wasm] Add indirection for dispatch table calls.
d261ded4c72 Bump tools to febccb92d228e678196aa90c109c708ed7ad6ea8
54d62b478d8 [analysis_server] Move Type Hierarchy off ElementLocation to its own internal uri/name encoding
b67f61a66c3 [tests] Additional tests for ?? with enum shorthands.
e1be04c4704 Implement element and fragment for generic function types
a9c3991a7a6 [analysis_server] Migrate LSP Find References to new element model
11904ed3871 [analyzer] Add LinterContext.currentUnit and use it for content in eol_at_end_of_file
38bce3f507d Elements. Migrate test/generated/simple_resolver_test.dart
34cf29701be Elements. Migrate test/src/dart/analysis/search_test.dart
e70a91d8e38 [analyzer/linter] Simplify implementation of rule State
ee5c4b00840 Roll BoringSSL from 57f525e425a9 to ee0c13ad1808 (22 revisions)
42f0e9aa15b analyzer: Report bad type arg on implicit call
8cc449ac8c1 [dart2wasm] Add utils for pragma reading and updating.
04d70b9fb40 analyzer: Make ResolutionVisitor._libraryElement final
d0f34d918f2 [dynamic_modules] Fix multiple_classes/dynamic_interfaces.yaml for vm.
3fba5fb4633 DAS: Seal TypeDecl for simpler switches
946f3287b46 [dart2wasm] Clean up some dead or unnecessary code.
231b463e8fc Roll Fuchsia SDK from 26.20241210.5.1 to 26.20241211.4.1
4e4fec1830b DAS: Correct some broken comment references
69fef4b123c Elements. Use impl types in a few places to avoid casts.
```
These tests are slightly flakey due to the macos cache issue. These
aren't actually tests, instead the prepopulate an RBE cache - so the
failure shouldn't close the tree, because cold caches isn't a failure
state (its just unfortunate).
This splits the web engine into a build phase and a test phase. This
requires a few changes:
* Modify the `generate_builder_json.dart` command to produce two
separate json builder files, `linux_web_engine_build.json` and
`linux_web_engine_test.json`. The former is left as the existing builder
with `release_build: true` (which will run in the merge queue) and the
latter is added as a new builder that runs in the second CI phase.
* Change the `copy_artifacts_step.dart` to pull built artifacts from the
GCS bucket when on LUCI, instead of relying on the CAS bucket. This is
necessary to do the tests separately from the build.
* Move the `felt test --copy-artifacts` command from the build steps to
the test steps, since the test steps themselves need to pull from GCS
instead of relying on the artifacts being populated by CAS.
It takes 30 minutes while all other bots are done in 10-20 minutes. The
old Windows build used to test in IE11 and old Edge. Since we stopped
testing on those we switched to Chromium, but that doesn't provide any
extra signal in addition to what we get from Linux Chromium already.
Adds files from flutter/flaux which contain modifications for the engine
structure. The history for engine/ has been edited. Please see
flutter/engine for the original PRs.