Odroid C2에서 Qt5 프로그램 드로잉 문제

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jun 18, 2019 3:15 pm

Qt5 어플리케이션의 Rectangle 영역을 visible 처리가 바뀔 때 랜덤하게 영역이 나뉘어서 부분적으로 그려지는 문제가 발생합니다.

영문 질문글에 올렸는데 부족한 영어 실력으로 표현이 안되서 한글 게시판에 다시 올립니다...

http://minsdatanetwork.iptime.org:8085/ ... id=0xGEfn5

증상의 영상과 사진은 위 링크에 있습니다.

수직동기화나 프레임 제한 등 가능한건 모두 해봤으나 해결이 안되더 군요..

Qt5 어플리케이션도 OpenGL로 작동되는 상황 이구요.

혹시 해결방법을 아시는 분은 조언 부탁 드립니다.

Odroid C2이며 Ubuntu 18.04 Mate 입니다.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jun 18, 2019 4:02 pm

이제야 어떤 문제인지 좀 이해가 됩니다만, 죄송스럽게도 Qt 프로그래밍 경험이 전혀 없어서 도움을 드리가기 매우 어렵습니다.
CPU Governor나 windows composite 옵션은 모두 변경해 보셨겠지요?
OpenGL 가속기를 사용하지 않는 경우에는 해당 문제가 발생하는지도 궁금합니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jun 18, 2019 4:35 pm

odroid wrote:
Tue Jun 18, 2019 4:02 pm
이제야 어떤 문제인지 좀 이해가 됩니다만, 죄송스럽게도 Qt 프로그래밍 경험이 전혀 없어서 도움을 드리가기 매우 어렵습니다.
CPU Governor나 windows composite 옵션은 모두 변경해 보셨겠지요?
OpenGL 가속기를 사용하지 않는 경우에는 해당 문제가 발생하는지도 궁금합니다.
안녕하세요.

일단 Qt의 설정을 통해 자체 OpenGL을 사용하지 않고 자체 렌더링(Qt Quick 2D Renderer)을 사용해도 같은 문제가 발생합니다.

혹시 Mali 그래픽 칩셋의 드라이버 버전이나 수직동기화를 강제로 설정하는 등의 방법은 없을까요?

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jun 18, 2019 5:21 pm

먼저 command line에서 FORCE_VSYNC=1 glmark2-es2로 테스트를 해보시길 바랍니다.
60FPS로 Mali GPU rendering이 고정되는 결과를 보실 수 있습니다.

동일하게 glmark2-es2대신에 만든 어플리케이션 파일명으로 교체하여 테스트 해보세요.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jun 18, 2019 8:41 pm

odroid wrote:
Tue Jun 18, 2019 5:21 pm
먼저 command line에서 FORCE_VSYNC=1 glmark2-es2로 테스트를 해보시길 바랍니다.
60FPS로 Mali GPU rendering이 고정되는 결과를 보실 수 있습니다.

동일하게 glmark2-es2대신에 만든 어플리케이션 파일명으로 교체하여 테스트 해보세요.
glmark2-es2 에서 드로잉되는 오브젝트 들은 움직임이 느려서 잘 확인이 되지는 않네요...

말씀하신 플래그를 적용해도 Qt에서 제공하는 OpenGL 예제에서 큐브를 마우스로 돌리는 예제가 있는데 그런걸 빨리 돌려 조면 수직동기가 꺼진 것 처럼 수평으로 잘려서 그려집니다..

저희가 개발중인 프로그램도 동일하구요..

어떤게 문제인지는 잘 모르겠지만 정 안된다면 CEGUI등 다른 쪽으로 방향을 돌려야 할꺼 같네요..

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Wed Jun 19, 2019 8:33 am

도움이 못되어 많이 아쉽네요.

x11 또는 compositor 드라이버 문제라면 x11 없이 fbdev위에서 Qt를 직접 돌려보는 것은 어떨까요? 데스크탑 환경이 꼭 필요한가요?
Qt base를 mali-fbdev용으로 다시 빌드하는 과정도 쉽지는 않겠습니다만, 티어링에 민감한 게임 에물레이터 개발자들은 대부분 무거운 x11을 사용하지 않고 fbdev나 gbm에서 직접 렌더링하더군요,

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Wed Jun 19, 2019 10:40 am

odroid wrote:
Wed Jun 19, 2019 8:33 am
도움이 못되어 많이 아쉽네요.

x11 또는 compositor 드라이버 문제라면 x11 없이 fbdev위에서 Qt를 직접 돌려보는 것은 어떨까요? 데스크탑 환경이 꼭 필요한가요?
Qt base를 mali-fbdev용으로 다시 빌드하는 과정도 쉽지는 않겠습니다만, 티어링에 민감한 게임 에물레이터 개발자들은 대부분 무거운 x11을 사용하지 않고 fbdev나 gbm에서 직접 렌더링하더군요,
그 부분은 좀더 확인 해보겠습니다 ^^

지금 그냥 순수 opengl로 삼각형이 깜빡이는 걸 만들어 봤는데 이거도 부분적으로 나뉘어서 그려지는 현상이 존재하네요.

C1+(16.04.3), C2(18.04) 모두 발생하네요..

아 그리고 위의 예제 프로그램 실행시

MESA-LOADER: failed to retrieve device information
libGL error: unlable to load driver: mali_drm_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: mali_drm

이 라는 메세지가 나오고 실행은 되는데 무슨 문제일까요?

특별히 설치한 모듈은 없고 libglfw3-dev만 섫치한 상태 입니다.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Wed Jun 19, 2019 11:32 am

Mali GPU 드라이버가 깨진것 같습니다.

C2에서 glmark2-es2 동작시 아래와 같이 나와야 합니다.

Code: Select all

odroid@odroid:~$ glmark2-es2
=======================================================
    glmark2 2014.03+git20150611.fa71af2d
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-450 MP
    GL_VERSION:    OpenGL ES 2.0
=======================================================
그렇지 않다면 software emulation으로 MESA GPU 드라이버가 동작하고 있는것입니다.
그런 경우 강제로 MALI GPU 드라이버를 다시 설치하면 해결됩니다.
sudo apt install --reinstall mali-x11

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Wed Jun 19, 2019 1:46 pm

만일 Canonical의 Qt 라이브러리 업데이트때문에 OpenGL-ES가 동작하지 않는다면 아래와 같은 방법으로 복구 가능합니다.
Canonical의 Qt라이브러리는 OpenGL-ES를 지원하지 않기때문에, 꼭 저희가 빌드한 라이브러리를 설치해야 합니다.
저희 OS 이미지에는 저희가 빌드한 Qt 라이브러리가 포함되어 있지만, Canonical의 update package가 덮어쓰는 경우가 아주 가끔 있기 때문입니다.

Code: Select all

wget http://deb.odroid.in/c2/pool/main/q/qtbase-opensource-src/libqt5gui5_5.9.5%2bdfsg-0ubuntu2_arm64.deb
sudo dpkg -i libqt5gui5_5.9.5+dfsg-0ubuntu2_arm64.deb 
sudo apt-mark hold libqt5gui5

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Wed Jun 19, 2019 6:39 pm

odroid wrote:
Wed Jun 19, 2019 1:46 pm
만일 Canonical의 Qt 라이브러리 업데이트때문에 OpenGL-ES가 동작하지 않는다면 아래와 같은 방법으로 복구 가능합니다.
Canonical의 Qt라이브러리는 OpenGL-ES를 지원하지 않기때문에, 꼭 저희가 빌드한 라이브러리를 설치해야 합니다.
저희 OS 이미지에는 저희가 빌드한 Qt 라이브러리가 포함되어 있지만, Canonical의 update package가 덮어쓰는 경우가 아주 가끔 있기 때문입니다.

Code: Select all

wget http://deb.odroid.in/c2/pool/main/q/qtbase-opensource-src/libqt5gui5_5.9.5%2bdfsg-0ubuntu2_arm64.deb
sudo dpkg -i libqt5gui5_5.9.5+dfsg-0ubuntu2_arm64.deb 
sudo apt-mark hold libqt5gui5
저도 이게 제일 확실 해 보였는데 변함이 없네요..

혹시 QML이 문제인가 해서 기본 Qt5 예제의 OpenGL 예제에 Cube를 실행해봤는데 같은 증상이네요.. ㅜㅜ

일단 여러가지 시도를 해봐야할듯합니다..

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Wed Jun 19, 2019 8:31 pm

이번주는 외부에서 근무하느라 테스트가 곤란하니, 차주에 시간을 내서 Qt Cube 예제를 실행해 보면서 어떤 현상인지 파악부터 해보겠습니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Thu Jun 20, 2019 5:36 pm

odroid wrote:
Wed Jun 19, 2019 8:31 pm
이번주는 외부에서 근무하느라 테스트가 곤란하니, 차주에 시간을 내서 Qt Cube 예제를 실행해 보면서 어떤 현상인지 파악부터 해보겠습니다.
넵 감사합니다.

저도 계속 확인해보겠습니다.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Mon Jun 24, 2019 9:42 am

Full-screen으로 Cube를 돌려보니 중간중간 Tearing 현상이 보이네요. ㅠㅠ
FORCE_VSYNC와는 상관없이 드로잉이 겹쳐지는 문제가 발생합니다.
x11용 Mali GPU 드라이버에 VSYNC 문제가 있는것 같습니다.

원인 파악에 도움이 될지 모르니 XU4 보드에서는 어떤지 오늘 퇴근전에 확인해 보도록 하겠습니다.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Mon Jun 24, 2019 5:40 pm

구글 검색을 통해 우리 포럼글을 하나 찾았습니다.
viewtopic.php?f=136&t=33944
좀 더 세심하게 읽어보고 공부를 해봐야 겠지만, 대략 파악하기에는 x11위에서 Qt 어플은 vsync를 제대로 구현하기 어려우니 framebuffer(fbdev)를 이용해야 한다는 것 같습니다.

x11 용 Qt5 라이브러리를 빌드하듯이 configure 옵션을 변경하여 fbdev용으로 빌드 해봐야 겠습니다.
이렇게 하면 FBIO_WAITFORVSYNC 기능이 동작할 것 같은데, 공부하고 빌드할 시간이 없네요. ㅠㅠ
viewtopic.php?f=95&t=31070

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jun 25, 2019 10:19 am

odroid wrote:
Mon Jun 24, 2019 5:40 pm
구글 검색을 통해 우리 포럼글을 하나 찾았습니다.
viewtopic.php?f=136&t=33944
좀 더 세심하게 읽어보고 공부를 해봐야 겠지만, 대략 파악하기에는 x11위에서 Qt 어플은 vsync를 제대로 구현하기 어려우니 framebuffer(fbdev)를 이용해야 한다는 것 같습니다.

x11 용 Qt5 라이브러리를 빌드하듯이 configure 옵션을 변경하여 fbdev용으로 빌드 해봐야 겠습니다.
이렇게 하면 FBIO_WAITFORVSYNC 기능이 동작할 것 같은데, 공부하고 빌드할 시간이 없네요. ㅠㅠ
viewtopic.php?f=95&t=31070
qt를 fbdev로 다시 빌드 해서 사용할 때, Mali 450의 fbdev용 드라이버가 필요하지 않나요?

https://wiki.qt.io/ODROID-XU3

여기를 보면 XU3에서 fbdev 용 드라이버를 별로 받서 설치하는 부분이 존재합니다.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jun 25, 2019 10:22 am

C2의 framebuffer용 Mali-450 드라이버는 apt install mali-fbdev 로 설차하면 됩니다.
These users thanked the author odroid for the post:
mgu1206 (Tue Jun 25, 2019 11:01 am)

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jun 25, 2019 3:14 pm

odroid wrote:
Tue Jun 25, 2019 10:22 am
C2의 framebuffer용 Mali-450 드라이버는 apt install mali-fbdev 로 설차하면 됩니다.
네 알겠습니다..

Qt를 fbdev용으로 빌드하는 방법을 찾아봐야겟네요...

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jun 25, 2019 3:31 pm

odroid wrote:
Tue Jun 25, 2019 10:22 am
C2의 framebuffer용 Mali-450 드라이버는 apt install mali-fbdev 로 설차하면 됩니다.
Preparing to unpack .../60-mali-fbdev_20180710-r6p1-10_arm64.deb ...
Unpacking mali-fbdev (20180710-r6p1-10) ...
dpkg: error processing archive /tmp/apt-dpkg-install-hJZMA1/60-mali-fbdev_20180710-r6p1-10_arm64.deb (--unpack):
trying to overwrite '/usr/include/EGL/egl.h', which is also in package libegl1-mesa-dev:arm64 18.0.5-0ubuntu0~18.04.1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/tmp/apt-dpkg-install-hJZMA1/60-mali-fbdev_20180710-r6p1-10_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

mali-fbdev 설치 시도 시 위와 같은 오류가 발생하는데 어떻게 해결이 가능할까요?

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jun 25, 2019 3:39 pm

Mate이미지가 아닌 minimal 이미지에서만 mali-fbdev를 동작시켜 보았습니다.
Mate에서는 먼저 mali-x11 package를 remove/purge하고 해보세요.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jun 25, 2019 9:49 pm

odroid wrote:
Tue Jun 25, 2019 3:39 pm
Mate이미지가 아닌 minimal 이미지에서만 mali-fbdev를 동작시켜 보았습니다.
Mate에서는 먼저 mali-x11 package를 remove/purge하고 해보세요.
넵 감사합니다.
드라이버 쪽은 해결 했고.. qt를 빌드하는 법을 첮아봐야겠습니다...

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Mon Jul 01, 2019 5:33 pm

다른 작업들을 하느라 좀 확인이 늦었네요

안드로이드에 올려서 OpenGL 예제들을 돌려보니 해당 문제가 발생하지 않는 것으로 보이긴 합니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jul 09, 2019 11:16 am

odroid wrote:
Tue Jun 25, 2019 3:39 pm
Mate이미지가 아닌 minimal 이미지에서만 mali-fbdev를 동작시켜 보았습니다.
Mate에서는 먼저 mali-x11 package를 remove/purge하고 해보세요.
혹시 X11 Mali 드라이버가 수정될 여지는 없을까요?

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jul 09, 2019 12:23 pm

안드로이드는 적용이 곤란하신가 보네요.

XU4에서도 Cube 테스트를 해보았는데 동일한 문제가 보입니다.
Qt용 FBIO_WAITFORVSYNC를 x11-mali에서는 구현이 매우 어려워 보입니다.

fbdev용 Qt5를 3주 정도 투자해서 만들어 제공하면 도움이 될까요?

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jul 09, 2019 1:07 pm

odroid wrote:
Tue Jul 09, 2019 12:23 pm
안드로이드는 적용이 곤란하신가 보네요.

XU4에서도 Cube 테스트를 해보았는데 동일한 문제가 보입니다.
Qt용 FBIO_WAITFORVSYNC를 x11-mali에서는 구현이 매우 어려워 보입니다.

fbdev용 Qt5를 3주 정도 투자해서 만들어 제공하면 도움이 될까요?
기존 우분투에서 Qt5/QML 기반으로 개발한 코드들을 Qt for Android로 이동 시키려니 거의 바닥부터 다시 개발해야할꺼 같더군요...

그리고 Qt Android에서 WebEngine/WebEngineWidget을 지원하지 않는 부분도 있고..

시리얼 통신을 해야하는데 QSerialPort를 사용할 수 없어서 별도로 구현하거나 구현된 코드를 사용해야 한다는 부분이 부담스럽게 느껴지긴 합니다..

가능하시다면 도와주신다면 감사할것 같습니다..

혹시 빌드 시 QML모듈도 포함이 가능할까요? 라이센스 때문에 불가능할까요?

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jul 09, 2019 1:28 pm

네, 그렇군요.
그런데 라이센스 문제는 잘 모르겠습니다.

아래 링크 참고해서 시도해볼 계획입니다.
viewtopic.php?f=177&t=35347
https://wiki.qt.io/ODROID-XU3

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jul 09, 2019 5:50 pm

odroid wrote:
Tue Jul 09, 2019 1:28 pm
네, 그렇군요. 라이센스 문제는 잘 모르겠습니다.

아래 링크 참고해서 시도해볼 계획입니다.
viewtopic.php?f=177&t=35347
https://wiki.qt.io/ODROID-XU3
QML 모듈은 LGPLv3를 적용받고 있어서 혹시 빌드 시 내부 소스를 변경해야 한다면 변경된 부분만 공개하면 될듯합니다..

저도 올려주신 링크보고 참고해보겠습니다.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jul 09, 2019 6:10 pm

C2 Minimal Ubuntu 이미지 설치하고, mali-fbdev 기능은 glmark2-es2-fbdev를 구동하여 확인하였습니다.
그리고 qt-everywhere-src-5.12.3.zip 다운받아 아래와 같이 설정하고 빌드하고 있습니다. C2에서 native로 빌드하고 있어 5시간 이상 걸릴듯 합니다.
./configure -prefix "/home/odroid/qt/build" -release -confirm-license -opensource -platform linux-aarch64-gnu-g++ -opengl es2 -no-pch -no-xcb -skip wayland -skip webengine
밤사이 빌드가 무사히 끝나고 OpenGL-ES cube예제가 깔끔하게 Tearing없이 돌아가길 기대해 봅니다.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Wed Jul 10, 2019 9:44 am

밤사이 /qt3d/src/plugins/sceneparsers/assimp 라이브러리 빌드중에 에러가 발생하였네요.
원인을 찾아보겠습니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Wed Jul 10, 2019 2:42 pm

odroid wrote:
Wed Jul 10, 2019 9:44 am
밤사이 /qt3d/src/plugins/sceneparsers/assimp 라이브러리 빌드중에 에러가 발생하였네요.
원인을 찾아보겠습니다.
저도 5.9.5로 시도했는데 install 중에 같은 에러가 발생했습니다.;

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Thu Jul 11, 2019 2:03 pm

아래 설정 옵션으로 Build 및 Install까지는 성공하였으나 cube 실행하니 흰색화면만 나오고 동작이 안되네요.

Code: Select all

./configure -prefix "/home/odroid/qt/build" -release -confirm-license -opensource -platform linux-aarch64-gnu-g++ -opengl es2 -no-pch -no-xcb -skip wayland -skip webengine -no-assimp -skip qtlocation
설정 결과에 EGL이나 EGLFS 값이 "Yes"가 되어야 하는데 Mali OpenGL ES library path 검출에 문제가 있는것 같습니다.
좀더 들어야다 봐야 겠네요.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Fri Jul 12, 2019 9:05 am

Code: Select all

This is the Qt Open Source Edition.

You have already accepted the terms of the Open Source license.

Running configuration tests...
Done running configuration tests.

Configure summary:

Build type: linux-aarch64-gnu-g++ (arm64, CPU features: neon)
Compiler: gcc 7.4.0
Configuration: use_gold_linker compile_examples enable_new_dtags largefile neonl
Build options:
  Mode ................................... release
  Optimize release build for size ........ no
  Building shared libraries .............. yes                                  
  Using C standard ....................... C11                                  
  Using C++ standard ..................... C++1z                                
  Using ccache ........................... no                                   
  Using gold linker ...................... yes                                  
  Using new DTAGS ........................ yes                                  
  Using precompiled headers .............. no                                   
  Using LTCG ............................. no                                   
  Target compiler supports:                                                     
    NEON ................................. yes                                  
  Build parts ............................ libs examples tools                  
Qt modules and options:                                                         
  Qt Concurrent .......................... yes                                  
  Qt D-Bus ............................... yes                                  
  Qt D-Bus directly linked to libdbus .... no                                   
  Qt Gui ................................. yes                                  
  Qt Network ............................. yes                                  
  Qt Sql ................................. yes                                  
  Qt Testlib ............................. yes                                  
  Qt Widgets ............................. yes                                  
  Qt Xml ................................. yes                                  
Support enabled for:                                                            
  Using pkg-config ....................... yes                                  
  udev ................................... no                                   
  Using system zlib ...................... yes                                  
Qt Core:                                                                        
  DoubleConversion ....................... yes                                  
    Using system DoubleConversion ........ no                                   
  GLib ................................... no                                   
  iconv .................................. yes                                  
  ICU .................................... no                                   
  Tracing backend ........................ <none>                               
  Logging backends:                                                             
    journald ............................. no                                   
    syslog ............................... no                                   
    slog2 ................................ no                                   
  Using system PCRE2 ..................... no                                   
Qt Network:                                                                     
  getifaddrs() ........................... yes                                  
  IPv6 ifname ............................ yes                                  
  libproxy ............................... no                                   
  Linux AF_NETLINK ....................... yes                                  
  OpenSSL ................................ no                                   
    Qt directly linked to OpenSSL ........ no                                   
  OpenSSL 1.1 ............................ no                                   
  DTLS ................................... no                                   
  SCTP ................................... no                                   
  Use system proxies ..................... yes                                  
Qt Gui:                                                                         
  Accessibility .......................... yes                                  
  FreeType ............................... yes                                  
    Using system FreeType ................ no                                   
  HarfBuzz ............................... yes                                  
    Using system HarfBuzz ................ no                                   
  Fontconfig ............................. no                                   
  Image formats:                                                                
    GIF .................................. yes                                  
    ICO .................................. yes                                  
    JPEG ................................. yes                                  
      Using system libjpeg ............... yes                                  
    PNG .................................. yes                                  
      Using system libpng ................ yes                                  
  EGL .................................... yes                                  
  OpenVG ................................. no                                   
  OpenGL:                                                                       
    Desktop OpenGL ....................... no                                   
    OpenGL ES 2.0 ........................ yes                                  
    OpenGL ES 3.0 ........................ no                                   
    OpenGL ES 3.1 ........................ no                                   
    OpenGL ES 3.2 ........................ no                                   
  Vulkan ................................. no                                   
  Session Management ..................... yes                                  
