-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
flutter/engine
#33981Labels
P0Critical issues such as a build break or regressionCritical issues such as a build break or regressionc: renderingUI glitches reported at the engine/skia or impeller rendering levelUI glitches reported at the engine/skia or impeller rendering levelengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.found in release: 3.0Found to occur in 3.0Found to occur in 3.0found in release: 3.1Found to occur in 3.1Found to occur in 3.1has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyiOS applications specificallyr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer version
Description
The scenario is like this:
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.lightBlue,
body: ListView(
controller: _controller,
children: <Widget>[
ImageFiltered(
imageFilter: ImageFilter.blur(
sigmaX: 4,
sigmaY: 4,
),
child: Container(
width: 50,
height: 50,
color: Colors.red,
),
),
Container(
height: 800,
),
],
),
);
}
this is the behavior:
2022-06-09.14.00.36.mov
The engine is the latest version.
And I found this issue may be because of Partial repaint
The second scenario is like this:
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.lightBlue,
body: SingleChildScrollView(
child: Row(
children: [ImageFiltered(
imageFilter: ImageFilter.blur(
sigmaX: 4,
sigmaY: 4,
),
child: Container(
width: 50,
height: 50,
color: Colors.red,
),
),
Container(
height: 800,
),],
),
),
);
}2022-06-09.15.45.49.mov
The second scenario and the first scenario may not be the same problem.
Because the second scenario I set the RasterCahe is nullptr, and don't use the partial repaint
// set the clip_rect is nullptr when Raster
CompositorContext::ScopedFrame::Raster() {
std::optional<SkRect> clip_rect = std::nullopt;
bool root_needs_readback = layer_tree.Preroll(
*this, ignore_raster_cache, clip_rect ? *clip_rect : kGiantRect);
....
}
// set this when preoll and paint:
PrerollContext.raster_cache = nullptr;
PaintContext.raster_cache = nullptr;
Metadata
Metadata
Assignees
Labels
P0Critical issues such as a build break or regressionCritical issues such as a build break or regressionc: renderingUI glitches reported at the engine/skia or impeller rendering levelUI glitches reported at the engine/skia or impeller rendering levelengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.found in release: 3.0Found to occur in 3.0Found to occur in 3.0found in release: 3.1Found to occur in 3.1Found to occur in 3.1has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyiOS applications specificallyr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer version