Skip to content

[Impeller/Android/Vulkan] issues rendering video with Impeller/Vulkan #182825

@holzgeist

Description

@holzgeist

Steps to reproduce

I'm trying to show a (local) video using Livekit, which internally uses Flutter WebRTC.

Expected results

See lokal video, same as when using Impeller/OpenGLES or Skia

Actual results

With standard settings (i.e. Impeller with Vulkan), depending on the phone, I see the local video, but with transparency, i.e. widgets behind the video shine through (see screenshots below)

Broken phone: Samsung Galaxy A14 (SM-A145R/DSN)
Working phone: Fairphone 5 5G

Code sample

Unfortunately, I could not reproduce it with the official video player example. Here's a fork of Livekits Flutter Components with red video background to better see effect:

livekit/components-flutter@main...holzgeist:components-flutter:debug-impeller-render-issue

Screenshots or Video

Impeller/Vulkan Image
Impeller/OpenGLES Image
Skia Image

Logs

impeller-vulkan.log

impeller-opengles.log

skia.log

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.41.2, on Arch Linux 6.18.9-arch1-2, locale en_US.UTF-8) [34ms]
    • Flutter version 3.41.2 on channel stable at /home/tobias/src/3rdparty/flutter
    • Upstream repository https://github.com/flutter/flutter
    • Framework revision 90673a4eef (6 days ago), 2026-02-18 13:54:59 -0800
    • Engine revision 6c0baaebf7
    • Dart version 3.11.0
    • DevTools version 2.54.1
    • 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

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [1,945ms]
    • Android SDK at /home/tobias/Android/Sdk
    • Emulator version 36.3.10.0 (build_id 14472402) (CL:N/A)
    • Platform android-36, build-tools 36.0.0
    • ANDROID_HOME = /home/tobias/Android/Sdk
    • Java binary at: /opt/android-studio/jbr/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.9+-14649483-b1163.86)
    • All Android licenses accepted.

[✓] Chrome - develop for the web [6ms]
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop [526ms]
    • clang version 21.1.8
    • cmake version 4.2.3
    • ninja version 1.13.2
    • pkg-config version 2.5.1
    • OpenGL core renderer: AMD Radeon 740M Graphics (radeonsi, phoenix, LLVM 21.1.6, DRM 3.64, 6.18.9-arch1-2)
    • OpenGL core version: 4.6 (Core Profile) Mesa 25.3.5-arch1.1
    • OpenGL core shading language version: 4.60
    • OpenGL ES renderer: AMD Radeon 740M Graphics (radeonsi, phoenix, LLVM 21.1.6, DRM 3.64, 6.18.9-arch1-2)
    • OpenGL ES version: OpenGL ES 3.2 Mesa 25.3.5-arch1.1
    • OpenGL ES shading language version: OpenGL ES GLSL ES 3.20
    • GL_EXT_framebuffer_blit: yes
    • GL_EXT_texture_format_BGRA8888: yes

[✓] Connected device (3 available) [461ms]
    • SM A145R (mobile) • 172.16.60.78:46423 • android-arm64  • Android 15 (API 35)
    • Linux (desktop)   • linux              • linux-x64      • Arch Linux 6.18.9-arch1-2
    • Chrome (web)      • chrome             • web-javascript • Chromium 145.0.7632.109 Arch Linux

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

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    e: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.found in release: 3.41Found to occur in 3.41platform-androidAndroid applications specificallyteam-engineOwned by Engine team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions