Skip to content

Conversation

@jason-simmons
Copy link
Member

These GPUs require additional flags in WorkaroundsVK that affect key features used by the Vulkan back end such as framebuffer fetch. The OpenGL ES back end will likely be more reliable on these devices.

Fixes #177380

@github-actions github-actions bot added engine flutter/engine related. See also e: labels. e: impeller Impeller rendering backend issues and features requests labels Oct 29, 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 updates IsKnownBadDriver to blacklist older Adreno GPUs (version 630 and below) for the Vulkan backend, forcing a fallback to OpenGL ES on these devices. This is a workaround for issues like broken framebuffer fetch on these older GPUs. The unit tests have been updated accordingly to verify this new behavior.

Comment on lines 364 to 369
if (adreno_gpu_.has_value()) {
AdrenoGPU adreno = adreno_gpu_.value();
if (adreno <= AdrenoGPU::kAdreno630) {
return true;
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

You can make this check more concise by using std::optional's operator bool() and dereference operator (*). This is a more idiomatic way to work with std::optional in modern C++ and improves readability by reducing nesting.

  if (adreno_gpu_ && *adreno_gpu_ <= AdrenoGPU::kAdreno630) {
    return true;
  }

Copy link
Member

Choose a reason for hiding this comment

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

not a bad idea gem gem

Copy link
Member Author

Choose a reason for hiding this comment

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

done

Comment on lines 364 to 369
if (adreno_gpu_.has_value()) {
AdrenoGPU adreno = adreno_gpu_.value();
if (adreno <= AdrenoGPU::kAdreno630) {
return true;
}
}
Copy link
Member

Choose a reason for hiding this comment

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

not a bad idea gem gem

These GPUs require additional flags in WorkaroundsVK that affect key features
used by the Vulkan back end such as framebuffer fetch.  The OpenGL ES back end
will likely be more reliable on these devices.

Fixes flutter#177380
@jason-simmons jason-simmons force-pushed the bug_177380_adreno_gles branch from f024bab to 460510e Compare October 30, 2025 15:36
@jason-simmons jason-simmons added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 30, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Oct 30, 2025
Merged via the queue into flutter:master with commit 8834b42 Oct 30, 2025
188 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 30, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Nov 4, 2025
flutter/flutter@6f8abdd...027f2e4

2025-10-31 [email protected] Roll Dart SDK from bb45c4186fb2 to db168d9e7471 (1 revision) (flutter/flutter#177839)
2025-10-31 [email protected] Hide "waiting for customer" issues from text input triage (flutter/flutter#177524)
2025-10-31 [email protected] Making the multiple_windows example app demonstrate dialogs of dialogs (flutter/flutter#177786)
2025-10-31 [email protected] Fix ElevatedButton.icon breaks focus traversal and VoiceOver when toggling icon (flutter/flutter#177579)
2025-10-31 [email protected] Fix FilledButton.icon and FilledButton.tonalIcon break focus traversal and VoiceOver (flutter/flutter#177593)
2025-10-31 [email protected] Fix cubic subdivision estimation using correct Wang’s formula (flutter/flutter#177758)
2025-10-31 [email protected] Roll Skia from ccbd7697791f to 2cf9a1923078 (1 revision) (flutter/flutter#177832)
2025-10-31 [email protected] Roll Fuchsia Linux SDK from ksXeDDo2yYBXJ4uEu... to O-OoG6j4wHXd1ThNM... (flutter/flutter#177831)
2025-10-31 [email protected] Roll Skia from 1532fabb4b7d to ccbd7697791f (4 revisions) (flutter/flutter#177828)
2025-10-31 [email protected] Roll Dart SDK from cf24b43cb643 to bb45c4186fb2 (2 revisions) (flutter/flutter#177824)
2025-10-31 [email protected] Roll Skia from 825d5c854302 to 1532fabb4b7d (3 revisions) (flutter/flutter#177808)
2025-10-30 [email protected] Roll Dart SDK from da663596bf6d to cf24b43cb643 (2 revisions) (flutter/flutter#177798)
2025-10-30 [email protected] Update the path used by the download_fuchsia_sdk.py script to //third_party/fuchsia-sdk (flutter/flutter#177794)
2025-10-30 [email protected] Roll Skia from 6af53143b120 to 825d5c854302 (2 revisions) (flutter/flutter#177788)
2025-10-30 [email protected] Fixes RuntimeEffect when used with ImageFilter.compose and gaussian blur (flutter/flutter#177687)
2025-10-30 [email protected] Adds cache extent type to two_dimentional_viewport (flutter/flutter#177411)
2025-10-30 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Update .ci.yaml in flutter/flutter to use 15.5 (#177669)" (flutter/flutter#177793)
2025-10-30 [email protected] Marks Windows windowing_test to be flaky (flutter/flutter#177716)
2025-10-30 [email protected] Fixes `SettingsChannelTest` flake (flutter/flutter#177061)
2025-10-30 [email protected] Implements uniform-by-name for web (flutter/flutter#176980)
2025-10-30 [email protected] Update .ci.yaml in flutter/flutter to use 15.5 (flutter/flutter#177669)
2025-10-30 [email protected] [Impeller] Fall back to OpenGL ES on older Adreno GPUs (flutter/flutter#177747)
2025-10-30 [email protected] [VPAT] Update a11y assessment app and guideline tests (flutter/flutter#177690)
2025-10-30 [email protected] Roll Skia from 18457971c30f to 6af53143b120 (4 revisions) (flutter/flutter#177778)
2025-10-30 [email protected] Roll Packages from 41c6b3d to 1a7075b (2 revisions) (flutter/flutter#177777)
2025-10-30 [email protected] Roll Dart SDK from 4785d5971d64 to da663596bf6d (1 revision) (flutter/flutter#177772)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
reidbaker pushed a commit to AbdeMohlbi/flutter that referenced this pull request Dec 10, 2025
These GPUs require additional flags in WorkaroundsVK that affect key
features used by the Vulkan back end such as framebuffer fetch. The
OpenGL ES back end will likely be more reliable on these devices.

Fixes flutter#177380
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

e: impeller Impeller rendering backend issues and features requests engine flutter/engine related. See also e: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Android][Impeller/Vulkan][vector_graphics / flutter_svg] — Rendering corruption and crashes after upgrading to Flutter 3.35.4

2 participants