Features used by QPA backends:                                                  
  evdev .................................. yes                                  
  libinput ............................... no                                   
  INTEGRITY HID .......................... no                                   
  mtdev .................................. no                                   
  tslib .................................. no                                   
  xkbcommon .............................. no                                   
  X11 specific:                                                                 
    XLib ................................. yes                                  
    XCB Xlib ............................. yes                                  
    EGL on X11 ........................... yes                                  
QPA backends:                                                                   
  DirectFB ............................... no                                   
  EGLFS .................................. yes                                  
  EGLFS details:                                                                
    EGLFS OpenWFD ........................ no                                   
    EGLFS i.Mx6 .......................... no                                   
    EGLFS i.Mx6 Wayland .................. no                                   
    EGLFS RCAR ........................... no                                   
    EGLFS EGLDevice ...................... no                                   
    EGLFS GBM ............................ yes                                  
    EGLFS VSP2 ........................... no                                   
    EGLFS Mali ........................... yes                                  
    EGLFS Raspberry Pi ................... no                                   
    EGLFS X11 ............................ yes                                  
  LinuxFB ................................ yes                                  
  VNC .................................... yes                                  
  Mir client ............................. no                                   
Qt Sql:                                                                         
  SQL item models ........................ yes                                  
Qt Widgets:                                                                     
  GTK+ ................................... no                                   
  Styles ................................. Fusion Windows                       
Qt PrintSupport:                                                                
  CUPS ................................... no                                   
Qt Sql Drivers:                                                                 
  DB2 (IBM) .............................. no                                   
  InterBase .............................. no                                   
  MySql .................................. no                                   
  OCI (Oracle) ........................... no                                   
  ODBC ................................... no                                   
  PostgreSQL ............................. no                                   
  SQLite2 ................................ no                                   
  SQLite ................................. yes                                  
    Using system provided SQLite ......... no                                   
  TDS (Sybase) ........................... no                                   
Qt Testlib:                                                                     
  Tester for item models ................. yes                                  
Qt SerialBus:                                                                   
  Socket CAN ............................. yes                                  
  Socket CAN FD .......................... yes                                  
Further Image Formats:                                                          
  JasPer ................................. no                                   
  MNG .................................... no                                   
  TIFF ................................... yes                                  
    Using system libtiff ................. no                                   
  WEBP ................................... yes                                  
    Using system libwebp ................. no                                   
Qt Sensors:                                                                     
  sensorfw ............................... no                                   
QtXmlPatterns:                                                                  
  XML schema support ..................... yes                                  
Qt Multimedia:                                                                  
  ALSA ................................... no                                   
  GStreamer 1.0 .......................... no                                   
  GStreamer 0.10 ......................... no                                   
  Video for Linux ........................ yes                                  
  OpenAL ................................. no                                   
  PulseAudio ............................. no                                   
  Resource Policy (libresourceqt5) ....... no                                   
  Windows Audio Services ................. no                                   
  DirectShow ............................. no                                   
  Windows Media Foundation ............... no                                   
Qt Tools:                                                                       
  QDoc ................................... no                                   
                                                                                
WARNING: QDoc will not be compiled, probably because libclang could not be loca.
                                                                                
Either ensure that llvm-config is in your PATH environment variable, or set LLV.
On Linux systems, you may be able to install libclang by installing the libclan.
On macOS, you can use Homebrew's llvm package.                                  
On Windows, you must set LLVM_INSTALL_DIR to the installation path.             
                                                                                
Qt is now configured for building. Just run 'make'.                             
Once everything is built, you must run 'make install'.                          
Qt will be installed into '/home/odroid/qt/build'.                              
                                                                                
Prior to reconfiguration, make sure you remove any leftovers from the previous build.
혹시나해서 Qt 5.12.4로 EGL과 EGLFS-Mali 옵션까지 살려서 빌드했는데도 여전히 흰색 화면만 나오네요. :(

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Fri Jul 12, 2019 9:17 am

odroid wrote:
Fri Jul 12, 2019 9:05 am

Code: Select all

This is the Qt Open Source Edition.

You have already accepted the terms of the Open Source license.

Running configuration tests...
Done running configuration tests.

Configure summary:

Build type: linux-aarch64-gnu-g++ (arm64, CPU features: neon)
Compiler: gcc 7.4.0
Configuration: use_gold_linker compile_examples enable_new_dtags largefile neonl
Build options:
  Mode ................................... release
  Optimize release build for size ........ no
  Building shared libraries .............. yes                                  
  Using C standard ....................... C11                                  
  Using C++ standard ..................... C++1z                                
  Using ccache ........................... no                                   
  Using gold linker ...................... yes                                  
  Using new DTAGS ........................ yes                                  
  Using precompiled headers .............. no                                   
  Using LTCG ............................. no                                   
  Target compiler supports:                                                     
    NEON ................................. yes                                  
  Build parts ............................ libs examples tools                  
Qt modules and options:                                                         
  Qt Concurrent .......................... yes                                  
  Qt D-Bus ............................... yes                                  
  Qt D-Bus directly linked to libdbus .... no                                   
  Qt Gui ................................. yes                                  
  Qt Network ............................. yes                                  
  Qt Sql ................................. yes                                  
  Qt Testlib ............................. yes                                  
  Qt Widgets ............................. yes                                  
  Qt Xml ................................. yes                                  
Support enabled for:                                                            
  Using pkg-config ....................... yes                                  
  udev ................................... no                                   
  Using system zlib ...................... yes                                  
Qt Core:                                                                        
  DoubleConversion ....................... yes                                  
    Using system DoubleConversion ........ no                                   
  GLib ................................... no                                   
  iconv .................................. yes                                  
  ICU .................................... no                                   
  Tracing backend ........................ <none>                               
  Logging backends:                                                             
    journald ............................. no                                   
    syslog ............................... no                                   
    slog2 ................................ no                                   
  Using system PCRE2 ..................... no                                   
Qt Network:                                                                     
  getifaddrs() ........................... yes                                  
  IPv6 ifname ............................ yes                                  
  libproxy ............................... no                                   
  Linux AF_NETLINK ....................... yes                                  
  OpenSSL ................................ no                                   
    Qt directly linked to OpenSSL ........ no                                   
  OpenSSL 1.1 ............................ no                                   
  DTLS ................................... no                                   
  SCTP ................................... no                                   
  Use system proxies ..................... yes                                  
Qt Gui:                                                                         
  Accessibility .......................... yes                                  
  FreeType ............................... yes                                  
    Using system FreeType ................ no                                   
  HarfBuzz ............................... yes                                  
    Using system HarfBuzz ................ no                                   
  Fontconfig ............................. no                                   
  Image formats:                                                                
    GIF .................................. yes                                  
    ICO .................................. yes                                  
    JPEG ................................. yes                                  
      Using system libjpeg ............... yes                                  
    PNG .................................. yes                                  
      Using system libpng ................ yes                                  
  EGL .................................... yes                                  
  OpenVG ................................. no                                   
  OpenGL:                                                                       
    Desktop OpenGL ....................... no                                   
    OpenGL ES 2.0 ........................ yes                                  
    OpenGL ES 3.0 ........................ no                                   
    OpenGL ES 3.1 ........................ no                                   
    OpenGL ES 3.2 ........................ no                                   
  Vulkan ................................. no                                   
  Session Management ..................... yes                                  
Features used by QPA backends:                                                  
  evdev .................................. yes                                  
  libinput ............................... no                                   
  INTEGRITY HID .......................... no                                   
  mtdev .................................. no                                   
  tslib .................................. no                                   
  xkbcommon .............................. no                                   
  X11 specific:                                                                 
    XLib ................................. yes                                  
    XCB Xlib ............................. yes                                  
    EGL on X11 ........................... yes                                  
QPA backends:                                                                   
  DirectFB ............................... no                                   
  EGLFS .................................. yes                                  
  EGLFS details:                                                                
    EGLFS OpenWFD ........................ no                                   
    EGLFS i.Mx6 .......................... no                                   
    EGLFS i.Mx6 Wayland .................. no                                   
    EGLFS RCAR ........................... no                                   
    EGLFS EGLDevice ...................... no                                   
    EGLFS GBM ............................ yes                                  
    EGLFS VSP2 ........................... no                                   
    EGLFS Mali ........................... yes                                  
    EGLFS Raspberry Pi ................... no                                   
    EGLFS X11 ............................ yes                                  
  LinuxFB ................................ yes                                  
  VNC .................................... yes                                  
  Mir client ............................. no                                   
Qt Sql:                                                                         
  SQL item models ........................ yes                                  
Qt Widgets:                                                                     
  GTK+ ................................... no                                   
  Styles ................................. Fusion Windows                       
Qt PrintSupport:                                                                
  CUPS ................................... no                                   
Qt Sql Drivers:                                                                 
  DB2 (IBM) .............................. no                                   
  InterBase .............................. no                                   
  MySql .................................. no                                   
  OCI (Oracle) ........................... no                                   
  ODBC ................................... no                                   
  PostgreSQL ............................. no                                   
  SQLite2 ................................ no                                   
  SQLite ................................. yes                                  
    Using system provided SQLite ......... no                                   
  TDS (Sybase) ........................... no                                   
Qt Testlib:                                                                     
  Tester for item models ................. yes                                  
Qt SerialBus:                                                                   
  Socket CAN ............................. yes                                  
  Socket CAN FD .......................... yes                                  
Further Image Formats:                                                          
  JasPer ................................. no                                   
  MNG .................................... no                                   
  TIFF ................................... yes                                  
    Using system libtiff ................. no                                   
  WEBP ................................... yes                                  
    Using system libwebp ................. no                                   
Qt Sensors:                                                                     
  sensorfw ............................... no                                   
QtXmlPatterns:                                                                  
  XML schema support ..................... yes                                  
Qt Multimedia:                                                                  
  ALSA ................................... no                                   
  GStreamer 1.0 .......................... no                                   
  GStreamer 0.10 ......................... no                                   
  Video for Linux ........................ yes                                  
  OpenAL ................................. no                                   
  PulseAudio ............................. no                                   
  Resource Policy (libresourceqt5) ....... no                                   
  Windows Audio Services ................. no                                   
  DirectShow ............................. no                                   
  Windows Media Foundation ............... no                                   
Qt Tools:                                                                       
  QDoc ................................... no                                   
                                                                                
WARNING: QDoc will not be compiled, probably because libclang could not be loca.
                                                                                
Either ensure that llvm-config is in your PATH environment variable, or set LLV.
On Linux systems, you may be able to install libclang by installing the libclan.
On macOS, you can use Homebrew's llvm package.                                  
On Windows, you must set LLVM_INSTALL_DIR to the installation path.             
                                                                                
Qt is now configured for building. Just run 'make'.                             
Once everything is built, you must run 'make install'.                          
Qt will be installed into '/home/odroid/qt/build'.                              
                                                                                
Prior to reconfiguration, make sure you remove any leftovers from the previous build.
혹시나해서 Qt 5.12.4로 EGL과 EGLFS-Mali 옵션까지 살려서 빌드했는데도 여전히 흰색 화면만 나오네요. :(
혹시 ./configure 옵션을 어떻게 주셨는지 알 수 있을까요?

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Fri Jul 12, 2019 9:24 am

빌드 시간을 줄이고 컴파일 에러를 없애기 위해 옵션을 많이 죽였습니다. make -j4 옵션으로 native 빌드 및 링크가 가능했고요. 참, zram-config apt로 설치해서 RAM-SWAP은 살려놓았습니다.

Code: Select all

./configure -prefix "/home/odroid/qt/build" -release -confirm-license -opensource -platform linux-aarch64-gnu-g++ -opengl es2 -no-pch -no-xcb -skip wayland -skip webengine -skip qtlocation -eglfs -skip qt3d -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects
오늘 아침부터 외근이 있어서 다음주에 처음부터 좀 더 차분히 들여다 보도록 하겠습니다. 오기가 생겨서 끝을 보고 싶네요.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jul 16, 2019 3:23 pm

시용하시는 HDMI 디스플레이의 해상도가 낮다면 Mate Tweak의 Windows 설정에서 software compositor옵션을 켜보시길 바랍니다.
Mate/X11 desktop에서 cube예제의 tearing문제가 대부분 사라지는 것 같습니다. Debian OS와 Ubuntu OS에서 모두 확인하였습니다.

하지만 해상도가 높은경우 GUI 속도가 심하게 많이 떨어지는 문제가 있어, fbdev용 Qt5 빌드는 계속 시도해 보도록 하겠습니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jul 16, 2019 4:26 pm

odroid wrote:
Tue Jul 16, 2019 3:23 pm
시용하시는 HDMI 디스플레이의 해상도가 낮다면 Mate Tweak의 Windows 설정에서 software compositor옵션을 켜보시길 바랍니다.
Mate/X11 desktop에서 cube예제의 tearing문제가 대부분 사라지는 것 같습니다. Debian OS와 Ubuntu OS에서 모두 확인하였습니다.

하지만 해상도가 높은경우 GUI 속도가 심하게 많이 떨어지는 문제가 있어, fbdev용 Qt5 빌드는 계속 시도해 보도록 하겠습니다.
사용하는 디스플레이는 Vu7A+ (1024*600) 입니다.

그리고 Window manager에서 Software compositor는 보이지 않는데, No Compositor를 말씀하시는 건가요?

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jul 16, 2019 5:04 pm

Debian Stretch image에는 해당 메뉴가 있는데, Ubuntu에는 없네요.

저희 회사내 다른분이 N2 보드의 framebuffer에서 Qt5를 빌드하여 OpenGL Cube예제로 Tearing이 없음을 방금 확인하였습니다.
C2 보드에서 다시 빌드하여 테스트 해보고 그 결과와 빌드 방법 공유해 드릴 예정입니다. 몇일 만 더 기다려 주시길 바랍니다.

User avatar
odroid
Site Admin
Posts: 31382
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 184 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by odroid » Tue Jul 16, 2019 5:40 pm

우분투는 Preference -> Windows -> Compositing Manager에 "Enable software compositing window manager" option이 있습니다.
Debian Stretch는 확실히 개선 효과가 있었는데, Ubuntu는 없네요. 혼돈을 드려 죄송합니다.
아마도 DDX를 Mali 드라이버가 아닌 fbturbo를 사용해서 그런것 같습니다.

framebuffer용 Qt5를 좀 더 기다려 주시길 바랍니다.

User avatar
tobetter
Posts: 3698
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 28 times
Been thanked: 117 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by tobetter » Tue Jul 16, 2019 6:09 pm

mgu1206 wrote:
Tue Jun 18, 2019 3:15 pm
Qt5 어플리케이션의 Rectangle 영역을 visible 처리가 바뀔 때 랜덤하게 영역이 나뉘어서 부분적으로 그려지는 문제가 발생합니다.

영문 질문글에 올렸는데 부족한 영어 실력으로 표현이 안되서 한글 게시판에 다시 올립니다...

http://minsdatanetwork.iptime.org:8085/ ... id=0xGEfn5

증상의 영상과 사진은 위 링크에 있습니다.

수직동기화나 프레임 제한 등 가능한건 모두 해봤으나 해결이 안되더 군요..

Qt5 어플리케이션도 OpenGL로 작동되는 상황 이구요.

혹시 해결방법을 아시는 분은 조언 부탁 드립니다.

Odroid C2이며 Ubuntu 18.04 Mate 입니다.
위의 링크에 문제점에 관한 동영상이나 사진을 올리신 것 같은데 지금은 안보입니다.
죄송합니다만, 다시 공유해주실 수 있나요?

반드시 Ubuntu Desktop을 사용하셔야 하는지 그리고 Qt화면을 이용하는 어플이 두개 이상인지 궁금합니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jul 16, 2019 7:14 pm

tobetter wrote:
Tue Jul 16, 2019 6:09 pm
mgu1206 wrote:
Tue Jun 18, 2019 3:15 pm
Qt5 어플리케이션의 Rectangle 영역을 visible 처리가 바뀔 때 랜덤하게 영역이 나뉘어서 부분적으로 그려지는 문제가 발생합니다.

영문 질문글에 올렸는데 부족한 영어 실력으로 표현이 안되서 한글 게시판에 다시 올립니다...

http://minsdatanetwork.iptime.org:8085/ ... id=0xGEfn5

증상의 영상과 사진은 위 링크에 있습니다.

수직동기화나 프레임 제한 등 가능한건 모두 해봤으나 해결이 안되더 군요..

Qt5 어플리케이션도 OpenGL로 작동되는 상황 이구요.

혹시 해결방법을 아시는 분은 조언 부탁 드립니다.

Odroid C2이며 Ubuntu 18.04 Mate 입니다.
위의 링크에 문제점에 관한 동영상이나 사진을 올리신 것 같은데 지금은 안보입니다.
죄송합니다만, 다시 공유해주실 수 있나요?

반드시 Ubuntu Desktop을 사용하셔야 하는지 그리고 Qt화면을 이용하는 어플이 두개 이상인지 궁금합니다.
안녕하세요

제 개인 나스에 올려서 링크를 걸었다 보니 기한이 끝났나 봅니다.

http://minsdatanetwork.iptime.org:8085/ ... id=01jOPVp

다시 링크 올렸습니다.

반드시 Ubuntu Desktop을 사용 하지 않아도 됩니다. Desktop환경이 없는 것이 더 좋습니다.

임베디드 장비 처럼 포함되어 나갈거라.. Qt화면을 이용하는 어플은 하나 뿐입니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Tue Jul 16, 2019 7:14 pm

odroid wrote:
Tue Jul 16, 2019 5:40 pm
우분투는 Preference -> Windows -> Compositing Manager에 "Enable software compositing window manager" option이 있습니다.
Debian Stretch는 확실히 개선 효과가 있었는데, Ubuntu는 없네요. 혼돈을 드려 죄송합니다.
아마도 DDX를 Mali 드라이버가 아닌 fbturbo를 사용해서 그런것 같습니다.

framebuffer용 Qt5를 좀 더 기다려 주시길 바랍니다.
감사합니다.

조금 더 기다려 보겠습니다!

User avatar
tobetter
Posts: 3698
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 28 times
Been thanked: 117 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by tobetter » Thu Jul 18, 2019 3:50 am

Qt5를 Ubunut minimal에서 동작시키도록 수정한 내용 공유해봅니다.

1. PC에서 Ubuntu 18.04 Minimal 이미지를 다운로드 받아서 SD카드나 eMMC에 기록해서 정상적으로 설치되도록 부팅해줍니다.

Code: Select all

$ https://dn.odroid.com/S905/Ubuntu/ubuntu-18.04-3.16-minimal-odroid-c2-20180626.img.xz
$ unxz ubuntu-18.04-3.16-minimal-odroid-c2-20180626.img.xz
$ sudo dd if=ubuntu-18.04-3.16-minimal-odroid-c2-20180626.img of=</dev/메모리카드> conv=fsync
2. 부팅된 ODROID-C2에서 기존 패키지들을 업데이트하고 테스트용으로 빌드한 Qt5패키지를 설치합니다.

Code: Select all

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 4F71126C02B8F823
$ sudo cat>/etc/apt/sources.list.d/ppa_linuxfactory_or_kr.list<<__EOF
deb http://ppa.linuxfactory.or.kr bionic main
deb http://ppa.linuxfactory.or.kr bionic non-free
__EOF
$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt install qt5-default mali-utgard-fbdev-driver
3. Qt5가 Mali위에서 fullscreen으로 동작하도록 하기 위해서는 QT_QPA_EGLFS_INTEGRATION과 QT_QPA_PLATFORM이 설정되어야 하는데, 부팅할 때마다 적용되도록 아래와 같이 설정파일을 저장한 후에 ODROID-C2를 리부팅 시킵니다.

Code: Select all

$ sudo cat>/etc/profile.d/50-qt5-setup.sh<<__EOF
export QT_QPA_EGLFS_INTEGRATION=eglfs_mali
export QT_QPA_PLATFORM=eglfs
__EOF
4. 위의 과정이 정상적으로 진행이되면 Qt5예제를 설치해서 동작을 시킵니다..

Code: Select all

$ sudo apt update
$ sudo apt install qtbase5-examples
$ /usr/lib/aarch64-linux-gnu/qt5/examples/opengl/cube/cube
저의 경우는 위의 과정대로 진행했을 때 Qt5 예제 Cube가 정상적으로 나왔습니다. 혹시 빼먹은 과정이 있을 수 있으니 진행 중 문제가 발생하면 알려주세요. 그리고, 위에서 설치한 Qt5 패키지는 Ubuntu 18.04에 설치되는 Qt5 5.9.5버전의 소스를 Ubuntu Desktop없이 동작하도록 새로 빌드한 테스트 버전이니 우선은 진행하시는 프로젝트가 잘 동작하는지 확인해주시기 바랍니다. 빌드하는 방법이나 설치과정을 좀 더 단순화시키는 과정은 추후에 도움드리겠습니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Thu Jul 18, 2019 9:42 am

tobetter wrote:
Thu Jul 18, 2019 3:50 am
Qt5를 Ubunut minimal에서 동작시키도록 수정한 내용 공유해봅니다.

1. PC에서 Ubuntu 18.04 Minimal 이미지를 다운로드 받아서 SD카드나 eMMC에 기록해서 정상적으로 설치되도록 부팅해줍니다.

Code: Select all

$ https://dn.odroid.com/S905/Ubuntu/ubuntu-18.04-3.16-minimal-odroid-c2-20180626.img.xz
$ unxz ubuntu-18.04-3.16-minimal-odroid-c2-20180626.img.xz
$ sudo dd if=ubuntu-18.04-3.16-minimal-odroid-c2-20180626.img of=</dev/메모리카드> conv=fsync
2. 부팅된 ODROID-C2에서 기존 패키지들을 업데이트하고 테스트용으로 빌드한 Qt5패키지를 설치합니다.

Code: Select all

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 4F71126C02B8F823
$ sudo cat>/etc/apt/sources.list.d/ppa_linuxfactory_or_kr.list<<__EOF
deb http://ppa.linuxfactory.or.kr bionic main
deb http://ppa.linuxfactory.or.kr bionic non-free
__EOF
$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt install qt5-default mali-utgard-fbdev-driver
3. Qt5가 Mali위에서 fullscreen으로 동작하도록 하기 위해서는 QT_QPA_EGLFS_INTEGRATION과 QT_QPA_PLATFORM이 설정되어야 하는데, 부팅할 때마다 적용되도록 아래와 같이 설정파일을 저장한 후에 ODROID-C2를 리부팅 시킵니다.

Code: Select all

$ sudo cat>/etc/profile.d/50-qt5-setup.sh<<__EOF
export QT_QPA_EGLFS_INTEGRATION=eglfs_mali
export QT_QPA_PLATFORM=eglfs
__EOF
4. 위의 과정이 정상적으로 진행이되면 Qt5예제를 설치해서 동작을 시킵니다..

Code: Select all

$ sudo apt update
$ sudo apt install qtbase5-examples
$ /usr/lib/aarch64-linux-gnu/qt5/examples/opengl/cube/cube
저의 경우는 위의 과정대로 진행했을 때 Qt5 예제 Cube가 정상적으로 나왔습니다. 혹시 빼먹은 과정이 있을 수 있으니 진행 중 문제가 발생하면 알려주세요. 그리고, 위에서 설치한 Qt5 패키지는 Ubuntu 18.04에 설치되는 Qt5 5.9.5버전의 소스를 Ubuntu Desktop없이 동작하도록 새로 빌드한 테스트 버전이니 우선은 진행하시는 프로젝트가 잘 동작하는지 확인해주시기 바랍니다. 빌드하는 방법이나 설치과정을 좀 더 단순화시키는 과정은 추후에 도움드리겠습니다.
안녕하세요 방금 알려주신데로 설치하고 예제를 실행해보니 정상적으로 보입니다. ㅜㅜ

혹시 빌드 하신 Qt5에 QML모듈도 포함되어 있는 상태인가요?

올리신 시간을 보니...; 새벽 시간까지 고생이셨네요...;

User avatar
tobetter
Posts: 3698
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 28 times
Been thanked: 117 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by tobetter » Thu Jul 18, 2019 10:06 am

@mgu1206, 저는 Qtbase만 새로 빌드한거라 QML모듈은 아래 명령으로 Ubuntu repo에서 받으면 설치될 것 같습니다.
$ sudo apt install qml-module-qtquick2

확인해보시고 안되시면 다시 알려주세요.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Thu Jul 18, 2019 10:19 am

tobetter wrote:
Thu Jul 18, 2019 10:06 am
@mgu1206, 저는 Qtbase만 새로 빌드한거라 QML모듈은 아래 명령으로 Ubuntu repo에서 받으면 설치될 것 같습니다.
$ sudo apt install qml-module-qtquick2

확인해보시고 안되시면 다시 알려주세요.
넵 알겠습니다.

추가적인 모듈들 현재 설치중입니다. 확인해보고 다시 오겠습니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Thu Jul 18, 2019 10:50 am

tobetter wrote:
Thu Jul 18, 2019 10:06 am
@mgu1206, 저는 Qtbase만 새로 빌드한거라 QML모듈은 아래 명령으로 Ubuntu repo에서 받으면 설치될 것 같습니다.
$ sudo apt install qml-module-qtquick2

확인해보시고 안되시면 다시 알려주세요.
[755:755:0718/014849.449655:ERROR:browser_main_loop.cc(500)] Failed to put Xlib into threaded mode.
[755:755:0718/014849.450330:ERROR:browser_main_loop.cc(1477)] Unable to open X display.
Segmentation fault

현재 저희 프로젝트를 빌드해서 실행 해본결과 위의 메세지가 나오면서 실행이 안되네요

뭔가 좀 다른 문제가 있는 것 같습니다.

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Thu Jul 18, 2019 11:12 am

tobetter wrote:
Thu Jul 18, 2019 10:06 am
@mgu1206, 저는 Qtbase만 새로 빌드한거라 QML모듈은 아래 명령으로 Ubuntu repo에서 받으면 설치될 것 같습니다.
$ sudo apt install qml-module-qtquick2

확인해보시고 안되시면 다시 알려주세요.
저희 프로젝트에 qtwebengine부분을 쓰는게 있어서 오류가 났던것 같습니다.

현재는 실행이 잘됩니다! 몇몇 QML모듈을 apt-get으로 설치하니 해결됐습니다.

User avatar
tobetter
Posts: 3698
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 28 times
Been thanked: 117 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by tobetter » Thu Jul 18, 2019 11:52 am

mgu1206 wrote:
tobetter wrote:
Thu Jul 18, 2019 10:06 am
@mgu1206, 저는 Qtbase만 새로 빌드한거라 QML모듈은 아래 명령으로 Ubuntu repo에서 받으면 설치될 것 같습니다.
$ sudo apt install qml-module-qtquick2

확인해보시고 안되시면 다시 알려주세요.
[755:755:0718/014849.449655:ERROR:browser_main_loop.cc(500)] Failed to put Xlib into threaded mode.
[755:755:0718/014849.450330:ERROR:browser_main_loop.cc(1477)] Unable to open X display.
Segmentation fault

현재 저희 프로젝트를 빌드해서 실행 해본결과 위의 메세지가 나오면서 실행이 안되네요

뭔가 좀 다른 문제가 있는 것 같습니다.
음...제가 직접적으로 Qt5를 사용해서 개발한 경험이 별로 없어서 자세히는 모릅니다만, 예제를 좀 실행해 보고 있는 중입니다. 개발하시는 프로젝트가 어떤지 좀 더 자세한 정보가 필요해 보입니다. 실행프로그램의 ldd정보를 공유해 주실 수 있나요? 그리고, 가장 유사한 Qt예제는 어떤 것인지 알려주실 수 있나요?

"Tapatalk wishes you to have fun with ODROID"


User avatar
tobetter
Posts: 3698
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 28 times
Been thanked: 117 times
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by tobetter » Thu Jul 18, 2019 12:45 pm

mgu1206 wrote:
Thu Jul 18, 2019 11:12 am
tobetter wrote:
Thu Jul 18, 2019 10:06 am
@mgu1206, 저는 Qtbase만 새로 빌드한거라 QML모듈은 아래 명령으로 Ubuntu repo에서 받으면 설치될 것 같습니다.
$ sudo apt install qml-module-qtquick2

확인해보시고 안되시면 다시 알려주세요.
저희 프로젝트에 qtwebengine부분을 쓰는게 있어서 오류가 났던것 같습니다.

현재는 실행이 잘됩니다! 몇몇 QML모듈을 apt-get으로 설치하니 해결됐습니다.
어...잘 되는건가요?
어떻게 동작하는지 궁금해서요.
죄송합니다만, 동작하는 화면 공유해 주실 수 있나요?
지금의 환경으로 개발이나 사용에 문제가 없는건가요?

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Thu Jul 18, 2019 1:07 pm

tobetter wrote:
Thu Jul 18, 2019 12:45 pm
mgu1206 wrote:
Thu Jul 18, 2019 11:12 am
tobetter wrote:
Thu Jul 18, 2019 10:06 am
@mgu1206, 저는 Qtbase만 새로 빌드한거라 QML모듈은 아래 명령으로 Ubuntu repo에서 받으면 설치될 것 같습니다.
$ sudo apt install qml-module-qtquick2

확인해보시고 안되시면 다시 알려주세요.
저희 프로젝트에 qtwebengine부분을 쓰는게 있어서 오류가 났던것 같습니다.

현재는 실행이 잘됩니다! 몇몇 QML모듈을 apt-get으로 설치하니 해결됐습니다.
어...잘 되는건가요?
어떻게 동작하는지 궁금해서요.
죄송합니다만, 동작하는 화면 공유해 주실 수 있나요?
지금의 환경으로 개발이나 사용에 문제가 없는건가요?
몇몇 문제가 존재하긴 합니다.

우선 WebView 모듈의 경우 x11 의존적인 모듈이었던듯싶습니다.

WebView를 사용하는 기능이 있는데 이부분은 다른 방법을 찾아봐야 할 것 같습니다.

그리고 QML의 Mediaplayer 모듈이 소리를 재생하지 못하는 문제가 있는데 이부분은 다시 찾아봐야 할듯 합니다.

그리고 다국어 폰트를 별도로 설치 해야 했던것..

좀 더 테스트를 해봐야겠지만 우선 위의 몇 오류를 제외하고 드로잉부분은 문제가 없는듯 합니다.

동작 화면은 잠시뒤 올려 드릴께요.

그리고 ldd 정보는 아래와 같습니다.

linux-vdso.so.1 (0x0000007f9f10c000)
libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000007f9eb9a000)
libQt5Quick.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Quick.so.5 (0x0000007f9e7d4000)
libQt5Widgets.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5 (0x0000007f9e22f000)
libQt5Gui.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Gui.so.5 (0x0000007f9dda3000)
libQt5Qml.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Qml.so.5 (0x0000007f9d9fd000)
libQt5Xml.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Xml.so.5 (0x0000007f9d9b9000)
libQt5SerialPort.so.5 => /usr/lib/aarch64-linux-gnu/libQt5SerialPort.so.5 (0x0000007f9d992000)
libQt5Core.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Core.so.5 (0x0000007f9d434000)
libGLESv2.so => /usr/lib/aarch64-linux-gnu/libGLESv2.so (0x0000007f9d2b7000)
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007f9d28b000)
libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000007f9d0f8000)
libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f9d03e000)
libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007f9d01a000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f9cec1000)
/lib/ld-linux-aarch64.so.1 (0x0000007f9f0e2000)
libQt5Network.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Network.so.5 (0x0000007f9cd48000)
libpng16.so.16 => /usr/lib/aarch64-linux-gnu/libpng16.so.16 (0x0000007f9cd0d000)
libharfbuzz.so.0 => /usr/lib/aarch64-linux-gnu/libharfbuzz.so.0 (0x0000007f9cc6d000)
libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000007f9cc40000)
libudev.so.1 => /lib/aarch64-linux-gnu/libudev.so.1 (0x0000007f9cc16000)
libicui18n.so.60 => /usr/lib/aarch64-linux-gnu/libicui18n.so.60 (0x0000007f9c959000)
libicuuc.so.60 => /usr/lib/aarch64-linux-gnu/libicuuc.so.60 (0x0000007f9c784000)
libdouble-conversion.so.1 => /usr/lib/aarch64-linux-gnu/libdouble-conversion.so.1 (0x0000007f9c763000)
libglib-2.0.so.0 => /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000007f9c655000)
librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000007f9c63e000)
libfreetype.so.6 => /usr/lib/aarch64-linux-gnu/libfreetype.so.6 (0x0000007f9c595000)
libgraphite2.so.3 => /usr/lib/aarch64-linux-gnu/libgraphite2.so.3 (0x0000007f9c564000)
libicudata.so.60 => /usr/lib/aarch64-linux-gnu/libicudata.so.60 (0x0000007f9abab000)
libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000007f9ab39000)

