Skip to content

[Impeller] FadeTransition not working when pushing a route #130824

@chrisbobbe

Description

@chrisbobbe

Is there an existing issue for this?

Steps to reproduce

  1. Run my code sample (below) with Impeller. (I ran on my iPhone 13 Pro with flutter run and saw this message go by: "Using the Impeller rendering backend.") It's the same code sample I gave for [Impeller] EXC_BAD_ACCESS crash on raster thread (InlinePassContext::EndPass()) #130167. Notice in particular the FadeTransition.
  2. Press the "Press" button.

Expected results

The background fades from black to blue.

Actual results

The background cuts suddenly from black to blue, without fading.

Code sample

Code sample
import 'dart:ui';

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(
      home: Center(
        child: Builder(
          builder: (context) => ElevatedButton(
            onPressed: () {
              Navigator.of(context).push(PageRouteBuilder(
                pageBuilder: (
                  BuildContext context,
                  Animation<double> animation,
                  Animation<double> secondaryAnimation,
                ) => PhysicalModel(
                  color: Colors.blue,
                  child: Container()),
                transitionsBuilder: (
                  BuildContext context,
                  Animation<double> animation,
                  Animation<double> secondaryAnimation,
                  Widget child,
                ) => FadeTransition(
                  opacity: animation.drive(CurveTween(curve: Curves.ease)),
                  child: child)));
            },
            child: const Text('Press')))));
  }
}

Logs

No errors expected or observed, given that I used a Flutter version with the fix for #130167.

Flutter Doctor output

Doctor output
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel main, 3.13.0-5.0.pre.29, on macOS 13.4.1 22F82 darwin-x64,
    locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.80.1)
[✓] Connected device (3 available)
    ! Error: Chris’s Apple Watch needs to connect to determine its availability.
      Check the connection between the device and its companion iPhone, and the
      connection between the iPhone and Xcode. Both devices may also need to be
      restarted and unlocked. (code 1)
[✓] Network resources

• No issues found!

Metadata

Metadata

Assignees

Labels

e: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.found in release: 3.13Found to occur in 3.13has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionteam-engineOwned by Engine teamwaiting for PR to land (fixed)A fix is in flight

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions