-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[iOS] Improve background layer frame mapping performance #24848
Merged
PureWeen
merged 10 commits into
dotnet:main
from
albyrock87:sync-sublayer-frame-differently
Dec 10, 2024
Merged
[iOS] Improve background layer frame mapping performance #24848
PureWeen
merged 10 commits into
dotnet:main
from
albyrock87:sync-sublayer-frame-differently
Dec 10, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/azp run |
This comment was marked as outdated.
This comment was marked as outdated.
Failing tests definitely unrelated :) |
rmarinho
reviewed
Sep 23, 2024
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
albyrock87
force-pushed
the
sync-sublayer-frame-differently
branch
from
September 25, 2024 12:51
8947b0b
to
9d24253
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
github-actions
bot
force-pushed
the
sync-sublayer-frame-differently
branch
from
October 3, 2024 22:08
9d24253
to
b235d2a
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
github-actions
bot
force-pushed
the
sync-sublayer-frame-differently
branch
from
October 10, 2024 17:10
b235d2a
to
9eae070
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Failed test is unrelated. |
4 tasks
I've included @Tamilarasan-Paranthaman UI test from #26222 |
Azure Pipelines successfully started running 3 pipeline(s). |
/rebase |
PureWeen
requested changes
Dec 9, 2024
jfversluis
added
the
area-drawing
Shapes, Borders, Shadows, Graphics, BoxView, custom drawing
label
Dec 10, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 13 out of 28 changed files in this pull request and generated no suggestions.
Files not reviewed (15)
- src/Controls/tests/TestCases.HostApp/Issues/Issue26057.xaml: Language not supported
- src/Compatibility/Core/src/iOS/Renderers/FrameRenderer.cs: Evaluated as low risk
- src/Compatibility/Core/src/iOS/Renderers/PageRenderer.cs: Evaluated as low risk
- src/Compatibility/Core/src/iOS/VisualElementRenderer.cs: Evaluated as low risk
- src/Controls/src/Core/Compatibility/Handlers/iOS/FrameRenderer.cs: Evaluated as low risk
- src/Controls/src/Core/Platform/iOS/Extensions/BrushExtensions.cs: Evaluated as low risk
- src/Controls/tests/TestCases.HostApp/Issues/Issue24847.cs: Evaluated as low risk
- src/Controls/tests/TestCases.HostApp/Issues/Issue26057.xaml.cs: Evaluated as low risk
- src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue24847.cs: Evaluated as low risk
- src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue26057.cs: Evaluated as low risk
- src/Core/src/Handlers/View/ViewHandler.iOS.cs: Evaluated as low risk
- src/Core/src/Platform/iOS/CALayerAutosizeObserver.cs: Evaluated as low risk
- src/Core/src/Platform/iOS/ContentView.cs: Evaluated as low risk
- src/Core/src/Platform/iOS/IAutoSizableCALayer.cs: Evaluated as low risk
- src/Core/src/Platform/iOS/LayerExtensions.cs: Evaluated as low risk
# Conflicts: # src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt # src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
/azp run |
PureWeen
approved these changes
Dec 10, 2024
Azure Pipelines successfully started running 3 pipeline(s). |
|
PureWeen
dismissed stale reviews from rmarinho and jsuarezruiz
December 10, 2024 22:14
Changes applied
samhouts
added
fixed-in-net9.0-nightly
This may be available in a nightly release!
fixed-in-net8.0-nightly
This may be available in a nightly release!
labels
Dec 16, 2024
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
area-drawing
Shapes, Borders, Shadows, Graphics, BoxView, custom drawing
community ✨
Community Contribution
fixed-in-net8.0-nightly
This may be available in a nightly release!
fixed-in-net9.0-nightly
This may be available in a nightly release!
p/1
Work that is important, and has been scheduled for release in this or an upcoming sprint
platform/iOS 🍎
t/perf
The issue affects performance (runtime speed, memory usage, startup time, etc.) (sub: perf)
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Important
This PR
Obsolete
s a couple of methods.Description of Change
Using https://github.com/davidortinau/AllTheLists app, and scrolling through collection view with
Border
inside we can clearly see that a good amount of time is spent inUpdateBackgroundLayerFrame
which is needed to sync the sublayer with theUIView.Layer
.This has an impact on both
MappingFrame
andContentView.LayoutSubviews
:Which translated to these timings
This PR gets rid of all mapping frame code and simply adds an observer on the sublayer.
As a result we get a lot of improvement (80%):
While the new observer is super fast
Issues Fixed
Fixes #24847
Fixes #26057
Fixes #20218
Closes #26222