Mirがサポートするグラフィックプラットフォーム
「Mir」がサポートするグラフィックプラットフォームに関する情報が以下で紹介されています。Mirとは
「Mir」は次世代のディスプレイサーバーです。デスクトップやモバイルデバイス、そしてIoTまで、幅広い分野をサポートするディスプレイサーバーです。
デスクトップPCから見れば、既存のXサーバーを置き換えるソフトウェアになります。
「Mir」に関する詳細は、以下を参照してください。
- 公式サイト:Mir Display Server
- ユーザー向けドキュメント:Getting and Using Mir
- 開発者向けドキュメント:Welcome to Mir
- GitHub:MirServer/mir
- コミュニティー:Mir category
実行時にモジュールを読み込む
「Mir」は、実行時に読み込み可能なモジュールを利用してグラフィックプラットフォームや入力プラットフォームをサポートしています。これにより「Mir」上で構築されたアプリケーションは、幅広いグラフィックスタックで動作できるようになっています。
このプラットフォームは「Mir」によって提供されるプラットフォームだけでなく、サードパーティーによる開発も可能で、サードパーティー製のプラットフォームも存在しています。
mesa-kms
最も幅広く利用されそしてテストされているプラットフォームは、「mesa-kms」です。「mesa-kms」は、オープンソースのグラフィックドライバーを提供する「Mesa」との組み合わせで動作し、Intel GPUベースのデスクトップや様々なSBC及びデバイスで使用されます。
グラフィックプラットフォーム一覧
「Mir」はサポートするグラフィックプラットフォームの概要一覧です。プラットフォーム | 状態 | 概要 |
---|---|---|
mesa-kms | リリース済み | オープンソースMesaドライバーとの組み合わせで動作 (Mirでテスト済みのドライバーと未テストのドライバーがあるが、それらのドライバーも原則動作するはず) |
mesa-x11 | リリース済み | Mir-on-X11環境を提供(主に開発向け) |
eglstream-kms | リリース済み | NVIDIA GPUドライバーとの組み合わせで動作 |
android | リリース済み | Androidドライバー向け (一般的にAndroidドライバーのみ提供されるスマフォ向け) UBportsがlibhybrisコンテナーとの組み合わせで開発・利用 |
dispmanx | 開発中 | BroadcomプロプライエタリーDispmanX APIとの組み合わせで動作 |
wayland | 開発中 | Mir-on-Wayland環境を提供 ネストになったコンポジターや開発向け |
それぞれのプラットフォームは、システムにインストールされている「Linux kernel」やユーザースペースドライバーに依存します。
それぞれに適切な「Linux kernel」やユーザースペースドライバーが必要です。
「Mir」は起動時に上記のプラットフォームがサポートされているかチェックし、サポートされているプラットフォームの中から最善のプラットフォームを選択します。
ハードウェアとドライバーの選択
「Mir」を使用するシステムを構築する場合、「Mir」と互換性のあるハードウェアやドライバーが用意できているか確認するだけでなく、 アプリケーションに関しても確認する必要があります。アプリが3Dやビデオアクセラレーションを要求する例
例えばアプリが3Dやビデオアクセラレーションを使用する場合、用意したハードウェアやドライバー上でアプリが必要とするそれらの機能がサポートされているか確認する必要があります。(アプリはそれらの機能をライブラリー経由で利用する可能性もあります。)
この時オープンソースのドライバーとプロプライエタリ―のドライバーでは、サポートしている機能に違いがあるでしょう。
特に動画のデコードには、グラフィックプラットフォームによって様々な違いが出てくるでしょう。
Waylandとドライバー
アプリケーションが「Wayland」を使用する場合、ドライバーによっては動作に必要な機能を利用できないケースもあります。例えば「Ubuntu 18.04」では、「intel-vaapi-driver」は「Wayland」で利用できません。
この問題は最近のバージョンで修正されていますが、「core18」Snaps側で修正が必要になるかも知れません。
XWaylandとドライバー
「Wayland」をサポートせず「XWayland」上で動作するアプリでは、「XWayland」を通じてGLアクセラレーションのサポートが行われますが、これはグラフィックドライバーに依存するため、より大きな制約がかかります。「Mesa」が提供するIntel GPUドライバーでは動作しますが、それ以外のドライバーでは修正が必要です。
ハードウェアの例
上記リンク先では、以下のハードウェアでの例が掲載されています。- Raspberry Pi 3(GPU:VideoCore IV)
- i.MX6(GPU:Vivante GCシリーズ)
- i.MX8(GPU:Vivante GC7000)