mgu1206
Posts: 70
Joined: Mon Jan 21, 2019 1:12 pm
languages_spoken: English, Korean
ODROIDs: C2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Odroid C2에서 Qt5 프로그램 드로잉 문제

Unread post by mgu1206 » Thu Jul 18, 2019 1:14 pm

tobetter wrote:
Thu Jul 18, 2019 11:52 am
mgu1206 wrote:
tobetter wrote:
Thu Jul 18, 2019 10:06 am
@mgu1206, 저는 Qtbase만 새로 빌드한거라 QML모듈은 아래 명령으로 Ubuntu repo에서 받으면 설치될 것 같습니다.
$ sudo apt install qml-module-qtquick2

확인해보시고 안되시면 다시 알려주세요.
[755:755:0718/014849.449655:ERROR:browser_main_loop.cc(500)] Failed to put Xlib into threaded mode.
[755:755:0718/014849.450330:ERROR:browser_main_loop.cc(1477)] Unable to open X display.
Segmentation fault

현재 저희 프로젝트를 빌드해서 실행 해본결과 위의 메세지가 나오면서 실행이 안되네요

뭔가 좀 다른 문제가 있는 것 같습니다.
음...제가 직접적으로 Qt5를 사용해서 개발한 경험이 별로 없어서 자세히는 모릅니다만, 예제를 좀 실행해 보고 있는 중입니다. 개발하시는 프로젝트가 어떤지 좀 더 자세한 정보가 필요해 보입니다. 실행프로그램의 ldd정보를 공유해 주실 수 있나요? 그리고, 가장 유사한 Qt예제는 어떤 것인지 알려주실 수 있나요?

"Tapatalk wishes you to have fun with ODROID"
아 그리고 저희가 현재 개발중인 프로젝트는 3D프린터쪽에 들어가는 프로그램 입니다.

두개의 OdroidC2를 사용하고, 그중 한개를 출력과 관련된 작업에 나머지 하나를 사용자 UI를 보여주는데 사용합니다.

그 UI를 Qt로 개발중이구요.

그리고 이 두 오드로이드는 시리얼로 통신을 합니다.

그정도의 간단한 사용자 프로그램 입니다.

Post Reply

Return to “C0/C1/C1+/C2”

Who is online

Users browsing this forum: cap00k, testki144 and 0 guests