Repository: flutter
Issue: ImageFilter.blur bright edges and clip when resizing
Labels: framework,engine,a: quality,a: images,c: rendering,has reproducible steps,P2,found in release: 3.3,found in release: 3.7,team-engine,triaged-engine

ImageFiltered with ImageFilter.blur has this strange clip/border effect that is affected by size. This causes some jank when resizing a desktop window on both macOS and Windows:

<img src="https://i.gyazo.com/a152e27c491eb04c46a3ee1d3e597807.gif" height="400" />

And jank when resizing the filtered widget in general:

<img src="https://user-images.githubusercontent.com/68219924/91616758-0d3e4000-e98f-11ea-8f66-08b4596fd241.gif" height="400" />

Reproducible on master `1.22.0-2.0.pre.105` on Windows, macOS and Android. ~~The desktop resizing issue could maybe be chalked up to https://github.com/flutter/flutter/issues/44136 on macOS for now but on Windows that was supposedly fixed https://github.com/flutter/flutter/issues/30671#issuecomment-549526664?~~ Related to layout moving the widget across sub-pixel boundaries when resizing rather than any desktop-specific issue.

The expected behavior can actually be seen with `flutter run -d chrome --dart-define=FLUTTER_WEB_USE_SKIA=true`

<img src="https://user-images.githubusercontent.com/68219924/91616827-352da380-e98f-11ea-813c-c438dbb0278f.png" height="400" />

<details>
 <summary>Minimal reproducible code sample</summary>

```dart
import 'dart:ui';
import 'dart:math';
import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
      title: 'Sample',
      home: HomePage(),
    ));

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  var width = 100.0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      bottomNavigationBar: Card(
        child: Container(
          height: 50,
          child: Slider(
            max: min(MediaQuery.of(context).size.width, MediaQuery.of(context).size.height),
            min: 10,
            value: width,
            onChanged: (double value) => setState(() => width = value),
          ),
        ),
      ),
      appBar: AppBar(
        title: Text('Sample'),
      ),
      body: Center(
        child: SizedBox(
          width: width,
          child: ImageFiltered(
            imageFilter: ImageFilter.blur(sigmaX: 7.0, sigmaY: 7.0),
            child: Image.network(
                "https://cdna.artstation.com/p/assets/images/images/028/571/260/large/lower-third-logo-dark.jpg?1594844508"),
          ),
        ),
      ),
    );
  }
}
```
</details>
<details>
 <summary>Desktop resizing sample</summary>

```dart
import 'dart:ui';

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Sample',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Sample'),
        ),
        body: Center(
          child: ImageFiltered(
            imageFilter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
            child: Container(
              width: 50,
              height: 50,
              color: Colors.red,
            ),
          ),
        ),
      ),
    );
  }
}
```
</details>
<details>
 <summary>flutter doctor -v</summary>

```
[√] Flutter (Channel master, 1.22.0-2.0.pre.105, on Microsoft Windows [Version 10.0.19041.450], locale en-US)
    • Flutter version 1.22.0-2.0.pre.105 at C:\Development\flutter_master
    • Framework revision cad4d1333e (11 hours ago), 2020-08-27 17:48:05 -0700
    • Engine revision 77dd1c05b9
    • Dart version 2.10.0 (build 2.10.0-67.0.dev)


[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at C:\Users\marku\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.1
    • Java binary at: C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.6.5)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.6.30320.27
    • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.0)
    • Android Studio at C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (4 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)           • windows       • windows-x64    • Microsoft Windows [Version 10.0.19041.450]
    • Web Server (web)            • web-server    • web-javascript • Flutter Tools
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 85.0.4183.83

• No issues found!
```
</details>

cc @flar