rPi Zero 2 W Compatibility Issue

I’ve just started running IB on an rPi Zero 2 W, in addition to a 4B. Running package-hd-player I am unable to load my 4k (3840x2160) .png images on the Zero running output to a 1920x1080 60hz display, with message Device doesn't support required features: image4k.

I am able to run the same setup on my 4B running to a 1920x1080 @60Hz no problem, with the images scaling down properly. Is this a bug or am I doing something wrong?

TL;DR: Use images with a maximum resolution of 1920x1080 for now on the Pi Zero 2 and it will work.

The full explanation requires a bit of background information:

info-beamer uses OpenGL, for rendering all (non-video) content on the screen. To show images it loads those into a texture and renders this texture on the screen. The OpenGL implementation of all Pis up to the Pi3 has a maximum texture size of 2048x2048 pixels. Similarly those Pi models realistically[1] only supported up to FullHD resolution anyway it didn’t really make sense to support higher resolution images as they, in most use cases, would be scaled down before rendering anyway.

This has changed a bit with the Pi4. It can obviously support 4K HDMI output and its OpenGL implementation raises the texture size limit to 8192x8192.

The additional HEVC video codec similarly added new capabilities to the type of content the Pi can now handle. This results in a problem for the info-beamer service: Suddenly not all content is compatible with every type of device. For example if you create a setup with a playlist containing one HEVC video, an older Pi3 wouldn’t be able to play that as it cannot decode fast enough. So info-beamer added feature information, derived from the hardware model and tries to prevent you from assigning content to devices that cannot handle them.

The older Pi models with their 2048x2048 pixel limit on images at the moment only support the image2k feature, while the Pi4 supports image4k. So you cannot assign a 4K image to a Pi3 (or Pi Zero 2 in your case) as it wouldn’t be able to decode it into a single texture.

That might be the end of the explanation, but a change in the core info-beamer process running on the device now actually supports on-device downscaling of image content. So technically a Pi3 can now load a 4K image, automatically scale it down so it fits within the 2048x2048 texture size limit and then render it. So in theory the automatically derived feature capabilities for any older Pi model could also include the image4k feature.

The issue with that is now that still not all devices run the very latest OS release for various reasons and adding the image4k feature for older Pi models isn’t activated yet. I’ll see if I can reevaluate this and enable it soon.

Hope that explains the though process and explains the reason for the message you got.

[1] There was the option to support some higher resolution modes, but they where then restricted (I think) due to another Pi API, dispmanx, which essentially resulted in upscaling unless you used the very slow framebuffer rendering method.

Thanks as always, Florian,

I’m glad to understand the background behind the issue. It’s not really a problem, as I realize that I should probably limit my images to 1920x1080 anyway; I can’t see many applications for me for 4K, and those would be so specialized that compatibility should not be an issue.

BTW, I am loving the Zero 2 W (except it does get HOT :fire:). I’ve been finally able to get three at a non-inflated price ($45 USD for board, case, PS, micro-sd card, USB OTG adapter and mini-hdmi to HDMI adapter). As much as I love the pi 4b the micro-hdmi connector they use is not suitable for production, IMO. I have three otherwise perfect boards that have no reliable video at all, and a fourth new one that works, but I need to be carefull about the hdmi connection, since an motion of the cable or box disrupts the video. Not what I want at a client site.

About that: In the device configuration, did you enable performance mode or leave that at the power save default? Power save is slower, but the device shouldn’t get too hot.

I’ve tried both. My passively cooled w/ small heat sink in a farly closed case Zero 2 in performace mode quickly reaches 60c for me and doesn’t exceed it. That’s sufficiently under the 80c at which it starts to throttle but warmer than I like. My 4b in an aluminum case with small heat sink and fan at full speed stays around 35c and doesn’t exceed 40c, numbers that I’m more comfortable with in a production environment. If I’m dealing with a few boxes a relatively poor MTBF is no big deal, but if I need to support a few humdred, geographically dispersed installations it’s a bigger deal. I think there are better cases for the Zero tha do a good job of heat dissipation. Meanwhile my fourth, and barely a month old pi 4b is losing one of it’s HDMI ports altogether, while the other is just flakey. I think those micro HDMI ports are its Achilles heel. If anyone has any ideas how to get those ports ready for production use I’d be grateful. It’s otherwise such a strong conteder.