Skip to content

ImageFiltered Render Issue #105674

@JsouLiang

Description

@JsouLiang

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

No one assigned

    Labels

    P0Critical issues such as a build break or regressionc: renderingUI glitches reported at the engine/skia or impeller rendering levelengineflutter/engine related. See also e: labels.found in release: 3.0Found to occur in 3.0found in release: 3.1Found to occur in 3.1has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyr: fixedIssue is closed as already fixed in a newer version

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions