Skip to content

Conversation

@jonahwilliams
Copy link
Contributor

Testing on a newer Adreno, I can still see rendering artifacts. This change matches the syncrhonization to what we do for KHR, and on the Adreno I see no more rendering artifacts.

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!).

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@github-actions github-actions bot added engine flutter/engine related. See also e: labels. e: impeller Impeller rendering backend issues and features requests labels Jan 16, 2025
@jonahwilliams
Copy link
Contributor Author

The reason for having both the signal semaphore in fence is that there is a difference between completion of command buffer execution and the memory visibility of the input attachment. Not necessariyl on all devices of course, but it matches KHR so seems reasonable.

Copy link
Member

@chinmaygarde chinmaygarde left a comment

Choose a reason for hiding this comment

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

All nits.

/// on the implementation.
///
class ExternalFenceVK {
class ExternalSemaphoreVK {
Copy link
Member

Choose a reason for hiding this comment

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

The docs above are outdated.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done


static constexpr const size_t kMaxPendingPresents = 2u;

struct AHBFrameSynchronizerVK {
Copy link
Member

Choose a reason for hiding this comment

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

Can we just use the same synchronizer util (with some mods if necessary) for both KHR and ABH? The KHR synchronizer was just an implementation detail and I don't think I did a great job documenting it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There is different behavior in how/when we initialize the semaphores, specifically the external ones. I'd like to keep the swapchains as separate as possible until I know this one actually works in prod...

is_valid_ = control && control->IsValid();

for (auto i = 0u; i < kMaxPendingPresents; i++) {
frame_data_.push_back(std::make_unique<AHBFrameSynchronizerVK>(
Copy link
Member

Choose a reason for hiding this comment

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

Let's add some error checking here? Perhaps a validity checks for all the handles.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

@jonahwilliams jonahwilliams added the autosubmit Merge PR when tree becomes green via auto submit App label Jan 16, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Jan 17, 2025
Merged via the queue into flutter:master with commit 32ef7f8 Jan 17, 2025
180 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jan 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 18, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 18, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 19, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jan 20, 2025
flutter/flutter@5517cc9...b9e86a5

2025-01-18 [email protected] Fix link to Linux custom embedder artifacts (flutter/flutter#161699)
2025-01-18 [email protected] Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786)
2025-01-18 [email protected] [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765)
2025-01-18 [email protected] revert removing Twitter, retain BlueSky (flutter/flutter#161803)
2025-01-17 [email protected] fix reorderable_list_test.dart (flutter/flutter#161836)
2025-01-17 [email protected] [Release] Update the cherry-pick process. (flutter/flutter#161771)
2025-01-17 [email protected] Reland "#143249 Autocomplete options width" (flutter/flutter#161695)
2025-01-17 [email protected] Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781)
2025-01-17 [email protected] [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767)
2025-01-17 [email protected] [Impeller] remove Adreno denylist entries. (flutter/flutter#161740)
2025-01-17 [email protected] Refactor event redispatching (flutter/flutter#161701)
2025-01-17 [email protected] [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697)
2025-01-17 [email protected] Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383)
2025-01-16 [email protected] Make fl_keyboard_manager_handle_event async (flutter/flutter#161637)
2025-01-16 [email protected] Update social links in readme (flutter/flutter#161778)
2025-01-16 [email protected] Remove some stray printf debugging (flutter/flutter#161706)
2025-01-16 [email protected] Set meta tag in default index (flutter/flutter#161493)
2025-01-16 [email protected] remove usage of `Usage` from build system (flutter/flutter#160663)
2025-01-16 [email protected] route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533)
2025-01-16 [email protected] Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613)
2025-01-16 [email protected] Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696)
2025-01-16 [email protected] [Impeller] Update partial repaint to use a fullsize onscreen. (flutter/flutter#161626)

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] 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
jonahwilliams pushed a commit to jonahwilliams/flutter that referenced this pull request Jan 24, 2025
… KHR). (flutter#161767)

Testing on a newer Adreno, I can still see rendering artifacts. This
change matches the syncrhonization to what we do for KHR, and on the
Adreno I see no more rendering artifacts.
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
flutter/flutter@5517cc9...b9e86a5

2025-01-18 [email protected] Fix link to Linux custom embedder artifacts (flutter/flutter#161699)
2025-01-18 [email protected] Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786)
2025-01-18 [email protected] [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765)
2025-01-18 [email protected] revert removing Twitter, retain BlueSky (flutter/flutter#161803)
2025-01-17 [email protected] fix reorderable_list_test.dart (flutter/flutter#161836)
2025-01-17 [email protected] [Release] Update the cherry-pick process. (flutter/flutter#161771)
2025-01-17 [email protected] Reland "#143249 Autocomplete options width" (flutter/flutter#161695)
2025-01-17 [email protected] Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781)
2025-01-17 [email protected] [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767)
2025-01-17 [email protected] [Impeller] remove Adreno denylist entries. (flutter/flutter#161740)
2025-01-17 [email protected] Refactor event redispatching (flutter/flutter#161701)
2025-01-17 [email protected] [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697)
2025-01-17 [email protected] Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383)
2025-01-16 [email protected] Make fl_keyboard_manager_handle_event async (flutter/flutter#161637)
2025-01-16 [email protected] Update social links in readme (flutter/flutter#161778)
2025-01-16 [email protected] Remove some stray printf debugging (flutter/flutter#161706)
2025-01-16 [email protected] Set meta tag in default index (flutter/flutter#161493)
2025-01-16 [email protected] remove usage of `Usage` from build system (flutter/flutter#160663)
2025-01-16 [email protected] route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533)
2025-01-16 [email protected] Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613)
2025-01-16 [email protected] Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696)
2025-01-16 [email protected] [Impeller] Update partial repaint to use a fullsize onscreen. (flutter/flutter#161626)

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] 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
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
flutter/flutter@5517cc9...b9e86a5

2025-01-18 [email protected] Fix link to Linux custom embedder artifacts (flutter/flutter#161699)
2025-01-18 [email protected] Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786)
2025-01-18 [email protected] [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765)
2025-01-18 [email protected] revert removing Twitter, retain BlueSky (flutter/flutter#161803)
2025-01-17 [email protected] fix reorderable_list_test.dart (flutter/flutter#161836)
2025-01-17 [email protected] [Release] Update the cherry-pick process. (flutter/flutter#161771)
2025-01-17 [email protected] Reland "#143249 Autocomplete options width" (flutter/flutter#161695)
2025-01-17 [email protected] Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781)
2025-01-17 [email protected] [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767)
2025-01-17 [email protected] [Impeller] remove Adreno denylist entries. (flutter/flutter#161740)
2025-01-17 [email protected] Refactor event redispatching (flutter/flutter#161701)
2025-01-17 [email protected] [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697)
2025-01-17 [email protected] Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383)
2025-01-16 [email protected] Make fl_keyboard_manager_handle_event async (flutter/flutter#161637)
2025-01-16 [email protected] Update social links in readme (flutter/flutter#161778)
2025-01-16 [email protected] Remove some stray printf debugging (flutter/flutter#161706)
2025-01-16 [email protected] Set meta tag in default index (flutter/flutter#161493)
2025-01-16 [email protected] remove usage of `Usage` from build system (flutter/flutter#160663)
2025-01-16 [email protected] route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533)
2025-01-16 [email protected] Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613)
2025-01-16 [email protected] Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696)
2025-01-16 [email protected] [Impeller] Update partial repaint to use a fullsize onscreen. (flutter/flutter#161626)

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] 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
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.

2 participants