i.MX6 yocto 4.1.15 screen tearing issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6 yocto 4.1.15 screen tearing issue

3,283 Views
m_c
Senior Contributor I

Yocto

MACHINE_NAME=imx6qsabresd

DISTRO_NAME=fsl-imx-xwayland

IMAGE_NAME=fsl-image-qt5

 

Has try export FB_MULTI_BUFFER=2,3,4 & 8, but tearing issue still happend.

 

QtQuick/build-QtQuick-imx6-Release/QtQuick -platform wayland-egl -plugin evdevtouch:/dev/input/event1

Original Attachment has been moved to: QtQuick.7z.zip

Labels (2)
7 Replies

1,959 Views
eduardasmeile
Contributor I

I am facing similar screen tearing issues with my Yocto Morty build for imx6 Quad and weston 1.11 .

If I add "export FB_MULTI_BUFFER=4" to the beginning of the script /usr/bin/weston-start it solves screen tearing, but there is another related problem. If I do a suspend to RAM either via "systemctl suspend" (I also use systemd) or

"echo mem > /sys/power/state", screen tearing is back after suspend (wakeup is done via GPIO key). When I check the environment variables in wayland terminal via printenv, FB_MULTI_BUFFER=4 is present there, but does not help. So my question is: how do I remove screen tearing in such a way that it does not come back after wakeup from suspend to RAM? Also I am wondering: is it just me or are other people also having this particular problem?

0 Kudos

1,959 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi  jiahongyang

I built your application and saw this effect. This is not tearing issue.  When tearing, you saw broken needle. this something related with human eyes visual effect.  You are rotate whole circle in one second, I tried to change the rotation in 3 or 4 second in main.qml, the double pen is gone.  or If you hit Ctrl_C at any time, the snapshot only show one needle, never 2.  So, I think it is ok.  I check the code to make sure vsync is called. Please follow in any case I miss something to reproduce it.

Regards

1,959 Views
m_c
Senior Contributor I

Customer porting application to 4.9.88 and found application will close after press Ctrl+C. Is there another way to check tearing like screenshot?

0 Kudos

1,959 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi m.c.

The attached QtQuick.7z, it seems not source code to build the application. Could you give the detailed instructions to reproduce the issue?

Can you check your weston script in /etc/init.d/weston?  You need to export FB_MULTI_BUFFER=2 or 3, in this script before weston started. if not, set it and then reboot.   If you set FB_MULTI_BUFFER after this script is run, weston cannot be aware of multi buffer set up.

Regards

1,959 Views
jiahongyang
Contributor II

Hi Bio_TICFSL,

Before compile the QtQuick project with QtCreator, you have to edit the INCLUDEPATH of the QtQuick.pro file. 

INCLUDEPATH += /opt/fsl-imx-fb/4.1.15-2.0.3/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/include/c++/5.3.0/
INCLUDEPATH += /opt/fsl-imx-fb/4.1.15-2.0.3/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/include/c++/5.3.0/arm-poky-linux-gnueabi/
INCLUDEPATH += /opt/fsl-imx-fb/4.1.15-2.0.3/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/include/

And the settings of the imx6 Kits as below:

Device:
General Linux Device

Sysroot: 
/opt/fsl-imx-fb/4.1.15-2.0.3/sysroots/cortexa9hf-neon-poky-linux-gnueabi

Compiler:
C++:
/opt/fsl-imx-fb/4.1.15-2.0.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++

C:
 /opt/fsl-imx-fb/4.1.15-2.0.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc

Debugger:
/opt/fsl-imx-fb/4.1.15-2.0.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb

QMake (Qt 5.6.2):
/opt/fsl-imx-fb/4.1.15-2.0.3/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake

Qt mkspec:
linux-arm-gnueabi-g++

Regards.  Smiley Wink

0 Kudos

1,959 Views
marius_grigoras
NXP Employee
NXP Employee

Guys, I don't know if this will fix the problem, but discussing with a GPU expert from our department, he told me that if playing with QT, we should use QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=3 . Just make a try.

Regards,

Marius

0 Kudos

1,959 Views
jiahongyang
Contributor II

Hi Bio_TICFSL,

Thanks and it works.

Before set "export FB_MULTI_BUFFER=2"  on "/etc/init.d/weston" the tearing issue happened as the picture 1.

螢幕快照 2017-05-19 上午9.58.07.png

Picture 1: The Tearing Needle

After set "export FB_MULTI_BUFFER=2"  on "/etc/init.d/weston" the tearing issue is fixed as the picture 2,

but is there any suggestion for reducing needles shown on one frame ? 

螢幕快照 2017-05-19 上午9.58.29.png

Picture 2: Multi Needles Shown on One Frame

Regards. :smileywink:

0 Kudos