Skip to content

[CP] Blocks exynos9820 chip from vulkan #173897

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

Closed
wants to merge 1 commit into from

Conversation

bc-lee
Copy link
Contributor

@bc-lee bc-lee commented Aug 16, 2025

(cherry picked from commit 4abea34)

Fixes of #171992 for the stable branch.
Cherry-pick of #173807 onto stable.

Impacted Users
Developers and end-users of Flutter applications running on Samsung Galaxy S10 or Note 10 series devices equipped with Exynos 9820/9825 SoCs.

Impact Description
Due to malfunctioning Vulkan drivers on these SoCs, platform views that rely on SurfaceView fail to render correctly. The original PR addresses this by blocklisting the affected SoCs, forcing them to use Impeller with OpenGL ES instead of Vulkan.

Workaround
Aside from setting io.flutter.embedding.android.ImpellerBackend (which is not available in production) or disabling Impeller entirely, there is no practical workaround for this issue on affected devices.

Risk
The risk of this cherry-pick is low. The original PR only adds specific SoCs to the blocklist and renames a static variable, which does not affect other devices regardless of whether they use this mechanism.

Test Coverage
Due to the nature of the issue and the fix, validation can only be performed through manual testing on the affected devices. As the reporter of the original issue, I have verified the fix on the Galaxy S10 5G(SM-G977N, Exynos 9820), confirming that the change resolves the rendering problem.

Validation Steps

  1. Create a test Flutter app that uses a platform view with SurfaceView (e.g., https://github.com/bc-lee/test-flutter-android-texture or https://github.com/gaaclarke/surface_platformview).
  2. Run the app on the targeted devices.
  3. Verify that the application renders correctly without graphical issues.

Pre-launch Checklist

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

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

fixes flutter#171992

## 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], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

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

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md

(cherry picked from commit 4abea34)
@bc-lee bc-lee requested a review from a team as a code owner August 16, 2025 09:53
@flutter-dashboard flutter-dashboard bot changed the base branch from stable to master August 16, 2025 09:53
@flutter-dashboard flutter-dashboard bot requested review from a team and matanlurey as code owners August 16, 2025 09:53
@flutter-dashboard
Copy link

This pull request was opened against a branch other than master. Since Flutter pull requests should not normally be opened against branches other than master, I have changed the base to master. If this was intended, you may modify the base back to stable. See the Release Process for information about how other branches get updated.

Reviewers: Use caution before merging pull requests to branches other than master, unless this is an intentional hotfix/cherrypick.

@github-actions github-actions bot added a: tests "flutter test", flutter_test, or one of our tests a: text input Entering text in a text field or keyboard related problems platform-android Android applications specifically platform-ios iOS applications specifically tool Affects the "flutter" command-line tool. See also t: labels. framework flutter/packages/flutter repository. See also f: labels. engine flutter/engine repository. See also e: labels. a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) platform-web Web applications specifically platform-linux Building on or for Linux specifically a: desktop Running on desktop f: integration_test The flutter/packages/integration_test plugin team-android Owned by Android platform team team-ios Owned by iOS platform team labels Aug 16, 2025
@bc-lee bc-lee changed the base branch from master to stable August 16, 2025 09:53
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces several significant changes, primarily the blocklisting of Exynos 9820/9825 SoCs to resolve Vulkan rendering issues, and the addition of a new LLDB-based debugging workflow for physical iOS devices, which is a great improvement. The changes also include updates to how the last engine commit is determined for release branches and various other refactorings and test enhancements. The overall quality of the changes is high. My main feedback is to address a significant area of code duplication in the new iOS device launching logic to improve long-term maintainability.

@matanlurey
Copy link
Contributor

This PR was done incorrectly - it should be opened up against the flutter-3.35 branch and not stable directly.

See https://github.com/flutter/flutter/blob/master/docs/releases/Flutter-Cherrypick-Process.md.

@matanlurey matanlurey closed this Aug 18, 2025
@bc-lee
Copy link
Contributor Author

bc-lee commented Aug 18, 2025

@matanlurey Thanks for the feedback. I’ve opened another PR based on your instructions. #173981

@bc-lee bc-lee deleted the cp-exynos-9820 branch August 19, 2025 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: desktop Running on desktop a: tests "flutter test", flutter_test, or one of our tests a: text input Entering text in a text field or keyboard related problems engine flutter/engine repository. See also e: labels. f: integration_test The flutter/packages/integration_test plugin framework flutter/packages/flutter repository. See also f: labels. platform-android Android applications specifically platform-ios iOS applications specifically platform-linux Building on or for Linux specifically platform-web Web applications specifically team-android Owned by Android platform team team-ios Owned by iOS platform team tool Affects the "flutter" command-line tool. See also t: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants