we're using Yocto 2.5 (sumo) on an iMX6quad with the fslc-framebuffer distribution. We're running a QT5 app with the eglfs platform.
When we plug in an HDMI cable and start the QT app everythin is running smooth and fine with FB_MULTI_BUFFER=4. But when the HDMI-Monitor ist unpluggen and plugged back in the grahics start to stutter and there's tearing until the QT app is restarted.
We have so far tried the following without any success:
- Use a more recent Yocto (Warrior)
- Update the vivante driver
- Using different monitors
- Passing fixed edid-data via kernel parameter
- Use different kernel video initializations
Does anyone have a hint what could be the reason for this strange behaviour?
Do not recommend to unplugged the HDMI, because with FB_MULTIBUFFER makes always a round to check of it is connected, if you disconnected will received an error.
Unfortunately we have a few devices in the field with an hdmi connection that is a bit flaky.
The problem seems to be that the hdmi driver (mxc_hdmi.c) resets the framebuffers yres_virtual and xres_virtual to the actual size of the display on reconnect. The yres_virtual setting is used for the multibuffer.
We patched the hdmi driver so it keeps the previously set yres_virtual which solved the problem for us.