Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@jonahwilliams
Copy link
Contributor

Creating descriptor pools is expensive, no need to have more than one per frame.

The lifecycle of the descriptor pool is exactly the same as the cmd pool, which indicates that we can probably do some consolidation/refactoring in the future.

Fixes flutter/flutter#157115

@flutter flutter deleted a comment from flutter-dashboard bot Oct 18, 2024
std::weak_ptr<const DeviceHolderVK> device_holder,
std::shared_ptr<TrackedObjectsVK> tracked_objects,
std::shared_ptr<FenceWaiterVK> fence_waiter);
std::shared_ptr<TrackedObjectsVK> tracked_objects);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fence waiter was unused.

}

// Associates a resource with a thread and context.
using CommandPoolMap =
Copy link
Contributor Author

Choose a reason for hiding this comment

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

moved definition to header

// available for reuse ("recycle").
static thread_local std::unique_ptr<CommandPoolMap> tls_command_pool_map;

struct WeakThreadLocalData {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The thread local data now holds both the cmd pool and desc pool

if (!pool) {
continue;
for (auto& [command_pool, desc_pool] : found->second) {
const auto& strong_pool = command_pool.lock();
Copy link
Contributor Author

Choose a reason for hiding this comment

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

We don't actually need to do anything with the descriptor pool here, I just added it for symmetry....

@jonahwilliams jonahwilliams added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 18, 2024
@auto-submit auto-submit bot merged commit 42c2a40 into flutter:main Oct 18, 2024
30 checks passed
@jonahwilliams
Copy link
Contributor Author

reason for revert: failing on scenario test

@jonahwilliams jonahwilliams added the revert Label used to revert changes in a closed and merged pull request. label Oct 18, 2024
auto-submit bot pushed a commit that referenced this pull request Oct 18, 2024
@auto-submit auto-submit bot removed the revert Label used to revert changes in a closed and merged pull request. label Oct 18, 2024
auto-submit bot added a commit that referenced this pull request Oct 18, 2024
Reverts: #55939
Initiated by: jonahwilliams
Reason for reverting: failing on scenario test
Original PR Author: jonahwilliams

Reviewed By: {matanlurey}

This change reverts the following previous change:
Creating descriptor pools is expensive, no need to have more than one per frame.

The lifecycle of the descriptor pool is exactly the same as the cmd pool, which indicates that we can probably do some consolidation/refactoring in the future.

Fixes flutter/flutter#157115
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 18, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 19, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 19, 2024
jonahwilliams pushed a commit to flutter/flutter that referenced this pull request Oct 19, 2024
…157215)

flutter/engine@76d310e...dd37446

2024-10-19 [email protected] Move keymap from
FlKeyboardViewDelegate to FlKeyboardManager (flutter/engine#55942)
2024-10-19 [email protected] [UI] fix scene builder parameter
naming. (flutter/engine#55969)
2024-10-19 [email protected] iOS: Improve thread safety of first frame
callback (flutter/engine#55966)
2024-10-18 [email protected] iOS: Fix flaky tests (remove timeouts)
(flutter/engine#55961)
2024-10-18 [email protected] [Impeller] allocate the impeller
onscreen texture from the render target cache. (flutter/engine#55943)
2024-10-18 [email protected] Roll Fuchsia Linux SDK from
9F_NaKPd2twhbPwP7... to tNQZ8d5mRYpe3--lk... (flutter/engine#55963)
2024-10-18 [email protected] Started filtering
out close line segments in rrect polylines. (flutter/engine#55929)
2024-10-18 [email protected] [Impeller] libImpeller: Allow custom
font registrations. (flutter/engine#55934)
2024-10-18 [email protected] Re-reland "iOS: Migrate FlutterEngine to
ARC" (flutter/engine#55962)
2024-10-18 [email protected] [Impeller] libImpeller: Add a README.
(flutter/engine#55940)
2024-10-18 [email protected] iOS: Eliminate needless profiler metrics
ivar (flutter/engine#55957)
2024-10-18 98614782+auto-submit[bot]@users.noreply.github.com Reverts
"[Impeller] one descriptor pool per frame. (#55939)"
(flutter/engine#55959)
2024-10-18 [email protected] Revert "Reland "iOS: Migrate FlutterEngine
to ARC" (#55937)" (flutter/engine#55954)
2024-10-18 [email protected] Roll Dart SDK from
993d3069f42e to a51df90298ca (7 revisions) (flutter/engine#55951)
2024-10-18 [email protected] [engine] add back opt out for merged
threads. (flutter/engine#55952)
2024-10-18 [email protected] [Impeller] one descriptor pool per
frame. (flutter/engine#55939)
2024-10-18 [email protected] [Impeller] add mechanism for sharing
bdf inputs. (flutter/engine#55701)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from 9F_NaKPd2twh to tNQZ8d5mRYpe

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

To file a bug in Flutter:
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
auto-submit bot pushed a commit that referenced this pull request Oct 21, 2024
reverted #55939 due to postsubmit failures.

It turns out the lifecycle is not exactly the same as the command pool. Instead, use a thread id map on the context to keep the right thread running and simplify shutdown. Leaving CI yaml edit for now to prove it works :)

Fixes flutter/flutter#157115
nick9822 pushed a commit to nick9822/flutter that referenced this pull request Dec 18, 2024
Creating descriptor pools is expensive, no need to have more than one per frame.

The lifecycle of the descriptor pool is exactly the same as the cmd pool, which indicates that we can probably do some consolidation/refactoring in the future.

Fixes flutter#157115
nick9822 pushed a commit to nick9822/flutter that referenced this pull request Dec 18, 2024
…lutter/engine#55959)

Reverts: flutter/engine#55939
Initiated by: jonahwilliams
Reason for reverting: failing on scenario test
Original PR Author: jonahwilliams

Reviewed By: {matanlurey}

This change reverts the following previous change:
Creating descriptor pools is expensive, no need to have more than one per frame.

The lifecycle of the descriptor pool is exactly the same as the cmd pool, which indicates that we can probably do some consolidation/refactoring in the future.

Fixes flutter#157115
nick9822 pushed a commit to nick9822/flutter that referenced this pull request Dec 18, 2024
reverted flutter/engine#55939 due to postsubmit failures.

It turns out the lifecycle is not exactly the same as the command pool. Instead, use a thread id map on the context to keep the right thread running and simplify shutdown. Leaving CI yaml edit for now to prove it works :)

Fixes flutter#157115
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

autosubmit Merge PR when tree becomes green via auto submit App e: impeller

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Impeller][Vulkan] create one DescriptorPool per frame.

2 participants