Armadilloフォーラム

Qt Quick2の性能について

s-hosoda

2016年7月26日 10時26分

お世話になります。

Armadillo-840上で製品向けアプリケーションの開発をしております。
解像度(1920x1080)のディスプレイを接続し,画面全体を利用して
静的な画像を数点使って表示/操作する,Qt Quick2ベースの
アプリケーションです。

アプリケーションを起動し操作すると,マウスカーソルの追従性が著しく悪くなり,
また表示間隔がアラくなってしまいます。
実装の仕方が悪いことを疑って,
ATDEの /usr/arm-linux-gnueabihf/lib/qt5/examples/quick/animation
配下のサンプルアプリを動かして比較してみたところ,表示アプリを選択する
メニューと比較し各アプリの表示中は,やはり開発中のアプリケーションを起動した
際と同等に,マウスカーソルの追従性が悪くなり,また表示間隔がアラくなってしまいました。
ATDE上ではそのようなことはありませんでした。
画像を表示した際に,マウスレスポンスが低下する事象を改善する方法は
ないでしょうか?

Armadillo の環境の確認方法をまだ知らないのですが,
製品に同胞されていたメディアには以下のような内容が収録されていました。
Linux カーネル:linux-a840-v1.13.bin.gz
ユーザランド: romfs-a840-v1.11.img.gz

宜しくお願い致します。

コメント

at_takashi.sasayama

2016年7月26日 15時42分

笹山です。

> 画像を表示した際に,マウスレスポンスが低下する事象を改善する方法は
> ないでしょうか?

画面の解像度を下げると、マウスレスポンスが向上します。
例えば 1920x1080 を 800x600 などに変更するなどです。

Armadillo-840からの解像度の変更方法は、製品マニュアルをご参照ください。

Armadillo-840 製品マニュアル 8.3.9.1. ビデオモードの変更
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…

s-hosoda

2016年7月26日 20時59分

笹山様

教えて頂いた手順で解像度を下げることで,マウスのレスポンスが
向上することを確認出来ました。本当にありがとう御座います。

このレスポンスで,他の開発者が納得してくれるか確認したいと思います。
ただ,解像度(1920x1080)で非常に綺麗なGUIを表現できているので,
レスポンスとのトレードオフでこれを失うことがとても残念です。

もし解像度を下げる以外の方法でもレスポンスの向上が可能であれば
教えて頂けると,とても助かります。

宜しくお願い致します。

at_takashi.sasayama

2016年8月8日 9時41分

笹山です。

> もし解像度を下げる以外の方法でもレスポンスの向上が可能であれば
> 教えて頂けると,とても助かります。

Qt5.4.2にバージョンを上げると、マウスレスポンスが向上していることを確認しました。
動作確認した環境は、以下の手順で構築しています。

https://users.atmark-techno.com/comment/3443#comment-3443

s-hosoda

2016年8月8日 12時59分

笹山様

貴重な情報をありがとうございます。
確認いたします。

s-hosoda

2016年8月8日 12時59分

笹山様

貴重な情報をありがとうございます。
確認いたします。

s-hosoda

2016年8月23日 13時16分

笹山様

コンパイルでてこずりましたが,以下のようにバージョンアップとビルドを行いました。

・はじめに5.6.1で挑戦しました。configure の実行でエラーが出るため,以下のオプションを除外しました。

<     -skip qtquick1 \
<     -skip qtwebkit \
<     -skip qtwebkit-examples \

・さらに configure の実行で失敗するため,以下のインストールをすることで make ファイルの作成が成功し,
 続いて make と make install が出来ました。

root@debian:~/# apt-get install libglib2.0-dev

・ATDEにも 5.6.1 のインストーラに従って導入しました。

root@atde5:~# chmod u+x qt-opensource-linux-x64-5.6.1-1.run 
root@atde5:~# ./qt-opensource-linux-x64-5.6.1-1.run 

・5.6.1のコンパイラでサンプルアプリのビルドはヘッダーやライブラリを見つけられず出来ませんでしたが,
 開発中のアプリはビルドすることが出来ました。しかし,以下のようなエラーとなり起動が出来ませんでした。

Could not open display
Aborted

5.6.1をあきらめて 5.4.2 を上記と同様の手順でおこなうと,ビルドと実行が出来ました。しかし性能の改善は見られませんでした。

