Skip to content

[Impeller] Black screen from second frame when rendering pixel buffer texture with enable impeller on Linux #183058

@xiaowei-guan

Description

@xiaowei-guan

Steps to reproduce

  1. Download flutter webrtc plugin on Ubuntu 20.04
  2. Before run sampel code, you need to ensure that a webcam is plugged into the PC.
  3. cd example folder and run "flutter run --enable-impeller"
  4. Select GetUserMedia after app launch.
  5. Press call button after enter GetUserMedia API Test Page.

Expected results

The camera can be displayed normally.

Actual results

Black screen from second frame.

Code sample

https://github.com/flutter-webrtc/flutter-webrtc

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

Logs
guanxw@samsung10022:~/linux/flutter-webrtc/example$ flutter run --enable-impeller --verbose-system-logs
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Connected devices:
Linux (desktop) • linux  • linux-x64      • Ubuntu 20.04.5 LTS 5.15.0-139-generic
Chrome (web)    • chrome • web-javascript • Google Chrome 105.0.5195.125
[1]: Linux (linux)
[2]: Chrome (chrome)
Please choose one (or "q" to quit): 1
Launching lib/main.dart on Linux in debug mode...
Building Linux application...
✓ Built build/linux/x64/debug/bundle/flutter_webrtc_example
[IMPORTANT:flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc(99)] Using the Impeller rendering backend (OpenGL).
[WARNING:flutter/common/graphics/persistent_cache.cc(286)] Could not acquire the persistent cache directory. Caching of GPU resources on disk is disabled.

** (flutter_webrtc_example:3970709): CRITICAL **: 00:48:08.017: Failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFound: Requested setting not found

** (flutter_webrtc_example:3970709): CRITICAL **: 00:48:08.018: Failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFound: Requested setting not found
Syncing files to device Linux...                                    37ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

A Dart VM Service on Linux is available at: http://127.0.0.1:36055/WtamKwE8J5A=/
The Flutter DevTools debugger and profiler on Linux is available at: http://127.0.0.1:36055/WtamKwE8J5A=/devtools/?uri=ws://127.0.0.1:36055/WtamKwE8J5A=/ws

Flutter Doctor output

Doctor output
guanxw@samsung10022:~/linux/flutter$ ./bin/flutter doctor
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel [user-branch], 3.42.0-1.0.pre-258, on Ubuntu 20.04.5 LTS 5.15.0-139-generic, locale en_US.UTF-8)
    ! Flutter version 3.42.0-1.0.pre-258 on channel [user-branch] at /home/guanxw/linux/flutter
      Currently on an unknown channel. Run `flutter channel` to switch to an official channel.
      If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/setup.
    ! Warning: `flutter` on your path resolves to /home/guanxw/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /home/guanxw/linux/flutter. Consider adding /home/guanxw/linux/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /home/guanxw/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /home/guanxw/linux/flutter. Consider adding /home/guanxw/linux/flutter/bin to the front of your path.
    ! Upstream repository unknown source is not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to unknown source to dismiss this error.
[!] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
    ! Unable to access driver information using 'eglinfo'.
      It is likely available from your distribution (e.g.: apt install mesa-utils)
[!] Proxy Configuration
    ! NO_PROXY does not contain ::1
[✓] Connected device (2 available)
[✓] Network resources

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority issues at the top of the work liste: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.platform-linuxBuilding on or for Linux specificallyteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions