Skip to content

[CP] Blocks exynos9820 chip from vulkan #173981

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

Merged
merged 1 commit into from
Aug 19, 2025

Conversation

bc-lee
Copy link
Contributor

@bc-lee bc-lee commented Aug 18, 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 18, 2025 18:28
@flutter-dashboard
Copy link

This pull request was opened from and to a release candidate branch. This should only be done as part of the official Flutter release process. If you are attempting to make a regular contribution to the Flutter project, please close this PR and follow the instructions at Tree Hygiene for detailed instructions on contributing to Flutter.

Reviewers: Use caution before merging pull requests to release branches. Ensure the proper procedure has been followed.

@github-actions github-actions bot added platform-android Android applications specifically engine flutter/engine repository. See also e: labels. team-android Owned by Android platform team labels Aug 18, 2025
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 cherry-picks a fix to block certain Exynos SoCs (exynos9820 and exynos9825) from using Vulkan due to driver issues, forcing a fallback to OpenGL. The changes look good, including renaming the blocklist for clarity and adding a helpful log message when the fallback is triggered. I have one suggestion to improve a comment to make it more accurate for all SoCs in the list, which will help with future maintenance.

static constexpr const char* kBLC[] = {
// Most Exynos Series SoC
static constexpr const char* kBadSocs[] = {
// Most Exynos Series SoC. These are SoCs that crash when using AHB imports.
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The comment on this line is slightly inaccurate. It states that the SoCs in this list crash, but exynos9820 and exynos9825 are being added due to graphical errors, as noted in the comments for those entries. For better accuracy and maintainability, please consider making this comment more general to cover all types of issues. 1

Suggested change
// Most Exynos Series SoC. These are SoCs that crash when using AHB imports.
// Most Exynos Series SoC. These are SoCs with known driver issues (crashes, graphical glitches, etc.).

Style Guide References

Footnotes

  1. Code should be optimized for readability. An accurate comment improves readability and maintainability by correctly describing the purpose of the associated code. (link)

@reidbaker reidbaker requested a review from matanlurey August 18, 2025 18:38
@reidbaker reidbaker added the cp: stable cherry pick this pull request to stable release candidate branch label Aug 18, 2025
@matanlurey matanlurey requested a review from gaaclarke August 18, 2025 18:51
@matanlurey matanlurey added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 19, 2025
Copy link
Contributor

auto-submit bot commented Aug 19, 2025

autosubmit label was removed for flutter/flutter/173981, because This PR has not met approval requirements for merging. The PR author is not a member of flutter-hackers and needs 1 more review(s) in order to merge this PR.

  • Merge guidelines: A PR needs at least one approved review if the author is already part of flutter-hackers or two member reviews if the author is not a flutter-hacker before re-applying the autosubmit label. Reviewers: If you left a comment approving, please use the "approve" review action instead.

@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 19, 2025
@matanlurey matanlurey added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 19, 2025
@auto-submit auto-submit bot merged commit 44ff99c into flutter:flutter-3.35-candidate.0 Aug 19, 2025
166 checks passed
@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
autosubmit Merge PR when tree becomes green via auto submit App cp: stable cherry pick this pull request to stable release candidate branch engine flutter/engine repository. See also e: labels. platform-android Android applications specifically team-android Owned by Android platform team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants