Atomic Modeset fails
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.
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?
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
}
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)
[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?
NVIDIA GPU GeForce GTS 450 (GF106)
NVIDIA GLX Module 390.151
I see. I haven't tried this backend on desktop graphics cards.
Sorry, I can't think of anything right away. Need investigation.
No problem. Thanks for a prompt response!
If you find a bug, please send a pull request :)