flutter-embedded-linux icon indicating copy to clipboard operation
flutter-embedded-linux copied to clipboard

Atomic Modeset fails

Open hundeboll opened this issue 2 years ago • 9 comments

Hi,

I'm trying to run flutter-embedded-linux on a buildroot based linux using the eglstream backend for an nvidia card. I've enabled modesetting on the command-line, but it fails like this:

# LD_LIBRARY_PATH=/root/drm/lib/ FLUTTER_DRM_DEVICE=/dev/dri/card0 ./flutter-drm-eglstream-backend -b drm/
[ERROR][native_window_drm_eglstream.cc(132)] Failed to commit an atomic property change request
[ERROR][elinux_window_drm.h(131)] Failed to create the native window (/dev/dri/card0).
Segmentation fault (core dumped)

The dmesg.log (with drm.debug=0xff on the command line) does give a hint about no framebuffer being set.

I am by no means an DRM expert, so any hints would be greatly appreciated.

hundeboll avatar Aug 30 '23 13:08 hundeboll

I'm trying to run flutter-embedded-linux on a buildroot based linux using the eglstream backend for an nvidia card.

Specifically, what device are you using? Also, did you run that command with sudo?

HidenoriMatsubayashi avatar Aug 30 '23 13:08 HidenoriMatsubayashi

Can you modify the source code as below and see what happens?

native_window_drm_eglstream.cc:

  drmModeAtomicFree(atomic);
  if (result != 0) {
    ELINUX_LOG(ERROR) << "Failed to commit an atomic property change request: " << result;
    // return false;  <= comment-out
  }

HidenoriMatsubayashi avatar Aug 30 '23 13:08 HidenoriMatsubayashi

Running as root, yes. With the suggested changes:

# LD_LIBRARY_PATH=/root/drm/lib/ FLUTTER_DRM_DEVICE=/dev/dri/card0 ./flutter-drm-eglstream-backend -b drm/
[ERROR][native_window_drm_eglstream.cc(132)] Failed to commit an atomic property change request: -22
[ERROR][environment_egl_stream.cc(16)] Failed to set extension function pointers
[ERROR][context_egl.cc(71)] Failed to choose EGL surface config: eglGetError: EGL_BAD_DISPLAY
[ERROR][context_egl_stream.cc(20)] Failed to set extension function pointers
Segmentation fault (core dumped)

hundeboll avatar Aug 30 '23 13:08 hundeboll

[ERROR][native_window_drm_eglstream.cc(132)] Failed to commit an atomic property change request: -22

-22 means:

-EINVAL if DRM_CLIENT_CAP_ATOMIC is not enabled, the value of flags is illegal, or atomic property IDs in the request are not recognized.

BTW, what device are you using?

HidenoriMatsubayashi avatar Aug 30 '23 13:08 HidenoriMatsubayashi

NVIDIA GPU GeForce GTS 450 (GF106) NVIDIA GLX Module 390.151

hundeboll avatar Aug 30 '23 14:08 hundeboll

I see. I haven't tried this backend on desktop graphics cards.

Sorry, I can't think of anything right away. Need investigation.

HidenoriMatsubayashi avatar Aug 30 '23 14:08 HidenoriMatsubayashi

No problem. Thanks for a prompt response!

hundeboll avatar Aug 30 '23 14:08 hundeboll

If you find a bug, please send a pull request :)

HidenoriMatsubayashi avatar Aug 30 '23 14:08 HidenoriMatsubayashi