Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RZ/G1E: Wayland版GTK+の更新 #1

Closed
ashie opened this issue Jul 25, 2016 · 17 comments
Closed

RZ/G1E: Wayland版GTK+の更新 #1

ashie opened this issue Jul 25, 2016 · 17 comments
Labels
Renesas RZ/G1 RZ/G1 で再現する問題

Comments

@ashie
Copy link
Contributor

ashie commented Jul 25, 2016

2016-07-25時点におけるRZ/G1EのYoctoレシピ( http://elinux.org/RZ-G/Boards/Yocto )でビルドされるGTK+は3.10。このバージョンのGTK+はWaylandバックエンドにおいてxdg_shellプロトコルをサポートしていない。このため、ウィンドウの移動・リサイズ・最大化等を行うことができない。これらをFirefox側で実装する手もあるが、できればGTK+側をなるべく新しいバージョンに更新したい。

@ashie ashie changed the title RZ/G1E Wayland版GTK+の更新 RZ/G1E: Wayland版GTK+の更新 Jul 25, 2016
@ashie
Copy link
Contributor Author

ashie commented Jul 25, 2016

WestonとGTK+の各バージョンでサポートしているxdg_shellプロトコルのバージョンは以下の通り。

Westonバージョン xdg_shellバージョン
1.5 3
1.6 4
1.7 4
1.8 5
1.9 5
1.10 5(wayland-protocolsに分離)
GTK+バージョン xdg_shellバージョン
3.10 -
3.12 3
3.14 4
3.16 5
3.18 5
3.20 5(wayland-protocolsに分離)

同一バージョンのxdg_shellを使うように合わせないと、うまく動作しないようだ。
RZ/G1EでのWestonとGTK+のバージョンは以下の通り:

  • Weston-1.5.0
  • GTK+-3.10.7

@ashie
Copy link
Contributor Author

ashie commented Jul 25, 2016

  • GTK+3.12は対応が不十分で、うまく動作しないことを確認している。
  • Weston-1.6とGTK+-3.14ではある程度改善することを確認した。
  • 上記バージョン以降のWestonはRZ/G1Eではクラッシュして起動を確認できていない(プロプライエタリドライバの問題と思われる)
  • PC上ではGTK+-3.20で更なる改善が見られる
    • ポップアップウィンドウのサイズが小さくなる問題が解消する

@dynamis dynamis added the Renesas RZ/G1 RZ/G1 で再現する問題 label Jul 26, 2016
@ashie
Copy link
Contributor Author

ashie commented Aug 9, 2016

Weston-1.6とGTK+-3.14では改善することを確認した。

実験のために作ったYoctoレイヤーを以下に置いておく。
名前も含めてまだ整理できていないので、あくまで一時置き場。

https://github.com/ashie/meta-mozwayland

@ashie
Copy link
Contributor Author

ashie commented Aug 9, 2016

ビルド方法は下記の手順に加えて

https://github.com/mozilla-japan/meta-browser/wiki/Build-RZ-G1E

ビルドディレクトリに上記レイヤをcloneし

$ cd $WORK
$ git clone https://github.com/ashie/meta-mozwayland.git

conf/bblayers.confに以下を追加

BBLAYERS += "${TOPDIR}/../meta-mozwayland"

あとは通常と同様にbitbake

$ bitbake core-image-weston

@ashie
Copy link
Contributor Author

ashie commented Aug 31, 2016

同一バージョンのxdg_shellを使うように合わせないと、うまく動作しないようだ。

Weston-1.6とGTK+-3.14ではある程度改善することを確認した。
上記バージョン以降のWestonはRZ/G1Eではクラッシュして起動を確認できていない(プロプライエタリドライバの問題と思われる)

xdg-shellのバージョンをGTK+側で下げるか、weston側で上げる修正を入れれば、weston-1.6のままでGTK+を更に新しいバージョンに上げることができる。GTK+-3.18までは動作を確認できた。ロケーションバー等の動作が改善した。

以下にGTK+-3.16での修正例を置いておく。

https://github.com/ashie/meta-mozwayland/tree/gtk+-3.16

@ashie
Copy link
Contributor Author

ashie commented Sep 1, 2016

GTK+-3.20はwayland-1.9.91以上を要求するので、3.20以上に上げるのは無理か。

@ashie
Copy link
Contributor Author

ashie commented Sep 2, 2016

GTK+-3.18.9に上げていくつか問題を修正したところ、EGL有効化時のフリッカーがまったく
発生しなくなった。
また、非常にad-hocな修正だがウィンドウ枠を表示しないようにしたところ、EGL有効化時の
マウス入力のズレも解消した。

最終版では根本的な見直しが必要だが、フルスクリーンデモ用であれば、ようやく人前に出せる
ようになってきた。

@ashie
Copy link
Contributor Author

ashie commented Sep 2, 2016

以下にGTK+-3.16での修正例を置いておく。

https://github.com/ashie/meta-mozwayland/tree/gtk+-3.16

gtk+-3.18で問題無さそう(現状のgtk+-3.14よりはマシ)なので、masterに3.18を入れて
上記ブランチは消した。

@ashie
Copy link
Contributor Author

ashie commented Sep 2, 2016

デフォルトでは適切なカーソルテーマがインストールされておらず、カーソルが表示されないことがある。マウスで使う場合は何かインストールしておいた方が良さそう。

@ashie
Copy link
Contributor Author

ashie commented Sep 4, 2016

デフォルトでは適切なカーソルテーマがインストールされておらず、カーソルが表示されないことがある。マウスで使う場合は何かインストールしておいた方が良さそう。

カーソルだけではなく、アイコンテーマもデフォルトではインストールされていない。
以下はデフォルトでインストールしておきたいところだが、どこで指定するのがスジだろう?

  • adwaita-icon-theme
  • adwaita-icon-theme-cursors
  • (adwaita-icon-theme-hires)

ちなみに元にしたpokyのgtk+3のレシピではGTKBASE_RRECOMMENDS に adwaita-icon-theme-symbolicが指定されているが、

https://github.com/ashie/meta-mozwayland/tree/gtk+-3.16

では試行錯誤の過程で外してしまっていたようだ(一段落したら、ちゃんとバージョン管理するためにリポジトリを作り直したい)。とはいえRRECOMMENDSなので、これを追加したところでデフォルトでインストールされないのは変わらないようだ。

@ashie
Copy link
Contributor Author

ashie commented Sep 5, 2016

GTK+-3.18.9に上げていくつか問題を修正したところ、EGL有効化時のフリッカーがまったく
発生しなくなった。

GTK+-3.18の場合、ポップアップウィンドウ絡みでまだ色々問題が残っていることを確認している

  • タイトルバーがコンテンツに被さる・ウィンドウサイズにタイトルバーのサイズが加算されない
  • 右クリックメニューが表示後すぐに消える
  • ポップアップメニュー上のボタンを押せない
  • ...

これらの多くはWayland-1.10 + GTK+-3.20で解消することをPC上で確認しているが、RZ/G1EではまだWayland 1.7以上に上げることができておらず、またGTK+-3.18とGTK+-3.20の差分も小さくは無いので、解決は少し時間がかかりそう。

@ashie
Copy link
Contributor Author

ashie commented Sep 9, 2016

カーソルだけではなく、アイコンテーマもデフォルトではインストールされていない。
以下はデフォルトでインストールしておきたいところだが、どこで指定するのがスジだろう?

このレイヤにcore-image-weston.bbappendを追加し、adwaita-icon-themeとadwaita-icon-theme-cursorsを追加インストールするようにした。

@ashie
Copy link
Contributor Author

ashie commented Sep 9, 2016

gtk3-demoでアイコンが全てimage-missing.pngになってしまうのが少し気になる。
原因はadwaita-icon-theme-symbolicがビルドできていないから。
ビルドできない主な原因は、最近のpokyで提供されているgtk-icon-utils-nativeを入れていないからと思われる。(SVGをPNGに変換するのにgtk-encode-symbolic-svgを使用している)

Firefoxの場合、Webコンテンツを表示するだけなら特に問題は無いが、ファイル保存ダイアログ等を開くと、やはりアイコンが全部image-missing.pngになってしまう。

gtk-icon-utils-nativeを入れるのは意外と影響が大きそうなので、後回しにしておく。

@ashie
Copy link
Contributor Author

ashie commented Sep 9, 2016

gtk-icon-utils-nativeを入れるのは意外と影響が大きそうなので、後回しにしておく。

もう少し調べてみたらそうでもなかったので対応しておく。
依存性で引きずられるlibiconv-nativeのビルドに失敗して面倒くさいと思ってしまったが、nativeならば、iconvくらいホスト側にあると仮定してしまって良いだろう。

@ashie
Copy link
Contributor Author

ashie commented Sep 13, 2016

まだ十分では無いが、標準のGTK+-3.10よりはマシなので、以下のビルド手順に追加した。

https://github.com/mozilla-japan/meta-browser/wiki/Build-RZ-G1E

@ashie
Copy link
Contributor Author

ashie commented Oct 4, 2016

現時点の限界までは上げたので、いったんクローズする。
レシピの移動・整理は別issueを立てる。

@ashie
Copy link
Contributor Author

ashie commented Oct 5, 2016

続きは #2#20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Renesas RZ/G1 RZ/G1 で再現する問題
Projects
None yet
Development

No branches or pull requests

2 participants