Skip to content

Conversation

ramezgerges
Copy link
Contributor

GitHub Issue (If applicable): closes #20634

PR Type

What kind of change does this PR introduce?

What is the current behavior?

What is the new behavior?

PR Checklist

Please check if your PR fulfills the following requirements:

Other information

Internal Issue (If applicable):

@github-actions github-actions bot added the area/skia ✏️ Categorizes an issue or PR as relevant to Skia label May 29, 2025
@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20642/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20642/docs/index.html

@jeromelaban jeromelaban requested a review from Copilot May 30, 2025 14:54
@jeromelaban
Copy link
Member

@Mergifyio backport release/stable/6.0

Copy link
Contributor

mergify bot commented May 30, 2025

backport release/stable/6.0

✅ Backports have been created

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR prevents an infinite invalidation loop in CompositionEffectBrush by batching updates to the HasBackdropBrushInput property.

  • Introduces a temporary flag to collect backdrop brush input state during effect generation.
  • Delays the actual property update until after filter generation in UpdatePaint.
  • Adds debug logging in the setter of HasBackdropBrushInput to trace changes.
Comments suppressed due to low confidence (2)

src/Uno.UI.Composition/Composition/CompositionEffectBrush.skia.cs:24

  • [nitpick] The name _hasBackdropBrushInputPrivate is a bit unclear; consider renaming to something like _pendingBackdropBrushInput to better convey its purpose.
private bool _hasBackdropBrushInputPrivate; // this one is reset and set during effect generation ...

src/Uno.UI.Composition/Composition/CompositionEffectBrush.skia.cs:1615

  • There are no existing unit tests covering this new invalidation buffering logic. Consider adding tests that verify HasBackdropBrushInput only changes once per paint cycle and that the infinite invalidation loop is resolved.
HasBackdropBrushInput = _hasBackdropBrushInputPrivate;

Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20642/docs/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20642/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 167299 has failed on Uno.UI - CI.

@jeromelaban jeromelaban enabled auto-merge June 2, 2025 12:24
@jeromelaban jeromelaban disabled auto-merge June 2, 2025 12:24
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20642/docs/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20642/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 167456 has failed on Uno.UI - CI.

@ramezgerges ramezgerges enabled auto-merge June 4, 2025 15:30
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20642/docs/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20642/wasm-skia-net9/index.html

@ramezgerges ramezgerges merged commit 67197b1 into unoplatform:master Jun 4, 2025
91 checks passed
agneszitte added a commit that referenced this pull request Jun 5, 2025
…6.0/pr-20642

fix(CompositionEffectBrush): avoid infinite invalidation loop (backport #20642)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/skia ✏️ Categorizes an issue or PR as relevant to Skia
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ScrollBar animations are running indefinitely
5 participants