Raspbian Buster + VC4 + Qt5 = way to go!
Posted: Wed Aug 28, 2019 7:59 am
Last year, I wrote a lenghty post describing the bad situation of the software stack on Raspbian Stretch.
Now the new Raspberry Pi 4 joined the family and switching to Buster was mandatory to have a working QLC+ image.
Well, the software stack situation has changed, and I have to say I've been pleased by what I've seen. At least for the most part of it...
Short story: Buster is better than Stretch
Long story: I've seen a number of improvements in the Pi 4 + Buster combination. I'll try to describe them here.
One thing I really haven't tested yet is video playback, but I will in the next days. If you have feedbacks on this topic, please report here, thanks.
Unfortunately, not eveything is an improvement on Buster. Up to Stretch, I was pretty happy to have QLC+ up and running in under 15 seconds.
On a Pi 4 with Buster the boot time has gone up to almost 30 seconds. And even worse, on a Pi 3 the boot time is lower (around 22 seconds)
I haven't got a technical explanation for this (yet) but I suspect this is because of the current graphics stack (open source VC4 + Qt)
systemd analysis is pretty similar (if not better) than Stretch so the bottleneck is really something around Qt/QLC+.
I will investigate this further too in the next days. Hopefully this will be improved over time.
So, have you tried the new image yet? What do you think so far?
[1] When I first ran QLC+ on eglfs, the DPI scaling was messed up. So I had to add some exports to the /etc/init.d/qlcplus script.
With those you can basically set the size in millimiters of your TV. Therefore, if you see a weird UI, adjust the output size with QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT. (reference here)
Now the new Raspberry Pi 4 joined the family and switching to Buster was mandatory to have a working QLC+ image.
Well, the software stack situation has changed, and I have to say I've been pleased by what I've seen. At least for the most part of it...
Short story: Buster is better than Stretch
Long story: I've seen a number of improvements in the Pi 4 + Buster combination. I'll try to describe them here.
- CPU and heating: Pi 3 was kinda bad and because of heating it was hanging a lot when building QLC+. So I had to do a slow build, taking about 2 hours every time. Pi 4, instead, is magnificent! I can build QLC+ in 30 minutes using 100% of the CPU, without a single hang. (even without a fan or heatsink!) This means also that if you stress QLC+ the Pi 4 will behave nicely.
- GPU: Buster officially switched to the open source VC4 driver. I think they consider it mature enough to handle the most common graphics operations. I haven't done extensive tests, but in terms of plain OpenGL rendering, it seems to do the job
- Qt: this is the improvement I like the most! Qt on Stretch was badly built. Qt on Buster is awesome!
If you run Buster lite and install QLC+ you just need to launch it on the eglfs platform. [see 1]
If you run Buster with Xorg, QLC+ will just run flawlessly in the window manager, with the same Qt version (obviously using the XCB platform abstraction interface)
This means I don't need to custom build Qt anymore. Means less work for me, less confusion for you and more out of the box joy.
One thing I really haven't tested yet is video playback, but I will in the next days. If you have feedbacks on this topic, please report here, thanks.
Unfortunately, not eveything is an improvement on Buster. Up to Stretch, I was pretty happy to have QLC+ up and running in under 15 seconds.
On a Pi 4 with Buster the boot time has gone up to almost 30 seconds. And even worse, on a Pi 3 the boot time is lower (around 22 seconds)
I haven't got a technical explanation for this (yet) but I suspect this is because of the current graphics stack (open source VC4 + Qt)
systemd analysis is pretty similar (if not better) than Stretch so the bottleneck is really something around Qt/QLC+.
I will investigate this further too in the next days. Hopefully this will be improved over time.
So, have you tried the new image yet? What do you think so far?
[1] When I first ran QLC+ on eglfs, the DPI scaling was messed up. So I had to add some exports to the /etc/init.d/qlcplus script.
With those you can basically set the size in millimiters of your TV. Therefore, if you see a weird UI, adjust the output size with QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT. (reference here)