Skip to content

Images become corrupted when using CanvasKit #97103

@doppio

Description

@doppio

Images are inconsistently, but frequently, becoming corrupted on web when using CanvasKit. It seems to happen when the content is scrolled or the window is resized. Below, you'll see an example of 3 images loaded in from assets in a Stack. The results usually appear correctly at first, but scrolling through the interface causes the images to "randomly" change their content. The incorrect contents always seem to be a stretched or highly-zoomed version of other images in memory.

I've only been able to reproduce this when using CanvasKit, but using the HTML renderer is not a viable workaround for us due to several other Flutter bugs.

I've been unable to reproduce this on the beta channel but I see it often on master.

Expected results:
Screen Shot 2022-01-23 at 11 34 01 AM

Actual results:
Screen Shot 2022-01-23 at 11 34 10 AM
Screen Shot 2022-01-23 at 11 34 22 AM

I'm having some difficulty putting together a minimal repro case, but I'm working on it and hope to post one soon. I'm filing this issue in the meantime, in case this is a known issue or someone has some insight about what's going on here.

Logs No warnings or exceptions are displayed at runtime.
flutter analyze
Analyzing app...                                                        
No issues found! (ran in 4.5s)
flutter doctor -v
[✓] Flutter (Channel master, 2.9.0-1.0.pre.463, on macOS 11.6.2 20G314 darwin-x64, locale en-US)
    • Flutter version 2.9.0-1.0.pre.463 at /Users/bryson/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e92d8ef2b1 (2 hours ago), 2022-01-23 13:20:17 -0500
    • Engine revision 4f58a01268
    • Dart version 2.17.0 (build 2.17.0-48.0.dev)
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/bryson/Library/Android/sdk
    • Platform android-31, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

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

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.63.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.32.0

[✓] Connected device (3 available)
    • iPhone X (mobile) • 8ca2a91e9a7b3818f0cd37d0aa1c08b65921f2a9 • ios            • iOS 15.2.1 19C63
    • macOS (desktop)   • macos                                    • darwin-x64     • macOS 11.6.2 20G314 darwin-x64
    • Chrome (web)      • chrome                                   • web-javascript • Google Chrome 97.0.4692.71

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    a: imagesLoading, displaying, rendering imagesdependency: skiaSkia team may need to help use: web_canvaskitCanvasKit (a.k.a. Skia-on-WebGL) rendering backend for Webfound in release: 2.10Found to occur in 2.10has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-webWeb 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