Skip to content

[Impeller] Fail to render pixel buffer texture on Linux #181483

@xiaowei-guan

Description

@xiaowei-guan

Steps to reproduce

1.Down load pixel buffer sample code(https://github.com/xiaowei-guan/pixel_buffer_test)
2.flutter run --enable-impeller on ubuntu 20.04

Expected results

Can render a image successful by texture.

Actual results

No image to show

Code sample

Code sample

https://github.com/xiaowei-guan/pixel_buffer_test.git

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

Logs
guanxw@samsung10022:~/linux/pixel_buffer_test/example$ ~/linux/flutter/bin/flutter run --enable-impeller
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Launching lib/main.dart on Linux in debug mode...
Building Linux application...
✓ Built build/linux/x64/debug/bundle/pixel_buffer_test_example
[IMPORTANT:flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc(99)] Using the Impeller rendering backend (OpenGL).

** (com.example.pixel_buffer_test:2255040): CRITICAL **: 01:36:48.868: Failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFound: Requested setting not found

** (com.example.pixel_buffer_test:2255040): CRITICAL **: 01:36:48.869: Failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFound: Requested setting not found
textureId ::::::::::::::::::::::::::::::::::-1
Syncing files to device Linux...                                    38ms

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:36925/16O6sO2S0K0=/
The Flutter DevTools debugger and profiler on Linux is available at: http://127.0.0.1:36925/16O6sO2S0K0=/devtools/?uri=ws://127.0.0.1:36925/16O6sO2S0K0=/ws
register_pixel_buffer method called
Image path: assets/texture.jpg
register_pixel_buffer started
Attempting to load image: assets/texture.jpg
Executable directory: /home/guanxw/linux/pixel_buffer_test/example/build/linux/x64/debug/bundle
Constructed asset path: /home/guanxw/linux/pixel_buffer_test/example/build/linux/x64/debug/bundle/data/flutter_assets/assets/texture.jpg
Full path: /home/guanxw/linux/pixel_buffer_test/example/build/linux/x64/debug/bundle/data/flutter_assets/assets/texture.jpg
create_texture_from_image returned
Successfully loaded image, registering texture
Successfully registered texture
About to get texture ID
Got texture ID: 64198912
About to store texture
Stored texture
Texture ID: 64198912
About to create result
Created result with texture ID: 64198912
About to create response
Created response
register_pixel_buffer returned
textureId ::::::::::::::::::::::::::::::::::64198912
[ERROR:flutter/impeller/renderer/backend/gles/texture_gles.cc(220)] Break on 'ImpellerValidationBreak' to inspect point of failure: Invalid texture descriptor.
[ERROR:flutter/shell/platform/embedder/embedder_external_texture_gl.cc(157)] Could not create external texture
[ERROR:flutter/impeller/renderer/backend/gles/texture_gles.cc(220)] Break on 'ImpellerValidationBreak' to inspect point of failure: Invalid texture descriptor.
[ERROR:flutter/shell/platform/embedder/embedder_external_texture_gl.cc(157)] Could not create external texture
[ERROR:flutter/impeller/renderer/backend/gles/texture_gles.cc(220)] Break on 'ImpellerValidationBreak' to inspect point of failure: Invalid texture descriptor.
[ERROR:flutter/shell/platform/embedder/embedder_external_texture_gl.cc(157)] Could not create external texture
[ERROR:flutter/impeller/renderer/backend/gles/texture_gles.cc(220)] Break on 'ImpellerValidationBreak' to inspect point of failure: Invalid texture descriptor.
[ERROR:flutter/shell/platform/embedder/embedder_external_texture_gl.cc(157)] Could not create external texture

Application finished.

Flutter Doctor output

Doctor output
guanxw@samsung10022:~/linux/pixel_buffer_test/example$ ~/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.41.0-1.0.pre-206, on Ubuntu 20.04.5 LTS 5.15.0-139-generic, locale en_US.UTF-8)
    ! Flutter version 3.41.0-1.0.pre-206 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 https://github.com/xiaowei-guan/flutter.git is not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to https://github.com/xiaowei-guan/flutter.git 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

! Doctor found issues in 3 categories.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.found in release: 3.38Found to occur in 3.38found in release: 3.41Found to occur in 3.41has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-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