Repository navigation
Fix gles interactive tests - #181389
Fix gles interactive tests#181389
Conversation
gaaclarke
left a comment
There was a problem hiding this comment.
I'm not keen on this approach. The reason why is that this is how to code used to work and we had performance problems from it. This is performance critical code. std::shared_ptr hurts locality and inserts thread synchronization we don't need in this case. These seem to be problems with how the tests are running, not production code so there isn't pressure to accept something that slows things down to make it safer soon.
Some alternatives approaches:
- Make my strongly worded comment about lifetimes even stronger (joking)
- Turn on ASAN in our tests and address the violations (jason told me there is a CI snafu that stopped us from using ASAN today unfortunately)
- Use std::weak_ptr in debug builds only and assert they are valid
- Use MiraclePtr, I'm not sure how easy this is to adopt
- Use fml::RefPtr with non-synchronized ref counts. Today we only have synchronized ref count pointers but this would address locality and synchronization overhead.
Thanks for those insights. I've reverted the pointer changes (except the change for |
57972e1 to
a48b86a
Compare
|
This pull request executed golden file tests, but it has not been updated in a while (20+ days). Test results from Gold expire after as many days, so this pull request will need to be updated with a fresh commit in order to get results from Gold. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
gaaclarke
left a comment
There was a problem hiding this comment.
@planetmarshall did you want me to look at this again? friendly reminder to hit the "rerequest review". This looks good to me now.
|
CI had a failure that stopped further tests from running. We need to investigate to determine the root cause. SHA at time of execution: 308d5f3. Possible causes:
A blank commit, or merging to head, will be required to resume running CI for this PR. Error Details: Stack trace: |
308d5f3 to
61c5ea6
Compare
|
@jason-simmons can I get an approval? Autosubmit failed to land this PR and then I had to rebase it. |
|
autosubmit label was removed for flutter/flutter/181389, because - The status or check suite Linux mac_clang_tidy has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
Need a second approval because I pushed a commit to this branch. |
|
autosubmit label was removed for flutter/flutter/181389, 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.
|
<!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> Most changes either reverted or now superfluous. Retained the change that uses a `unique_ptr` in `AllocatorGLES`. ~Fixes OpenGLES playground tests that crashed due to `BufferView` outliving its `DeviceBuffer`.~ * ~Replaced raw pointer in `BufferView` with a `weak_ptr` that can be tested for validity. This does come at a performance cost but local testing found it to be negligible. You may want to run your own benchmarks.~ * Changed the GLES DeviceBuffer's backing store to use `unique_ptr` rather than `shared_ptr` as it's the only thing to hold a reference to it. * ~Ensured that the BufferViews in the playground tests do not outlive their device buffers.~ Fixes flutter#181287 Related to flutter-team-archive/engine#56224 ## 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 `///`). - [x] 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. --------- Co-authored-by: Jason Simmons <[email protected]>
Roll Flutter from c1b14e92dcfb to 31f1802cb859 (46 revisions) flutter/flutter@c1b14e9...31f1802 2026-04-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185083)" (flutter/flutter#185145) 2026-04-16 [email protected] Add oval drawing support to the SDF uber shader (flutter/flutter#184903) 2026-04-16 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185083) 2026-04-16 [email protected] Roll Skia from 2c49b3f9c3c2 to 391cdbe3ffe9 (2 revisions) (flutter/flutter#185138) 2026-04-16 [email protected] Roll Dart SDK from 4ee990654146 to fbddcbe0cd96 (1 revision) (flutter/flutter#185137) 2026-04-16 [email protected] Roll Skia from f4e3cd2c2159 to 2c49b3f9c3c2 (14 revisions) (flutter/flutter#185131) 2026-04-16 [email protected] Roll Dart SDK from 87b7c87e7207 to 4ee990654146 (5 revisions) (flutter/flutter#185108) 2026-04-15 [email protected] Use the `flutteractionsbot` token to push the release branch. (flutter/flutter#184833) 2026-04-15 [email protected] Allow period characters in iOS and macOS framework names (flutter/flutter#184335) 2026-04-15 [email protected] Fix SliverResizingHeader semantic focus (flutter/flutter#179690) 2026-04-15 [email protected] ignore avoid_type_to_string lint rule in flutter_tools (flutter/flutter#184766) 2026-04-15 [email protected] Roll Skia from bda7232e6772 to f4e3cd2c2159 (4 revisions) (flutter/flutter#185063) 2026-04-15 [email protected] Add initial AI guidance for issues (flutter/flutter#184885) 2026-04-15 [email protected] Roll Fuchsia Linux SDK from rB8LAuZL_DwHMssTU... to IdBT8fSMYrYSip65j... (flutter/flutter#185064) 2026-04-15 [email protected] Fix an ordering dependency in the services/system_chrome_test.dart test suite (flutter/flutter#185086) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ios][platform_view]Reland hitTest approach (with a few 2026 update) (#183484)" (flutter/flutter#185082) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#179810)" (flutter/flutter#185067) 2026-04-15 [email protected] Agent rule: Dart editing (flutter/flutter#185045) 2026-04-15 [email protected] [ios][platform_view]Reland hitTest approach (with a few 2026 update) (flutter/flutter#183484) 2026-04-15 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#179810) 2026-04-15 [email protected] Roll Dart SDK from ee5afcef0596 to 87b7c87e7207 (4 revisions) (flutter/flutter#185060) 2026-04-15 [email protected] Roll Skia from 4c382df6a25a to bda7232e6772 (7 revisions) (flutter/flutter#185057) 2026-04-15 [email protected] Remove material import from toggleable_test.dart + draggable_test.dart + obscured_animated_image_test.dart + sliver_constraints_test.dart (flutter/flutter#181774) 2026-04-15 [email protected] refactor: Remove material imports from Widget tests (flutter/flutter#184877) 2026-04-14 [email protected] Adds missing `await`s on forgotten cases (flutter/flutter#183466) 2026-04-14 [email protected] Use an if-element in a collection literal instead of a conditional expression (flutter/flutter#184830) 2026-04-14 [email protected] update popular issues documentation (flutter/flutter#183196) 2026-04-14 [email protected] [Android] Add integration test for setting engine flags via the manifest (flutter/flutter#182241) 2026-04-14 [email protected] [fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition. (flutter/flutter#185042) 2026-04-14 [email protected] Make `multiple_windows` follow repo analyzer rules (flutter/flutter#184753) 2026-04-14 [email protected] Ignore incoming deprecated_web_configuration lint (flutter/flutter#184130) 2026-04-14 [email protected] [AGP 9] Update AGP Error (flutter/flutter#185043) 2026-04-14 [email protected] Move widget_preview_scaffold into pub workspace (flutter/flutter#182627) 2026-04-14 [email protected] Fix gles interactive tests (flutter/flutter#181389) 2026-04-14 [email protected] Update customer tests.version (flutter/flutter#185044) 2026-04-14 [email protected] [SKILL] upgrade-browser (flutter/flutter#184894) 2026-04-14 [email protected] [ci] Split up integration.shard dart_data_asset_test.dart (flutter/flutter#185021) 2026-04-14 [email protected] Hold startup lock until after `pub get` to prevent races (flutter/flutter#184294) 2026-04-14 6226493[email protected] Add `--include-example` flag to `flutter clean` for package example projects (flutter/flutter#183455) 2026-04-14 [email protected] Disable multi-pack-index when calling flutter from Xcode (flutter/flutter#184998) 2026-04-14 [email protected] Fix icon tree shaking when building for desktop (flutter/flutter#184249) 2026-04-14 [email protected] Fix killing wrong xcrun command (flutter/flutter#184831) 2026-04-14 [email protected] Allow Xcode build configuration to not contain flavor name (flutter/flutter#183398) 2026-04-14 [email protected] [web] Async rendering for benchmarks (flutter/flutter#184677) 2026-04-14 [email protected] [ci] Split up integration.shard native_assets_test.dart (flutter/flutter#185020) 2026-04-14 [email protected] Skip flutter widget-preview test that times out frequently (flutter/flutter#184988) ...
…r#11518) Roll Flutter from c1b14e92dcfb to 31f1802cb859 (46 revisions) flutter/flutter@c1b14e9...31f1802 2026-04-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185083)" (flutter/flutter#185145) 2026-04-16 [email protected] Add oval drawing support to the SDF uber shader (flutter/flutter#184903) 2026-04-16 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185083) 2026-04-16 [email protected] Roll Skia from 2c49b3f9c3c2 to 391cdbe3ffe9 (2 revisions) (flutter/flutter#185138) 2026-04-16 [email protected] Roll Dart SDK from 4ee990654146 to fbddcbe0cd96 (1 revision) (flutter/flutter#185137) 2026-04-16 [email protected] Roll Skia from f4e3cd2c2159 to 2c49b3f9c3c2 (14 revisions) (flutter/flutter#185131) 2026-04-16 [email protected] Roll Dart SDK from 87b7c87e7207 to 4ee990654146 (5 revisions) (flutter/flutter#185108) 2026-04-15 [email protected] Use the `flutteractionsbot` token to push the release branch. (flutter/flutter#184833) 2026-04-15 [email protected] Allow period characters in iOS and macOS framework names (flutter/flutter#184335) 2026-04-15 [email protected] Fix SliverResizingHeader semantic focus (flutter/flutter#179690) 2026-04-15 [email protected] ignore avoid_type_to_string lint rule in flutter_tools (flutter/flutter#184766) 2026-04-15 [email protected] Roll Skia from bda7232e6772 to f4e3cd2c2159 (4 revisions) (flutter/flutter#185063) 2026-04-15 [email protected] Add initial AI guidance for issues (flutter/flutter#184885) 2026-04-15 [email protected] Roll Fuchsia Linux SDK from rB8LAuZL_DwHMssTU... to IdBT8fSMYrYSip65j... (flutter/flutter#185064) 2026-04-15 [email protected] Fix an ordering dependency in the services/system_chrome_test.dart test suite (flutter/flutter#185086) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ios][platform_view]Reland hitTest approach (with a few 2026 update) (#183484)" (flutter/flutter#185082) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#179810)" (flutter/flutter#185067) 2026-04-15 [email protected] Agent rule: Dart editing (flutter/flutter#185045) 2026-04-15 [email protected] [ios][platform_view]Reland hitTest approach (with a few 2026 update) (flutter/flutter#183484) 2026-04-15 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#179810) 2026-04-15 [email protected] Roll Dart SDK from ee5afcef0596 to 87b7c87e7207 (4 revisions) (flutter/flutter#185060) 2026-04-15 [email protected] Roll Skia from 4c382df6a25a to bda7232e6772 (7 revisions) (flutter/flutter#185057) 2026-04-15 [email protected] Remove material import from toggleable_test.dart + draggable_test.dart + obscured_animated_image_test.dart + sliver_constraints_test.dart (flutter/flutter#181774) 2026-04-15 [email protected] refactor: Remove material imports from Widget tests (flutter/flutter#184877) 2026-04-14 [email protected] Adds missing `await`s on forgotten cases (flutter/flutter#183466) 2026-04-14 [email protected] Use an if-element in a collection literal instead of a conditional expression (flutter/flutter#184830) 2026-04-14 [email protected] update popular issues documentation (flutter/flutter#183196) 2026-04-14 [email protected] [Android] Add integration test for setting engine flags via the manifest (flutter/flutter#182241) 2026-04-14 [email protected] [fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition. (flutter/flutter#185042) 2026-04-14 [email protected] Make `multiple_windows` follow repo analyzer rules (flutter/flutter#184753) 2026-04-14 [email protected] Ignore incoming deprecated_web_configuration lint (flutter/flutter#184130) 2026-04-14 [email protected] [AGP 9] Update AGP Error (flutter/flutter#185043) 2026-04-14 [email protected] Move widget_preview_scaffold into pub workspace (flutter/flutter#182627) 2026-04-14 [email protected] Fix gles interactive tests (flutter/flutter#181389) 2026-04-14 [email protected] Update customer tests.version (flutter/flutter#185044) 2026-04-14 [email protected] [SKILL] upgrade-browser (flutter/flutter#184894) 2026-04-14 [email protected] [ci] Split up integration.shard dart_data_asset_test.dart (flutter/flutter#185021) 2026-04-14 [email protected] Hold startup lock until after `pub get` to prevent races (flutter/flutter#184294) 2026-04-14 6226493[email protected] Add `--include-example` flag to `flutter clean` for package example projects (flutter/flutter#183455) 2026-04-14 [email protected] Disable multi-pack-index when calling flutter from Xcode (flutter/flutter#184998) 2026-04-14 [email protected] Fix icon tree shaking when building for desktop (flutter/flutter#184249) 2026-04-14 [email protected] Fix killing wrong xcrun command (flutter/flutter#184831) 2026-04-14 [email protected] Allow Xcode build configuration to not contain flavor name (flutter/flutter#183398) 2026-04-14 [email protected] [web] Async rendering for benchmarks (flutter/flutter#184677) 2026-04-14 [email protected] [ci] Split up integration.shard native_assets_test.dart (flutter/flutter#185020) 2026-04-14 [email protected] Skip flutter widget-preview test that times out frequently (flutter/flutter#184988) ...
…r#11518) Roll Flutter from c1b14e92dcfb to 31f1802cb859 (46 revisions) flutter/flutter@c1b14e9...31f1802 2026-04-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185083)" (flutter/flutter#185145) 2026-04-16 [email protected] Add oval drawing support to the SDF uber shader (flutter/flutter#184903) 2026-04-16 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185083) 2026-04-16 [email protected] Roll Skia from 2c49b3f9c3c2 to 391cdbe3ffe9 (2 revisions) (flutter/flutter#185138) 2026-04-16 [email protected] Roll Dart SDK from 4ee990654146 to fbddcbe0cd96 (1 revision) (flutter/flutter#185137) 2026-04-16 [email protected] Roll Skia from f4e3cd2c2159 to 2c49b3f9c3c2 (14 revisions) (flutter/flutter#185131) 2026-04-16 [email protected] Roll Dart SDK from 87b7c87e7207 to 4ee990654146 (5 revisions) (flutter/flutter#185108) 2026-04-15 [email protected] Use the `flutteractionsbot` token to push the release branch. (flutter/flutter#184833) 2026-04-15 [email protected] Allow period characters in iOS and macOS framework names (flutter/flutter#184335) 2026-04-15 [email protected] Fix SliverResizingHeader semantic focus (flutter/flutter#179690) 2026-04-15 [email protected] ignore avoid_type_to_string lint rule in flutter_tools (flutter/flutter#184766) 2026-04-15 [email protected] Roll Skia from bda7232e6772 to f4e3cd2c2159 (4 revisions) (flutter/flutter#185063) 2026-04-15 [email protected] Add initial AI guidance for issues (flutter/flutter#184885) 2026-04-15 [email protected] Roll Fuchsia Linux SDK from rB8LAuZL_DwHMssTU... to IdBT8fSMYrYSip65j... (flutter/flutter#185064) 2026-04-15 [email protected] Fix an ordering dependency in the services/system_chrome_test.dart test suite (flutter/flutter#185086) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ios][platform_view]Reland hitTest approach (with a few 2026 update) (#183484)" (flutter/flutter#185082) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#179810)" (flutter/flutter#185067) 2026-04-15 [email protected] Agent rule: Dart editing (flutter/flutter#185045) 2026-04-15 [email protected] [ios][platform_view]Reland hitTest approach (with a few 2026 update) (flutter/flutter#183484) 2026-04-15 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#179810) 2026-04-15 [email protected] Roll Dart SDK from ee5afcef0596 to 87b7c87e7207 (4 revisions) (flutter/flutter#185060) 2026-04-15 [email protected] Roll Skia from 4c382df6a25a to bda7232e6772 (7 revisions) (flutter/flutter#185057) 2026-04-15 [email protected] Remove material import from toggleable_test.dart + draggable_test.dart + obscured_animated_image_test.dart + sliver_constraints_test.dart (flutter/flutter#181774) 2026-04-15 [email protected] refactor: Remove material imports from Widget tests (flutter/flutter#184877) 2026-04-14 [email protected] Adds missing `await`s on forgotten cases (flutter/flutter#183466) 2026-04-14 [email protected] Use an if-element in a collection literal instead of a conditional expression (flutter/flutter#184830) 2026-04-14 [email protected] update popular issues documentation (flutter/flutter#183196) 2026-04-14 [email protected] [Android] Add integration test for setting engine flags via the manifest (flutter/flutter#182241) 2026-04-14 [email protected] [fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition. (flutter/flutter#185042) 2026-04-14 [email protected] Make `multiple_windows` follow repo analyzer rules (flutter/flutter#184753) 2026-04-14 [email protected] Ignore incoming deprecated_web_configuration lint (flutter/flutter#184130) 2026-04-14 [email protected] [AGP 9] Update AGP Error (flutter/flutter#185043) 2026-04-14 [email protected] Move widget_preview_scaffold into pub workspace (flutter/flutter#182627) 2026-04-14 [email protected] Fix gles interactive tests (flutter/flutter#181389) 2026-04-14 [email protected] Update customer tests.version (flutter/flutter#185044) 2026-04-14 [email protected] [SKILL] upgrade-browser (flutter/flutter#184894) 2026-04-14 [email protected] [ci] Split up integration.shard dart_data_asset_test.dart (flutter/flutter#185021) 2026-04-14 [email protected] Hold startup lock until after `pub get` to prevent races (flutter/flutter#184294) 2026-04-14 6226493[email protected] Add `--include-example` flag to `flutter clean` for package example projects (flutter/flutter#183455) 2026-04-14 [email protected] Disable multi-pack-index when calling flutter from Xcode (flutter/flutter#184998) 2026-04-14 [email protected] Fix icon tree shaking when building for desktop (flutter/flutter#184249) 2026-04-14 [email protected] Fix killing wrong xcrun command (flutter/flutter#184831) 2026-04-14 [email protected] Allow Xcode build configuration to not contain flavor name (flutter/flutter#183398) 2026-04-14 [email protected] [web] Async rendering for benchmarks (flutter/flutter#184677) 2026-04-14 [email protected] [ci] Split up integration.shard native_assets_test.dart (flutter/flutter#185020) 2026-04-14 [email protected] Skip flutter widget-preview test that times out frequently (flutter/flutter#184988) ...
Most changes either reverted or now superfluous. Retained the change that uses a
unique_ptrinAllocatorGLES.Fixes OpenGLES playground tests that crashed due toBufferViewoutliving itsDeviceBuffer.Replaced raw pointer inBufferViewwith aweak_ptrthat can be tested for validity. This does come at a performance cost but local testing found it to be negligible. You may want to run your own benchmarks.unique_ptrrather thanshared_ptras it's the only thing to hold a reference to it.Ensured that the BufferViews in the playground tests do not outlive their device buffers.Fixes #181287
Related to flutter-team-archive/engine#56224
Pre-launch Checklist
///).