本文へスキップ

YSERVER 1.7、Vulkan 1.2に対応し4KでのVRAM使用量を削減

Rust製X11ディスプレイサーバーのYSERVER 1.7が、4KでのVRAM使用量を2-4GBから約1.2GBに減らした。X.Orgの0.9GBに迫る水準だ。古いIntelグラフィックス向けにVulkan 1.2対応も加えた。

著者 Tech AI Wire Team

3 分で読めます

GitHubにあるyserver 1.7.0のリリースページのスクリーンショット。What's Changedという見出しの下に変更点が並ぶ。

数字で見る

YSERVER 1.7 VRAM on 4K, down from 2-4GB
1.2GB
X.Org Server on the same 4K setup
0.9GB
budget for the freed-pixmap cache
64 MiB
pull requests in the release
40+
Graphics memory on a 4K display
YSERVER before 1.7 (high end)
4GB
YSERVER before 1.7 (low end)
2GB
YSERVER 1.7
1.2GB
X.Org Server
0.9GB

ゼロからRustで書かれたX11ディスプレイサーバー、YSERVER 1.7が、4K画面でのグラフィックスメモリ使用量を2-4GBから約1.2GBに減らした。Phoronixによると、ほとんどのLinuxシステムで標準となっているX.Org Serverは、同じ構成で約0.9GBを使う。今回のリリースはVulkan 1.2対応も加えており、古いIntelグラフィックスも動作対象に入る。Phoronixが「大部分がClaude Codeによって作られた」と評するプロジェクトにとって、既存の主流サーバーとの差は今や小さい。

YSERVER 1.7で変わったこと

X11は、多くのLinuxデスクトップが今もウィンドウの描画に使う古いプロトコルだ。ディスプレイサーバーは、このプロトコルを話し、画面にピクセルを表示するプログラムである。YSERVERは、レガシーな部分を省きつつ、モダンなデスクトップでX.Org Serverを置き換えることを目指している。

最大の問題はメモリだった。VRAMはグラフィックカード上のメモリで、YSERVERはX.Orgよりはるかに多くのVRAMを使っていた。GitHubのリリースノートによると、今は「ウィンドウは表示されている間だけVRAMを保持する」。解放された小さなpixmap、カーソル画像、その他の残りものは「もうVRAMに溜まらない」。pixmapとは、サーバーが描画用に保持する画面外の画像である。

Linux Compatibleは、新しいキャッシュルールの詳細を伝えている。解放されたpixmapは今後、64 MiBの上限を持つキャッシュに入る。サーバーは60秒間アイドル状態が続くと、このキャッシュを縮小する。

変更点内容出典
Vulkan 1.2対応IntelのHaswellとIvy Bridgeのグラフィックスで動作Linux Compatible
VRAMのルール4Kでの使用量を2-4GBから約1.2GBに削減Phoronix
GLXのリーク修正X11向けのOpenGLの橋渡し役であるGLXのメモリリークを修正Phoronix
フォントのキャッシュインデックス化・キャッシュ化された検索と、圧縮された.pcf.gzフォントLinux Compatible
CRTC変換分数スケーリング、仮想モニター、回転と反転GitHub
XInputレジストリ物理的なキーボード、マウス、ペンごとに1つの入力デバイスLinux Compatible
BIG-REQUESTS16MBの大きなX11リクエストを受け付けるPhoronix

フォント関連の作業で、アプリの起動の遅さが解消された。リリースノートによると、CDEとMotifのアプリは今や「Xorgと同じ速さで起動する」。CDEは1990年代のCommon Desktop Environmentで、古いが、X11互換性を厳しく試すテストになる。今回のリリースには40件を超えるプルリクエストがまとめられている。

プロジェクトが自らの成果を検証する方法

注目に値するのはテストの仕組みだ。Linux Compatibleによると、vng-suiteと呼ばれるスイートが、数十のシナリオにわたってYSERVERの動作を稼働中のX.Orgインスタンスとバイト単位で比較する。プロジェクトはX.OrgのX Test Suiteも実行しており、これには約50分かかる。

これはAIの助けを借りて書かれたコードにとって重要だ。リポジトリにはAGENTS.mdとCLAUDE.mdのファイルがあり、コーディングエージェントに指示を与える。信頼できるリファレンスとバイト単位で比較することで、AIが書いたあらゆる変更に明確な合否が出る。

設計はあえてシンプルに保たれている。YSERVERはシングルスレッドで、1つのスレッドがすべての状態を所有する。Linux Compatibleによると、非TrueColorのビジュアル、間接GLX、DDXドライバーインターフェース、エンディアンが入れ替わったクライアントは削除されている。

動作環境

プロジェクトは、AMD Ryzen、Intel Core、Nvidia GTX 1050、Snapdragon X1、Asahi Linux上のApple M1とM2、virtio-gpuの仮想マシンでテストされている。リポジトリには、Cinnamon、MATE、XFCE、KDE Plasmaを含む14を超えるウィンドウマネージャーとデスクトップが挙がっている。LinuxとFreeBSDでテストされており、MITライセンスで公開されている。

パッケージはArch User Repositoryから入手できるほか、Fedora、Debian、Ubuntu、Alpine向けのバイナリもある。プロジェクトのGitHubスター数は約590だ。当サイトが9月9日にYSERVER 1.5とReverse PRIME対応を報じた時点では557だった。

開発者にとっての意味

既存のシステムの代替を書くなら、まずこのテストの考え方をまねるべきだ。稼働中のリファレンス実装とバイト単位の比較スイートがあれば、「動いているようだ」が測定可能な結果に変わる。それこそが、AI支援による大規模な書き直しをレビュー可能にする。

古いIntelのノートPCを持っているなら、1.7はそこで試す価値のある最初のバージョンだ。ディストリビューションのパッケージかAURからインストールしてほしい。日常の作業を任せる前に、自分のウィンドウマネージャーで試すべきだ。

4K画面では、X.Orgより約33%多いグラフィックスメモリを見込んでおく必要がある。Phoronixの数値では1.2GB対0.9GBだ。ほとんどの単体GPUでは問題にならない。ただし、システムメモリを共有する内蔵グラフィックスでは依然として影響がある。動かなくなったアプリがあれば報告してほしい。比較スイートは、誰かが書き留めたシナリオしかテストできないからだ。

出典

  1. YSERVER 1.7 Rust X11 Server Narrows Memory Usage Difference With X.Org Server - Phoronix
  2. YServer 1.7.0 Adds Vulkan 1.2 Support and CDE Compatibility to From-Scratch Rust X11 Server - Linux Compatible
  3. Releases - joske/yserver - GitHub

関連記事