perf(dialogs): drop the Opacity around the backdrop blur; animate sigma and tint (#886) - #977
Merged
Conversation
…ma and tint (Closes #886) The dialog backdrop faded in by wrapping a BackdropFilter in an Opacity driven by the route animation, which asks the compositor for an extra full-screen offscreen layer on every frame of the enter and exit transitions. Animate the blur sigma and the tint alpha directly with the transition progress instead. The frost still fades in and out without pop-in, ends at the same sigma 8 / black 0.32 as before, and nothing wraps the filter in an Opacity. The filter is not built at progress 0.
ZhuchkaTriplesix
deleted the
issue/886-dialog-backdrop-filter-opacity
branch
September 28, 2026 08:13
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Описание изменений
showAppDialogфон-заморозка плавно появлялся черезOpacityвокругBackdropFilter. Это заставляет композитор на каждом кадре входа и выхода создавать дополнительный экранный offscreen-слой._DialogBackdrop). Эффект по-прежнему появляется и исчезает плавно, без «выскакивания», в установившемся состоянии те же sigma 8 и чёрный 0,32, ноOpacityвокруг фильтра нет. При прогрессе 0 фильтр не строится.FadeTransition/SlideTransition) не менялась.app_dialog_test: старый тест закреплял прежнее поведение (статичная сигма иOpacity), заменён на три новых: сигма и тон растут при входе и нетOpacityнад фильтром, в конце полный блюр и тон, при закрытии снова затухают и фильтр исчезает. Прогналtest/sharedиtest/features/main_screen(116 тестов, включая golden), проходят.Замеры: результат неубедительный
Профильная сборка, окно 2056×2616, открытие и закрытие диалога поверх сетки 5000×120, растр по кадрам:
Прогоны сильно шумят, поэтому доказать выигрыш нельзя. Единственное, что видно: в 2 из 4 прогонов «до» были серии тяжёлых кадров, в 3 из 3 прогонов «после» этого не было. Это согласуется с описанием issue, но не подтверждает его. Один прогон «после» шёл в другом размере окна (тайлинг), его я исключил.
Связанные Issue
Closes #886