Rustでゼロから開発され、最新のX11プロトコル拡張機能をサポートするX11サーバーyserver 1.5.0がリリースされました。このプロジェクトはXorg Serverのすべての機能を再現することを目的としておらず、最新のデスクトップ環境、ウィンドウマネージャ、アプリケーション、およびグラフィカルライブラリ(GTK、Qt、SDL、GLFW)を実行するために必要な機能に限定されています。テスト済みの環境には、MATE、Xfce、Cinnamon、Sonic、Enlightenmentのほか、icewm、FVWM3、openbox、i3、wmakerなどのウィンドウマネージャが含まれます。プロジェクトコードはMITライセンスで配布されています。
yserverは、複数のX11画面を1つにまとめて処理するなど、従来型の特定の機能をサポートしないことを決定しました。 サーバ (マルチモニター出力に対応)、TrueColor以外のカラーモード、間接レンダリング(間接GLX)、DDXドライバAPI、レガシーフォント処理、および異なるバイト順序(ビッグエンディアンからリトルエンディアンへの変換)を持つクライアントへの接続。
グラフィック出力は、DRM/KMSおよびMesa Vulkanドライバを介して提供されます。libseatライブラリは、セッション管理と共有入出力デバイスへのアクセスに使用されます。専用のXサーバーに加えて、Xwaylandや他のX11サーバーからの実行をサポートするネスト実行用のバックエンドであるynestも提供されます。サーバー.
この作業は、以下の GPU を搭載したシステムでテストされています: AMD Ryzen 9 6900HX (Rembrandt、RDNA2、RADV mesa ドライバ)、AMD RX580 (Polaris/GCN4、RADV)、Intel i5-7200U (Kaby Lake、ANV mesa ドライバ)、NVIDIA GTX 1050、Snapdragon X1 X1E80100 (Adreno X1、Turnip)、Apple M1 MBA、M2 MBP、および virtio-gpu と仮想 GPU Venus を備えた仮想化システム。この作業は、以下の環境でサポートされています。 Linux そしてFreeBSD。
収録曲:
- リバースPRIMEメカニズムのサポートを追加しました。これにより、外部モニターが専用グラフィックカードのポートに接続されている場合、レンダリングには統合GPUを、表示には専用グラフィックカードのGPUを使用できるようになります。
- GLX_OML_sync_control拡張機能を介して、画面のリフレッシュレートデータをMesaに渡す機能を追加しました。
- 垂直同期が無効になっている(vsync-off)クライアントの遅延を低減するための最適化を実装しました。
- ビデオドライバからGLXベンダー名を抽出して、適切なGLXクライアントライブラリ(例:MesaまたはNVIDIA)を選択できるようにしました。
- DRI3 1.4同期オブジェクトのサポートは、DRM(Direct Rendering Manager)コアサブシステムのdrm_syncobプリミティブを使用して実装されています。
- 画面変更追跡アルゴリズムのサポートを追加し、すべてのコンテンツではなく、変更された部分のみを再描画するようにしました。これは合成画像で使用されます。 サーバー Waylandはwlrootsライブラリをベースにしています。
- X11サーバー側でウィンドウフレームを描画する機能が提供されるようになりました。
- x86_64アーキテクチャに加え、Aarch64アーキテクチャ向けのパッケージアセンブリを実装しました。
出所: オープンネット.ru
