Repository navigation
Closed
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onplatform-androidAndroid applications specificallyAndroid applications specificallyplatform-iosiOS applications specificallyiOS applications specificallyteam-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team
Description
Steps to reproduce
- Create a
ListView.builderwith multiple items - Each item contains an image with a
BackdropFilteroverlay usingImageFilterConfig.blur(sigmaX: 10, sigmaY: 10, bounded: true) - Run the app on an Android device with Impeller enabled
- Observe that blur is not applied correctly — the blur region appears misaligned or missing depending on scroll position
- Switch to Skia (
--no-enable-impeller) and confirm blur works correctly on all items
Expected results
All items in the ListView should have the BackdropFilter blur applied equally.
Actual results
When using Impeller with bounded: true, the blur effect is not applied correctly. Using Skia or bounded: false, blur works correctly on all items.
Code sample
Code sample
import 'package:flutter/material.dart';
void main() {
runApp(const App());
}
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'BackdropFilter Bounded Blur Bug',
theme: ThemeData(colorSchemeSeed: Colors.blue),
home: const ImageListScreen(),
);
}
}
class ImageListScreen extends StatelessWidget {
const ImageListScreen({super.key});
static const _imageCount = 30;
String _imageUrl(int index) => 'https://picsum.photos/seed/$index/400/300';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('BackdropFilter Bounded Blur Bug')),
body: ListView.builder(
itemCount: _imageCount,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: ClipRRect(
borderRadius: BorderRadius.circular(12),
child: SizedBox(
height: 220,
child: Stack(
fit: StackFit.expand,
children: [
Image.network(
_imageUrl(index),
fit: BoxFit.cover,
),
Positioned(
left: 0,
right: 0,
bottom: 0,
height: 72,
child: ClipRect(
child: BackdropFilter(
filterConfig: ImageFilterConfig.blur(
sigmaX: 10,
sigmaY: 10,
bounded: true,
),
child: Container(
color: Colors.black.withValues(alpha: 0.2),
alignment: Alignment.centerLeft,
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Text(
'Image #${index + 1}',
style: const TextStyle(
color: Colors.white,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
),
),
),
),
],
),
),
),
);
},
),
);
}
}
Screenshots or Video
Screenshots / Video demonstration
- Impeller:
impeller_recording.mp4
- Skia:
skia_recording.mp4
Logs
Logs
[Paste your logs here]Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.41.6, on macOS 26.3.1 25D2128 darwin-arm64, locale ja-JP) [925ms]
• Flutter version 3.41.6 on channel stable at /Users/dkajiii/.local/share/mise/http-tarballs/99d17a780e1f8e4bf51665d91611913d064da37d40b16f1dd219f08ba1fc379c
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision db50e20168 (6 days ago), 2026-03-25 16:21:00 -0700
• Engine revision 425cfb54d0
• Dart version 3.11.4
• DevTools version 2.54.2
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets, omit-legacy-version-file, enable-lldb-debugging, enable-uiscene-migration
[!] Android toolchain - develop for Android devices (Android SDK version 35.0.0-rc3) [1,630ms]
• Android SDK at /Users/dkajiii/Library/Android/sdk
• Emulator version 36.3.10.0 (build_id 14472402) (CL:N/A)
• Platform android-36, build-tools 35.0.0-rc3
• Java binary at: /Applications/Android Studio Narwhal.app/Contents/jbr/Contents/Home/bin/java
This is the JDK bundled with the latest Android Studio installation on this machine.
To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
• Java version OpenJDK Runtime Environment (build 21.0.10+-117844308-b1163.108)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[✓] Xcode - develop for iOS and macOS (Xcode 26.2) [1,680ms]
• Xcode at /Applications/Xcode_26.2.app/Contents/Developer
• Build 17C52
• CocoaPods version 1.16.2
[✓] Chrome - develop for the web [5ms]
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Network resources [262ms]
• All expected network resources are available.
! Doctor found issues in 1 category.
Reacted by Tobias Marschall and Florian Marschall
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onplatform-androidAndroid applications specificallyAndroid applications specificallyplatform-iosiOS applications specificallyiOS applications specificallyteam-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team
Activity
mbcorona commentedon Apr 1, 2026
Hi @dkajiwara , thanks for reporting this and providing a code sample that reproduces the issue. I can confirm the same results when running with Impeller on both Android and iOS, Flutter 3.41.6.
Routing to team-engine for further investigation.
jason-simmons commentedon Apr 2, 2026
Bounded blur is not currently implemented for the Skia renderer.
@dkwingsmt Does something in the
GaussianBlurFilterContentsmapping of the source bounds need to be adjusted for this use case?dkwingsmt commentedon Apr 2, 2026
Might be related to #182066 , which also reported that the blur region mapping is broken in certain cases. I haven't got time to investigate that problem yet, but I plan to. I'll see if fixing that issue also fixes this one.
gaaclarke commentedon Aug 24, 2026
@dkwingsmt this is still showing up, can you give this another pass please?
Fixes translated bounded blurs (flutter#191615)
github-actions commentedon Sep 9, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.