-
Notifications
You must be signed in to change notification settings - Fork 421
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
No HDMI output on Raspberry Pi 4 #453
Comments
Hi @mozcelikors |
@mozcelikors can you please try the current master's or warrior's HEAD? |
Hi @agherzan, ERROR: No recipes available for:
Maybe /dev/kmsg output also helps here:
|
@agherzan I have switched everything to master branch and now able to get HDMI output. However, graphics are incredibly slow on Qt/eglfs (0.5 FPS). On Raspberry Pi 3, I used to get 30 FPS with the same set up. I read that it might be due to hardware/software acceleration difference. |
@mozcelikors try changing |
@kraj Thanks for the response. Is vc4-kms-v3d recently enabled? I tried it before and I remember not getting any helpful result. In fact, I got no HDMI signal at all using that. |
It regresssed for one kernel update we did for 4.19 ( at least for rpi3) but then it was fixed. I don't yet have rpi4 so dont know if it is fixed there |
@kraj @agherzan Hi again, I built my image using everything master, and still no improvement.
I checked what I used for the Raspberry Pi 3, it was vc4-kms-v3d as opposed to vc4-fkms-v3d. I guess that is why it used to run with great performance then. What I tried: Raspberry Pi 3 B and Raspberry Pi 3 B + Raspberry Pi 4 Raspberry Pi 4 I guess I will have to wait until vc4-kms-v3d is ported. Anything I can help with, please let me know. |
@mozcelikors are you working on 32 or 64 bit machine? |
@agherzan I use x86_64 host and raspberry pi 4 32 bit (raspberrypi4.conf) |
@mozcelikors That is strange because we basically have the same setup as Raspbian. Can you try to reproduce on raspbian? |
@agherzan I dont have Buster and Qt Raspbian SDK installed at the moment, but I can try to reproduce it in a few days. |
hello @agherzan, I've the same problem as @mozcelikors; with warrior's branch no hdmi output from qt, so I'll try the master's branch and now I have output from qt but the performances are poor. I've changed as suggested by @kraj but the result in the same. In the config.txt of the rpi there is this line: so I think VC4DTBO ?= "vc4-fkms-v3d" is correct. maybe is too soon for GPU acceleration in QT via eglfs_kms? thank you for your kindly attention |
Hi @peel70 , |
Hi @mozcelikors, |
@kraj @mozcelikors raspberrypi/linux#3020 So fkms is the only option for rpi4. We have to figure out why is it so slow. And the first step would be to see how it behaves on raspbian. |
Hi @mozcelikors , @agherzan , @kraj Building on: linux-g++ (x86_64, CPU features: mmx sse sse2) Note: Also available for Linux: linux-clang linux-icc afterd that I've copied on RPI4 with the latest SO and updates. I've fall in these problems:
I've addedd pi user to the render group but nothing change I've tried gstreamer (without X11) with gst-launch with kmssink and the CPU is under the 8% in a full hd video but the graphics performances are poor. So I don't know where the problem is. regards to all |
@peel70 @agherzan @kraj If you did this on Raspbian Buster (which I assume you did) and you say that it's only working with X11; then I think our presumptions are correct, and this is indeed an issue with Raspberry Pi 4 at the moment. Could you please create a question to Raspberry Pi Forums regarding this question and link it here? |
Hello @mozcelikors , @agherzan , @kraj I've just rebuild the cross compile with Raspian Burster Lite (no X11) and follow an issue on the Qt bug reports https://bugreports.qt.io/browse/QTBUG-76889?filter=-3 It's normal that with the linux-rasp-pi3-vc4-g+'s spec is not enabled eglfs_bcrm because in this case (like RPI3-64bit) is using kms (Using EGL device integration "eglfs_kms" say activating the filter rules in the QLoggin Category) Now with the cross compile I've QT5.12.4 accelerated, the user must be in the "render" group for activating the hardware acceleration as sayed in the Qt bug report, and it work. I think the problem is the same in poky distribution, the render group is not created in the build, but listen to the privileges of /etc/dri folders root@raspberrypi4:/dev/dri# ls -al I'm not practiced very well in YOCTO, I've tried to create group manually but the graphics performance are the same. The other problem of the black screen is because the QtQuick in this case works different and is necessary to use the QScreen to create the QQuickView and attach the QML. See https://doc.qt.io/qt-5/embedded-linux.html to see how use QScreen. So how to fix this with yocto I'm not able but I think the solution is above. Best regards |
@peel70 I tried to reproduce your solution
In the application side,
Then when I try with vc4-fkms-v3d on Yocto, I get no performance improvement like you. @agherzan @kraj I did not see in meta-raspberrypi sources any reference to "linux-rasp-pi3-vc4-g++". Qt compilation is done with -xplatform linux-oe-g++ (qtbase_git.bb). Maybe this could be the problem. In order to have hardware acceleration we might have to compile qt with -device linux-rasp-pi3-vc4-g++ and set the other configure flags accordingly for "-device" compilation and not "-xplatform" compilation. The Raspbian compilation that @peel70 tried is I assume something like that for the Raspbian:
Maybe we could tailor this in qtbase_git.bbappend in meta-raspberrypi layer. |
Hi @mozcelikors , EGLFS EGLDevice ...................... yes that is for the eglfs_kms because instead of EGLFS on Broadcom it use EGLFS on Mesa (if I understand) I can confirm that all reported in the https://doc.qt.io/qt-5/embedded-linux.html works. I was able to configure the json and clone HDMI1 to HDMI2 or with QScreen play two different QML at the same time with CPU under the 7% (full HD not 4K), maybe a difference on that line QQuickView *view = new QQuickView; the problem, for me, is that the H265 video si not accelerated (and is what I need), in gstreamer 1.14 and 1.17 I think there is something missing somewhere (maybe OpenMax need manual compilation with the new VC library?) |
@peel70 You were able to do this on Raspbian, is that correct?
Also you mean that gstreamer acceleration does not work in Raspbian, right? I am currently interested in pure Yocto solution since my distro developments depend on Qt-EGLFS. I am hoping to find a solution in Yocto, and I thought I'd give this a shot. I will let you know if it helps. |
Hi @mozcelikors, |
I tried to compare it against rpi3 with kmscube:
It takes the wrong renderer on rpi4. |
I think the core of the issue (or at least part of it) is that mesa doesn't have the right driver enabled (v3d). |
Thank you. I got it. |
I'm going to try kmscube |
@agherzan probably we should disable vc4 graphics for 32bit rpi4 for now. |
@kraj It's really annoying because it works on raspbian. With vc4 fkms. I just miss something which makes mesa select software renderer. |
in yocto: raspberrypi4:/home/myuser# export DISPLAY=:0 |
@gitgonewithwind with rpi4 and kms you don't need to export DISPLAY it's not working if you export DISPLAY |
my start up script: export DISPLAY=:0 xset s off kernel boot up output: .... starting mountd: done
usage: xset [-display host:dpy] option ... raspberrypi4:/home/myuser# kmscube |
@gitgonewithwind I've build Yocto without X11 like Burster Ligth to have eglfs_kms performance |
Let's please focus on the issue at hand. Our purpose is to improve the performance of OpenGL/ES based applications on meta-raspberrypi. @agherzan seems to be close to a solution, that is mesa selecting software renderer on Yocto as opposed to Raspbian, we should stick to it. I think unrelated questions should be asked on different issues to avoid flooding. |
I think I need X11 to run chromium. is it right? |
/usr/bin/xli -onroot -center -zoom 100 /home/root/logo.png |
Posted an update in #461 as I reckon that's the root of these issues. TLDR: Not fixed yet. |
Hi @agherzan
Maybe a problem in the linux raspberry firmware? |
@peel70 https://github.com/agherzan/meta-raspberrypi/pull/476/files should make this work. |
@agherzan I will try in this days and give you a feedback. |
@agherzan pberrypi4:/home/myuser# kmscube -D /dev/dri/card1 EGL information: OpenGL ES 2.x information: failed to set mode: Permission denied I try again, my card1 is same as your card0, card0 is same as your card1. but I have a utput: root is same.bitbake core-image-full-cmdline and bitbake core-image-x11 for kmscube test results are same,chromium no display, I use my own local.conf for core-image-full-cmdline in #467, |
@gitgonewithwind what user are you running that command as? |
@agherzan |
I have not tried chromium but I can say that kmscube and qt5 demos work as expected. |
so you mean chromium should work well? I am compiling the chromium-x11... in bitbake core-image-x11 and default local.conf ... |
chromium is on top of X which I haven't tried. I only worked over eglfs. |
can you try later? I have spent more than 3 weeks, I worry about my manager is not happy. thanks |
Sadly I can't because I don't have the time for it. |
No problem. I mean It should work well up to now? I am going to try. |
@gitgonewithwind I don't see why it wouldn't work right now. Give it a spin but please start with a minimum configuration leaving as much as possible default. For example Also, please keep the discussions in the relevant issue. |
@agherzan |
This should be fixed now. See: #476 |
still experiencing this `[ 59.096] [ 59.102] (==) ModulePath set to "/usr/lib/xorg/modules" [ 59.106] (EE) systemd-logind: failed to get session: PID 521 does not belong to any known session |
@sirus20x6 see the comments above. |
vlc: unknown option or missing mandatory argument `--fbdev=/dev/fb0 |
Hi, I recently got a Raspberry Pi 4, 4GB version. Previously I had Raspberry Pi 3B+, with perfectly running everything I require, using meta-raspberrypi's sumo branch. I have a Qt app which runs using eglfs platform plugin running on Pi 3B+, but not working on Pi 4. I wanted to port my work there to the meta-raspberrypi's raspberrypi4 machine on warrior branch. Here's what I did:
bblayers.conf
local.conf
rpi-config_%.bbappend
(Whether I have these changes or not, does not affect the result)
myimage.bb
When I try to either run my Qt app on OpenGL with eglfs, or when I simply run Xorg (XFCE), I get no display output on both HDMI's. Only hdmi output I get is the output from psplash splash screen, which looks like its bars are not working. I have tried 2 different HDMI displays, but no result.
Just for example, I get following on app output:
I use warrior branch for all standard layers and meta-raspberrypi layer. Does meta-raspberrypi has HDMI support? Is there something I am missing here? Could we please get a little help for the HDMI output?
Thank you very much in advance
The text was updated successfully, but these errors were encountered: