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 [email protected] Respect SIGINT (Ctrl-C) for Android scenario_app. (flutter/engine#50989)
2024-02-27 [email protected] Roll Skia from aa28c3a30a98 to 2f2a718b27f7 (1 revision) (flutter/engine#50998)
2024-02-27 [email protected] Roll Dart SDK from 2876f5684ced to 67b2a250747b (1 revision) (flutter/engine#50996)
2024-02-27 [email protected] Fix usage of `--out-dir` with a relative path. (flutter/engine#50992)
2024-02-27 [email protected] Roll buildroot to 21b1b9f2645fada701885108e86aefbcb3b1cca0 (flutter/engine#50991)
2024-02-27 [email protected] 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 [email protected] Migrate Android `scenario_app` to the `SurfaceProducer` API (flutter/engine#50993)
2024-02-27 [email protected] Revert "Reland 4: Multiview pipeline (#50931)" (flutter/engine#50985)
2024-02-26 [email protected] Refactor args parsing/environment constructor for `scenario_app` (flutter/engine#50980)
2024-02-26 [email protected] [scenario] trigger firstFrameLatch on exception. (flutter/engine#50981)
2024-02-26 [email protected] [Impeller] Fix a misspelling and name mismatch in a shader test fixture (flutter/engine#50983)
2024-02-26 [email protected] Roll Dart SDK from c479735adcf9 to 2876f5684ced (2 revisions) (flutter/engine#50979)
2024-02-26 [email protected] Run engine unit tests on mac host_debug_unopt_arm64 (flutter/engine#50327)
2024-02-26 [email protected] [Impeller] disble render pass caches. (flutter/engine#50976)
2024-02-26 [email protected] Update Surface reference after resizing render target in VirtualDisplay based platform views (flutter/engine#50971)
2024-02-26 [email protected] [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 [email protected] Better filtering for Android `scenario_app` runner. (flutter/engine#50937)
2024-02-26 [email protected] Make sure to call `setHeightOverride` as well on TextStyle and StrutStyle (flutter/engine#50920)
2024-02-26 [email protected] Correctly offset the cull rect of the opacity layer. (flutter/engine#50928)
2024-02-26 [email protected] 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 [email protected],[email protected],[email protected] 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
Development

Successfully merging this pull request may close these issues.

3 participants