-
-
Notifications
You must be signed in to change notification settings - Fork 172
With atomic modesetting, flutter-pi can not run on db410c #86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
read some article on internet, the atomic mode setting is modern and batter way to for graphics. It's important for cursor support. I don't expect the old way. Any comments on how to check the system why the Invalid argument happened will be appreciated. |
Yeah, atomic modesetting is the modern approach, although it's not too bleeding edge as well (it was added in 2015) I think it's possible to implement a fallback to legacy modesetting, if atomic modesetting is not supported. And then just deactivate the omxplayer plugin if legacy modesetting is being used.
The Which kernel version do you use btw? |
Actually, atomic modesetting should be possible on your board. Freedreno (The open-source graphics driver for Qualcomm GPUs, which is also contained in the official linux source tree) supports the Adreno 306, which is the GPU of your db410c; and freedreno supports atomic modesetting since early 2015. Do you use a different driver than freedreno? Or maybe your kernel is outdated. |
Hi ardera,
It's strange, why the system call in modetest can be successful, while flutter-pi failed. Anything I can tweak to disable something to try? |
That's good information! Can you try running If that works fine can you:
It's possible that Also, be sure to remove the drm.debug parameter once you're finished, it will hog up disk space really fast. EDIT: |
Thanks ardera! |
please ignore the previous log, since directly capture from dmesg may loss some content due to the buffer size in memory. Use these: |
Yeah thats strange. vanilla kmscube uses a kinda cutting-edge synchronization mechanism (which isn't even supported on Raspberry Pi), it's possible that's causing some issues.
Thanks! Unfortunately, there's not much info about the issue in the logs. It just returns EINVAL, without any explanation why. The weird thing is, it's not even checking if the atomic commit is valid. (which would print a I modified The repo is here. Instructions to build & run it: $ sudo apt update && sudo apt install meson ninja
$ git clone https://github.com/ardera/kmscube_using_pageflips kmscube
$ cd kmscube
$ mkdir build && cd build
$ meson ../
$ ninja
$ ./kmscube |
Thank you ardera. I have tried your code, both modes (with/without -A) work well. |
Hi ardera, BR, |
Yep my bad, the changes are now online. |
Hi ardera, with -A option, it can print following logs committing 0xaaaac2314110 BR, |
I just created a new branch called If this doesn't work, I'm out of ideas. If it does work, I can slowly increase the DRM features used by flutter-pi and we can see where it breaks again. Normally, I'd triage this myself but I don't have a db410c unfortunately |
Hi ardera, BR, |
Okay, just reenabled modeset on that branch. Can you test again? |
37f0b9e also works well |
Okay, just pushed 4 new commits. Can you try them out in order and see where it breaks? |
Hi ardera, BR, |
Have just tested. Your latest fix/db410c-compatibility branch with the 4 new changes also works well. |
That's interesting. I was 100% sure that couldn't be the reason, since then it would've printed It should also print two messages like |
Hi ardera, atomic_request 0xffff986c6aa0: plane 33: ["SRC_W"] = 125829120 The only difference is currently I'm testing a simple flutter app, I lost the complicated one when I reflash the device for addtional cmdline options. I will do more test to verify. currently I can only see BR, |
I need more time to find back my another flutter app which is more complicated to test. but if I checkout the commit before 1a49227, the issue can still be reproduced by this simple flutter app. |
Hi ardear, BR, |
Okay that makes sense. On Raspberry Pi, the zpos goes from 0 to 127, on your db, it goes from 1 to 255. flutter-pi implicitly requires the zpos to start at 0. It sets the zpos of the lowest layer to 0, for example. I'll fix that |
Thank you ardera! |
no problem 😉 |
I compiled a arm 64 bit version for db410c(qualcomm APQ8016), while with following change
commit id: 629c016
atomic modesetting, omxplayer rotation - implement atomic modesetting - make omxplayer satisfy device orientation
My board can no longer run the flutter-pi. I traced to kernel, looks my board does not support atomic operation.
it reports
[modesetting] Could not commit atomic request. drmModeAtomicCommit: Invalid argument
Any chance to support the old way of running flutter pi?
Thanks
The text was updated successfully, but these errors were encountered: