Commit Graph

23 Commits

Author SHA1 Message Date
flutter-pub-roller-bot
c4851857be
Roll pub packages (#163083)
This PR was generated by `flutter update-packages --force-upgrade`.
2025-02-11 23:47:59 +00:00
Jonah Williams
7f783e3587
[Android] fix hcpp tapping, again, and add test. (#163035)
I didn't actually fix it. lets add a test this time.
2025-02-11 20:32:34 +00:00
Jonah Williams
761c1623ca
[Android] fix hcpp overlay layer intersection. (#163024)
Since we only have a single overlay layer, we need to diff out the
platform views that _would_ intersect if we did the correct layering.
2025-02-11 17:13:19 +00:00
Jonah Williams
7cd9e0f640
[Android] Remove overlay when platform views are removed from screen. (#162908)
When there are no more platform views, make sure the overlay layer is
hidden. When a platform view is added again, show the overlay. The
show/hide allows us to avoid continually recreating and destroying the
overlay surface + swapchain when a platform view slides in and out of
frame.

To further reduce memory usage, we could do a delayed de-allocation of
the overlay layer (say after 50 frames of no platform view, destroy it).
But I'm leaving this to a follow up.
2025-02-11 02:29:07 +00:00
Matan Lurey
7afc8557a4
Try golden-testing on a Mokey (bringup: true), retry on an emulator (#163029)
Towards https://github.com/flutter/flutter/issues/162362 (see if retries
help VD on an emulator).
Towards https://github.com/flutter/flutter/issues/163025 (see if we can
golden-test on a device).

May the odds be in our favor.
2025-02-11 01:46:24 +00:00
Jonah Williams
9438fd4471
[Android] add runtime flag to determine if HCPP is supported. (#163004)
Developers will need to _conditionally_ use HCPP (or the framework will
need to handle it automatically). This requires the ability to query at
runtime whether HCPP mode is enabled + supported.

Add a message channel to do so, and add the usage of this to the
android_engine_test. Does not yet add any automatic selection.

---------

Co-authored-by: Matan Lurey <matanlurey@users.noreply.github.com>
2025-02-10 22:43:25 +00:00
Jonah Williams
53bcdf2cda
[Android] Make PVC1 and PVC2 share a platform view registry. (#162857)
This avoids the insanity of having to register everything twice. Since
the object is shared a registration on pvc1 will automatically apply to
pvc2.
2025-02-08 01:05:00 +00:00
Jonah Williams
045fb9989c
Make sure to opt hcpp tests into using hcpp (#162906)
🤦
2025-02-07 23:17:06 +00:00
Matan Lurey
6e631c5a46
Delete un-tested hybrid_android_views, add layering to android_engine_test. (#162903)
Another large test suite that has never been running.

The underlying thing I _think_ it wanted tested, which was hybrid
composition, is now tested by `android_engine_test`. I also added a red
square on top of each platform view so that, like
`hybrid_android_views`, we can make sure layering is working as
expected.

Any other ideas? Can also be follow-up PRs?
2025-02-07 21:51:54 +00:00
Jonah Williams
f0396970e9
[Android] HC++ wire up dart platform channel code and integration test. (#162751)
Use the PlatformViewController2 to register a platform view, allow the
dart side platform view logic to opt into this new platform view. Wires
up an integration test with android_engine_test.
2025-02-07 03:09:24 +00:00
Ben Konyi
3e3bb9fdd5
Roll package:vm_service to 15.0.0 and package:leak_tracker to 10.0.9 (#162325) 2025-01-30 15:26:56 +00:00
Matan Lurey
536408fd6d
Add 2 retries for hybrid composition platform views. (#162400)
Trying to figure out if flake reports
https://github.com/flutter/flutter/issues/162362 and
https://github.com/flutter/flutter/issues/162363 are related to
https://github.com/flutter/flutter/issues/162310.

I was unable to reproduce locally:

```sh
dart tool/deflake.dart lib/platform_view/hybrid_composition_platform_view_main.dart
```

... so either the Mac Android emulators don't show this behavior, or
perhaps its just the slowness of CI VMs.

Either way, this should try taking a screenshot 2 more times (which has
built-in waits/sleeps), so if the problem persists that means there is a
more critical HC problem (the screen is _always_ drawn black sometimes)
versus a more transient problem (it "takes longer").
2025-01-29 22:30:04 +00:00
Matan Lurey
9cc132d4c2
Force Impeller backend for android_engine_test, and test both OpenGLES and Vulkan (#162089)
A few changes in this PR (could have been split up, but that would take
an extra 4 hours - 2 days in CI time):

- Removed the old `flutter_driver_android_test` shards and references
- Override `AndroidManifest.xml` per backend, forcing that backend to be
used (no fallbacks) or it fails
- Bumps the Android emulator to 35 due to the use of magic strings, I
think

The check for the Impeller backend actually being used is the honor
system right now, as a bug in `flutter drive`
(https://github.com/flutter/flutter/issues/162087) prevents me from
seeing error output, meaning that it's impossible to be sure a
particular Impeller backend is used (or understand why a crash happens),
so I guess I'll work on that next.

Due to https://github.com/flutter/flutter/issues/162088, we were
accidentally running our Vulkan tests as OpenGLES 🤦🏼 .
2025-01-25 01:55:28 +00:00
flutter-pub-roller-bot
c518949703
Roll pub packages (#162095)
This PR was generated by `flutter update-packages --force-upgrade`.
2025-01-23 20:45:08 +00:00
Matan Lurey
30f4fecfeb
Add piping and bringup nodes for _vulkan and _opengles suites. (#162020)
Towards https://github.com/flutter/flutter/issues/161333.

This adds the initial `.ci.yaml` configuration (marked `bringup: true`),
without changing the existing shard to avoid the problems we ran into
last time when I renamed the shard atomically, as well as piping for
providing context in which the test will run (Vulkan or OpenGLES), which
can't be introspected in the _running_ app.

In a follow-up PR I'll:

- Edit `AndroidManifest.xml` before the suite, setting `ImpellerBackend`
appropriately
- Move the bringup nodes to presubmit
- Delete the existing (legacy) node
2025-01-22 21:06:10 +00:00
flutter-pub-roller-bot
ad52a6630d
Roll pub packages (#162015)
This PR was generated by `flutter update-packages --force-upgrade`.
2025-01-22 19:29:14 +00:00
Matan Lurey
e517ae3457
Refactor android_engine_test, make it easier to debug/deflake locally. (#161534)
The goal here is to have a great standalone `android_engine_test` suite
that [replaces
`scenario_app/android`](https://github.com/flutter/flutter/pull/160992).

No test is _functionally_ changed in this PR, but overview of changes:
- Finished renaming the suite `android_engine_tests` instead of
`flutter_driver_android`
- Added instructions and an environment variable for local generation of
golden-files (`UPDATE_GOLDENS=1`)
- Added explanations of the individual tests, where they live, and how
to run them locally
- Added a hybrid-composition (HC, not TLHC, which is already tested)
test
- Renamed "other_smiley" to "surface_texture_smiley" (and renamed the
original to "surface_producer_smiley")
- Removed unnecessary ".android" suffix (we will not run this on
anything but Android)
- Added a `tool/deflake.dart` to run a test suite 10x (or custom) times
locally to try and determine flakiness

After this PR, I'll add flags to let you control variants and name the
screenshots accordingly, i.e.:
- API v34 or v35
- OpenGLES or Vulkan (will require an `AndroidManifest.xml` edit during
the test instrumentation)
2025-01-15 01:05:31 +00:00
Ben Konyi
0369b35640
Update package revisions to latest (#161525) 2025-01-14 18:22:42 +00:00
Jonah Williams
bd1ebf2e14
[android_engine_test] Remove background/foreground from surface texture trampoline test. (#161441)
See if this fixes the golden. The background/foreground isn't necessary
for this test which is just a gold comparison of the rendering
2025-01-11 21:16:21 +00:00
John McDole
ee4d46d43a
FixForward: method was renamed (#161431) 2025-01-10 16:58:24 +00:00
Matan Lurey
89b336109f
Add a virtual-display (VD) platform view test, and refactor tests a bit. (#161349)
Towards https://github.com/flutter/flutter/issues/161261.

Still need to add a HC (Hybrid Composition) variant, but figured I'd do
this incrementally to make it easier to review.
2025-01-10 03:23:40 +00:00
Jonah Williams
96dffbeda5
[Impeller] fix scaling of trampoline import of GLES textures into Vulkan. (#161331)
Not sure if this just needs the dpr transform or the entire canvas
transform.

Fixes https://github.com/flutter/flutter/issues/159688

## Before


![flutter_04](https://github.com/user-attachments/assets/be60b1d0-4e94-491c-b1da-a03d66897f12)


## After


![flutter_03](https://github.com/user-attachments/assets/64cca8b7-3ae7-4f40-af26-ae61d9ec6290)
2025-01-09 20:39:29 +00:00
Matan Lurey
132e298335
Rename native_driver to android_{driver_extensions|engine_test} (#161263)
Towards https://github.com/flutter/flutter/issues/161261 (before I add
more tests).

This is a 1:1 move, with massaging of
`run_flutter_driver_android_tests.dart` to be more automated as tests
are added.

/cc @reidbaker
2025-01-08 20:28:38 +00:00