Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate Android scenario_app to the SurfaceProducer API #50993

Merged
merged 2 commits into from
Feb 27, 2024

Conversation

matanlurey
Copy link
Contributor

Part of testing flutter/flutter#139702.

Without this PR, the Impeller + Vulkan Scenario App will draw nothing/potentially crash, because there is no way to draw the (current) SurfaceTexture-based textures in Vulkan (and never will be).

This change does the following:

  • Skia -> Nothing
  • Impeller + OpenGLES -> On newer Android devices, uses ImageReader instead
  • Impeller + Vulkan -> Always uses ImageReader

See also: https://api.flutter.dev/javadoc/io/flutter/view/TextureRegistry.SurfaceProducer.html.

Copy link
Member

@jonahwilliams jonahwilliams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@matanlurey matanlurey added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 27, 2024
@flutter-dashboard
Copy link

Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change).

If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review.

Changes reported for pull request #50993 at sha 906dcc2

@matanlurey
Copy link
Contributor Author

@johnmccutchan @zanderso @dnfield @jonahwilliams
So this PR actually catches a bunch of bugs:

image

Note the image is not rotated.

See more negatives here: https://flutter-engine-gold.skia.org/search?crs=github&issue=50993&negative=true&patchsets=2&untriaged=false.

My guess is we shouldn't land this PR, but that also means we can't test Impeller stability until the textures are fixed? Wdut?

(Happy to file bugs tomorrow)

@auto-submit auto-submit bot merged commit 7e1c44b into flutter:main Feb 27, 2024
29 checks passed
@matanlurey
Copy link
Contributor Author

I ... wrongly assumed marking items as negative would avoid merging, oops.

@matanlurey
Copy link
Contributor Author

Reason for revert: The digests will come back negative, as this change shows bugs in the ImageTexture implementation.

@matanlurey matanlurey added the revert Label used to revert changes in a closed and merged pull request. label Feb 27, 2024
auto-submit bot pushed a commit that referenced this pull request Feb 27, 2024
@auto-submit auto-submit bot removed the revert Label used to revert changes in a closed and merged pull request. label Feb 27, 2024
auto-submit bot added a commit that referenced this pull request Feb 27, 2024
…50993)" (#50995)

Reverts #50993

Initiated by: matanlurey

Reason for reverting: The digests will come back negative, as this change shows bugs in the `ImageTexture` implementation.

Original PR Author: matanlurey

Reviewed By: {jonahwilliams, johnmccutchan}

This change reverts the following previous change:
Original Description:
Part of testing flutter/flutter#139702.

Without this PR, the Impeller + Vulkan Scenario App will draw nothing/potentially crash, because there is no way to draw the (current) `SurfaceTexture`-based textures in Vulkan (and never will be).

This change does the following:
- Skia -> Nothing
- Impeller + OpenGLES -> On newer Android devices, uses `ImageReader` instead
- Impeller + Vulkan -> Always uses `ImageReader`

See also: https://api.flutter.dev/javadoc/io/flutter/view/TextureRegistry.SurfaceProducer.html.
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 27, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 27, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Feb 27, 2024
…144208)

flutter/engine@04ff286...0bc21ea

2024-02-27 matanlurey@users.noreply.github.com Respect SIGINT (Ctrl-C) for Android scenario_app. (flutter/engine#50989)
2024-02-27 skia-flutter-autoroll@skia.org Roll Skia from aa28c3a30a98 to 2f2a718b27f7 (1 revision) (flutter/engine#50998)
2024-02-27 skia-flutter-autoroll@skia.org Roll Dart SDK from 2876f5684ced to 67b2a250747b (1 revision) (flutter/engine#50996)
2024-02-27 matanlurey@users.noreply.github.com Fix usage of `--out-dir` with a relative path. (flutter/engine#50992)
2024-02-27 jason-simmons@users.noreply.github.com Roll buildroot to 21b1b9f2645fada701885108e86aefbcb3b1cca0 (flutter/engine#50991)
2024-02-27 skia-flutter-autoroll@skia.org Roll Skia from ba3ed5998af3 to aa28c3a30a98 (12 revisions) (flutter/engine#50994)
2024-02-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Migrate Android `scenario_app` to the `SurfaceProducer` API (#50993)" (flutter/engine#50995)
2024-02-27 matanlurey@users.noreply.github.com Migrate Android `scenario_app` to the `SurfaceProducer` API (flutter/engine#50993)
2024-02-27 dkwingsmt@users.noreply.github.com Revert "Reland 4: Multiview pipeline (#50931)" (flutter/engine#50985)
2024-02-26 matanlurey@users.noreply.github.com Refactor args parsing/environment constructor for `scenario_app` (flutter/engine#50980)
2024-02-26 jonahwilliams@google.com [scenario] trigger firstFrameLatch on exception. (flutter/engine#50981)
2024-02-26 jason-simmons@users.noreply.github.com [Impeller] Fix a misspelling and name mismatch in a shader test fixture (flutter/engine#50983)
2024-02-26 skia-flutter-autoroll@skia.org Roll Dart SDK from c479735adcf9 to 2876f5684ced (2 revisions) (flutter/engine#50979)
2024-02-26 zanderso@users.noreply.github.com Run engine unit tests on mac host_debug_unopt_arm64 (flutter/engine#50327)
2024-02-26 jonahwilliams@google.com [Impeller] disble render pass caches. (flutter/engine#50976)
2024-02-26 john@johnmccutchan.com Update Surface reference after resizing render target in VirtualDisplay based platform views (flutter/engine#50971)
2024-02-26 jason-simmons@users.noreply.github.com [Impeller] Fix a race that can abort the process if the Vulkan context is destroyed while pipeline creation tasks are pending (flutter/engine#50883)
2024-02-26 matanlurey@users.noreply.github.com Better filtering for Android `scenario_app` runner. (flutter/engine#50937)
2024-02-26 jacksongardner@google.com Make sure to call `setHeightOverride` as well on TextStyle and StrutStyle (flutter/engine#50920)
2024-02-26 jacksongardner@google.com Correctly offset the cull rect of the opacity layer. (flutter/engine#50928)
2024-02-26 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from kLvCWEgbL1VTRW69e... to JCdhkDSFXzHyPuP4I... (flutter/engine#50970)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from kLvCWEgbL1VT to JCdhkDSFXzHy

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jimgraham@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
matanlurey added a commit that referenced this pull request Feb 28, 2024
…rio_app` (#51061)

This PR does the following:
- Relands #50993.
- Fixes a bug in `SurfaceTextureSurfaceProducer` where it would crash on
release (now tested, yay!)

Closes flutter/flutter#143539.
Closes flutter/flutter#143483.

/cc @gaaclarke @chinmaygarde, this PR should (after landed) test/verify
#50730.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App will affect goldens
Projects
None yet
3 participants