Skip to content

[Impeller] Ensure that the TextureGLES destructor cleans up all objects that it holds including the sync fence#187216

Merged
auto-submit[bot] merged 4 commits into
flutter:masterfrom
jason-simmons:bug_186899
May 29, 2026
Merged

[Impeller] Ensure that the TextureGLES destructor cleans up all objects that it holds including the sync fence#187216
auto-submit[bot] merged 4 commits into
flutter:masterfrom
jason-simmons:bug_186899

Conversation

@jason-simmons
Copy link
Copy Markdown
Member

TextureGLES owns a texture and may be given ownership of cached FBO and sync fence objects. Use UniqueHandleGLES to manage the lifecycle of these objects.

Fixes #186899

…ts that it holds including the sync fence

TextureGLES owns a texture and may be given ownership of cached FBO
and sync fence objects.  Use UniqueHandleGLES to manage the lifecycle
of these objects.

Fixes flutter#186899
@jason-simmons jason-simmons requested a review from gaaclarke May 27, 2026 22:44
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label May 27, 2026
@github-actions github-actions Bot added engine flutter/engine related. See also e: labels. e: impeller Impeller rendering backend issues and features requests labels May 27, 2026
gemini-code-assist[bot]

This comment was marked as outdated.

@github-actions github-actions Bot removed the CICD Run CI/CD label May 27, 2026
@jason-simmons
Copy link
Copy Markdown
Member Author

/gemini review

@jason-simmons jason-simmons added the CICD Run CI/CD label May 27, 2026
Copy link
Copy Markdown
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 refactors TextureGLES to manage its OpenGL ES handles (including texture handles, fences, and cached FBOs) using UniqueHandleGLES instead of raw handles, eliminating the need for manual cleanup in the destructor. It also extends UniqueHandleGLES with a default constructor, move assignment operator, Reset(), and Release() methods, and adds a unit test to verify fence deletion on texture destruction. The review feedback identifies a typo in the new test name and recommends marking the move assignment operator of UniqueHandleGLES as noexcept in both the header and implementation files to align with the Google C++ Style Guide.

Comment thread engine/src/flutter/impeller/renderer/backend/gles/test/texture_gles_unittests.cc Outdated
@github-actions github-actions Bot removed the CICD Run CI/CD label May 27, 2026
@jason-simmons jason-simmons added the CICD Run CI/CD label May 27, 2026
gaaclarke
gaaclarke previously approved these changes May 28, 2026
Copy link
Copy Markdown
Member

@gaaclarke gaaclarke left a comment

Choose a reason for hiding this comment

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

lgtm, thanks jason

@jason-simmons jason-simmons added the autosubmit Merge PR when tree becomes green via auto submit App label May 28, 2026
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label May 28, 2026
@auto-submit
Copy link
Copy Markdown
Contributor

auto-submit Bot commented May 28, 2026

autosubmit label was removed for flutter/flutter/187216, because Pull request flutter/flutter/187216 is not in a mergeable state.

@jason-simmons jason-simmons added CICD Run CI/CD autosubmit Merge PR when tree becomes green via auto submit App labels May 29, 2026
@auto-submit auto-submit Bot added this pull request to the merge queue May 29, 2026
Merged via the queue into flutter:master with commit d742b87 May 29, 2026
206 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label May 29, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Jun 1, 2026
flutter/flutter@b05a9d7...54e199a

2026-06-01 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from jMR_VXQi07kAk8vbR... to q27k7_um1GvVrySZS... (flutter/flutter#187338)
2026-06-01 rmacnak@google.com Remove use of deprecated API related to removal of the VM isolate. (flutter/flutter#187013)
2026-06-01 116356835+AbdeMohlbi@users.noreply.github.com Improve `dependOnInheritedWidgetOfExactType` documentation to explain why it is bad to use it in initState (flutter/flutter#186216)
2026-06-01 chris@bracken.jp Revert "Move dart-lang/ai to a top level third party dependency in en… (flutter/flutter#187370)
2026-05-30 jakemac@google.com Move dart-lang/ai to a top level third party dependency in engine (flutter/flutter#187268)
2026-05-30 evanwall@buffalo.edu add sdf golden variants for OpenGL (flutter/flutter#187246)
2026-05-30 engine-flutter-autoroll@skia.org Roll Skia from dc01525ac468 to 0aee4675e0ad (6 revisions) (flutter/flutter#187334)
2026-05-29 engine-flutter-autoroll@skia.org Roll Skia from c480ba2eb2eb to dc01525ac468 (4 revisions) (flutter/flutter#187317)
2026-05-29 jason-simmons@users.noreply.github.com Remove the Y coordinate flip workaround in the Material stretch effect shader now that it is no longer required by the Impeller GLES back end (flutter/flutter#187247)
2026-05-29 bkonyi@google.com [flutter_tools, devicelab] Fix filesystem safety guard for symlinked temp directories (flutter/flutter#187320)
2026-05-29 30870216+gaaclarke@users.noreply.github.com Brings linux tests out of bringup. (flutter/flutter#187271)
2026-05-29 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#187321)
2026-05-29 engine-flutter-autoroll@skia.org Roll Fuchsia GN SDK from SEfYx3xgueX3aFAY3... to oOAcFhkoE2_-Sy67z... (flutter/flutter#187310)
2026-05-29 36861262+QuncCccccc@users.noreply.github.com Fix mismatch between hit-test tree and traversal tree (flutter/flutter#186826)
2026-05-29 jason-simmons@users.noreply.github.com [Impeller] Ensure that the TextureGLES destructor cleans up all objects that it holds including the sync fence (flutter/flutter#187216)
2026-05-29 engine-flutter-autoroll@skia.org Roll Packages from 10cbdc5 to e930ced (3 revisions) (flutter/flutter#187306)
2026-05-29 engine-flutter-autoroll@skia.org Roll Skia from d9d6b440c4e7 to c480ba2eb2eb (1 revision) (flutter/flutter#187305)

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 stuartmorgan@google.com,tarrinneal@google.com 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
@jason-simmons jason-simmons added cp: stable cherry pick this pull request to stable release candidate branch cp: beta cherry pick this pull request to beta release candidate branch labels Jun 1, 2026
@flutteractionsbot
Copy link
Copy Markdown
Contributor

Failed to create CP due to merge conflicts.
You will need to create the PR manually. See the cherrypick wiki for more info.

1 similar comment
@flutteractionsbot
Copy link
Copy Markdown
Contributor

Failed to create CP due to merge conflicts.
You will need to create the PR manually. See the cherrypick wiki for more info.

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

Labels

CICD Run CI/CD cp: beta cherry pick this pull request to beta release candidate branch cp: stable cherry pick this pull request to stable release candidate branch 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] GIF image loading causes file descriptor leak (FD count grows indefinitely) only when images are visible on screen

3 participants