そこでビルド方法を疑って,ATDE上の/usr/arm-linux-gnueabihf/配下のヘッダーやライブラリを退避して,上位のバージョンの
ものに差し替えて挑戦していますが,従来の環境で動作するアプリの改修版リリースにも随時対応しなければならないので,
切り替えと切り戻しを繰り返さなければならず,あまり進められていない状況です。

笹山様が性能の改善を確認された手順を教えて頂けると幸いです。
また,ATDEのビルド環境を簡単に切り替えるよい方法をご存知でしたら,教えて頂けないでしょうか。

以上,宜しくお願い致します。

at_takashi.sasayama

2016年8月23日 14時13分

笹山です。

> 性能の改善を確認された手順を教えて頂けると幸いです。

当方は、examples/quick/animation に含まれる ColorAnimation の動作比較で確認を行いました。

■ Qt5.0.2
1. ATDE5 に含まれる /usr/arm-linux-gnueabihf/lib/qt5/examples/quick を Armadillo へ転送
2. LD_LIBRARY_PATH を設定しない状態で quick/animation/animation を実行
3. Qt5.0.2環境で実行されていることを ldd コマンドで確認

root@debian:~/qt5/tmp/quick/animation# ldd animation |grep Qt
        libQt5Quick.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Quick.so.5 (0x76da0000)
        libQt5Gui.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5 (0x76b3c000)
        libQt5Core.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5 (0x7684d000)
        libQt5Qml.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Qml.so.5 (0x76564000)
        libQt5Network.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Network.so.5 (0x76487000)
        libQt5V8.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5V8.so.5 (0x761e6000)
root@debian:~/qt5/tmp/quick/animation#

■ Qt5.4.2
1. ATDE5 に含まれる /usr/arm-linux-gnueabihf/lib/qt5/examples/quick を Armadillo へ転送
2. LD_LIBRARY_PATH を設定した状態で quick/animation/animation を実行
3. Qt5.4.2環境で実行されていることを ldd コマンドで確認

root@debian:~/qt5/tmp/quick/animation# ldd animation |grep Qt2
        libQt5Quick.so.5 => /usr/local/Qt-5.4.2/lib/libQt5Quick.so.5 (0x76c45000)
        libQt5Gui.so.5 => /usr/local/Qt-5.4.2/lib/libQt5Gui.so.5 (0x767ae000)
        libQt5Core.so.5 => /usr/local/Qt-5.4.2/lib/libQt5Core.so.5 (0x7626b000)
        libQt5Qml.so.5 => /usr/local/Qt-5.4.2/lib/libQt5Qml.so.5 (0x75c22000)
        libQt5Network.so.5 => /usr/local/Qt-5.4.2/lib/libQt5Network.so.5 (0x75b32000)

結果、Qt5.4.2 の方がマウスレスポンスが良く、アニメーションが滑らかであることを確認しています。

> また,ATDEのビルド環境を簡単に切り替えるよい方法をご存知でしたら,教えて頂けないでしょうか。

冗長かもしれませんが、ATDE5 を2つ用意し、1つを従来環境用、もう1つを Qt5.4.2 環境用として使う方法はいかがでしょうか?

s-hosoda

2016年8月23日 19時33分

笹山様

ありがとう御座います。

教えて頂いた手順でサンプルアプリの起動中にマウスレスポンスが明らかに改善することが確認できました。
そして,残念ながら開発中のアプリでは同様の手順でレスポンスの改善が見られないことも確認できました。
5.6.1では,同じやり方でやはり先のエラーが出てしまいます。

>冗長かもしれませんが、ATDE5 を2つ用意し、1つを従来環境用、もう1つを Qt5.4.2 環境用として使う方法はいかがでしょうか?

ありがとう御座います。なるほど,思いつきませんでした。その方法で対応します。

以下の2点について,継続して挑戦したいと思います。
    5.4.2でサンプルアプリとの差異がある原因の解明
    5.6.1での動作確認

s-hosoda

2016年9月23日 13時28分

お世話になります。

以下の環境変数を定義することで,QtのV5.6.1やV5.7.0やでも動作することが確認できました。

export QT_QPA_EGLFS_INTEGRATION=none
export QT_QPA_EGLFS_FB=/dev/fb0

しかし,開発中のソフトウェアにおいてマウスの追従性が改善することはありませんでした。

同僚よりフレームレート或いはリフレッシュレートを下げることで,改善が見れないか確認してみてはと,
アドバイスをもらったのですが,armadillo-840でこれらを調整する手段はあるでしょうか。