Skip to content

[impeller] FadeTransition wrapping CupertinoPopupSurface breaks appearance on Impeller #182066

@davidhicks980

Description

@davidhicks980

Steps to reproduce

Run demo

This is blocking #182036

Expected results

Should look like a blurred surface.

Actual results

Half of the blur is missing. Also, scaling the surface seems to move the blur further offscreen

Code sample

Code sample
import 'package:flutter/cupertino.dart';

void main() => runApp(const Bug());

class Bug extends StatefulWidget {
  const Bug({super.key});

  @override
  State<Bug> createState() => _BugState();
}

class _BugState extends State<Bug> {
  @override
  Widget build(BuildContext context) {
    return const CupertinoApp(home: CupertinoPageScaffold(child: Demo()));
  }
}

class Demo extends StatelessWidget {
  const Demo({super.key});

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        Positioned.fill(
          child: Center(
            child: Wrap(
              children: <Widget>[
                Container(height: 100, width: 100, color: const Color(0xFFFF0000)),
                Container(height: 100, width: 100, color: const Color(0xFFFFFF00)),
                Container(height: 100, width: 100, color: const Color(0xFFFFFFFF)),
                Container(height: 100, width: 100, color: const Color(0xFF00FF00)),
                Container(height: 100, width: 100, color: const Color(0xFF00FFFF)),
                Container(height: 100, width: 100, color: const Color(0xFF0000FF)),
                Container(height: 100, width: 100, color: const Color(0xFFFF00FF)),
              ],
            ),
          ),
        ),
        Center(
          child: ConstrainedBox(
            constraints: BoxConstraints.tight(const Size(400, 400)),
            child: const FadeTransition(
              opacity: kAlwaysCompleteAnimation,
              child: CupertinoPopupSurface(child: SizedBox.expand()),
            ),
          ),
        ),
      ],
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

Skia on Android

Image

Impeller on iOS. Looks identical on Android.

Image

Logs

Logs
n/a

Flutter Doctor output

Doctor output
[✓] Flutter (Channel master, 3.41.0-1.0.pre-456, on macOS 15.5 24F74 darwin-arm64, locale en-US) [1,244ms]
    • Flutter version 3.41.0-1.0.pre-456 on channel master at /Users/davidhicks/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f916dd6887 (4 days ago), 2026-02-05 01:27:27 +0100
    • Engine revision f916dd6887
    • Dart version 3.12.0 (build 3.12.0-113.0.dev)
    • DevTools version 2.54.0
    • 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, enable-riscv64

[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0) [1,240ms]
    • Android SDK at /Users/davidhicks/Library/Android/sdk
    • Emulator version 36.3.10.0 (build_id 14472402) (CL:N/A)
    • Platform android-36.1, build-tools 36.1.0
    • ANDROID_HOME = /Users/davidhicks/Library/Android/sdk
    • Java binary at: /Users/davidhicks/Library/Java/JavaVirtualMachines/jbr-17.0.14/Contents/Home/bin/java
      This JDK is specified in your Flutter configuration.
      To change the current JDK, run: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment JBR-17.0.14+1-1367.22-nomod (build 17.0.14+1-b1367.22)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.4) [1,057ms]
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16F6
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web [6ms]
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Connected device (4 available) [6.2s]
    • SM G975U1 (wireless) (mobile) • adb-R58M23AEHEX-T1Qoe1._adb-tls-connect._tcp • android-arm64  • Android 12 (API 31)
    • iPhone 16 Pro (mobile)        • 202ED8C0-7DDC-4EB3-91F7-A3C2180AE01E         • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-18-5 (simulator)
    • macOS (desktop)               • macos                                        • darwin-arm64   • macOS 15.5 24F74
      darwin-arm64
    • Chrome (web)                  • chrome                                       • web-javascript • Google Chrome
      144.0.7559.133
    ! Error: Browsing on the local area network for David’s iPhone. Ensure the device is unlocked and attached with a cable
      or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources [289ms]
    • All expected network resources are available.

• No issues found!

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listc: renderingUI glitches reported at the engine/skia or impeller rendering levele: impellerImpeller rendering backend issues and features requeststeam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions