ディスカッション (11件)
Wine 11が、Linux上でWindowsゲームを実行する仕組みをカーネルレベルで根本から書き直しました。この大規模なアップデートにより、ゲームの実行速度が劇的に向上。Linuxゲーミングのパフォーマンスが次なるステージへ進化します。
macOSでも同じことをしたいなら、ここにコントリビュートするのが良さそうだね:https://github.com/Alien4042x/Wine-NTsync-Userspace-macOS-backend
Wineって、妙に自己完結的というか、ある種自滅的なところがあるかも。Linuxでのゲームサポートが広がればデスクトップOSとしての実用性が上がってシェアも伸びる。そうなると、開発者がLinux版を最優先事項として作るようになって、結局Wineが不要になるっていうサイクルなんだよね。
こういう投稿を読んでると、いつも自分が偽物(インポスター)みたいに感じちゃうよ。みんなこんな低レイヤーなことやってるのに、自分はただのシンプルなCRUDアプリを作ってるだけだもんな。
「Dirt 3が110.6 FPSから860.7 FPSへ」「Resident Evil 2が26 FPSから77 FPSへ」「Call of Juarezが99.8 FPSから224.1 FPSへ」「Tiny Tina's Wonderlandsが130 FPSから360 FPSへ」...すごいな。これほど大幅な速度向上のチャンスが眠ってたなんて、低レイヤーの詳細はよくわからないけど大歓迎だよ!Protonに資金を注ぎ込んでくれたValveに感謝だね。
Wineは本当に無限にリスペクトしているプロジェクトだよ。確信はないけど、Wineの開発作業の多くは退屈で報われないものなんじゃないかと思う。過去30年間のWindowsのドキュメント化されている挙動もされていない挙動も、すべて完全に一致させようと掘り下げるのは楽しそうじゃない。でも、そういう細かいエッジケースを全部潰していくからこそ、Wineは実用的な製品になってるんだよね。今や多くのゲーム(特に古い作品)がWindowsよりWineの方が快適に動くっていう事実は、細部への凄まじいこだわりと忍耐力の賜物だと思う。彼らには称賛しかないよ。
もしWineの開発者がこれを読んでいたら、2026年のCarolina Code Conferenceでこのトピックについて話してほしいな。登壇者の募集(CfS)は3月31日までだよ。
ntsyncにワクワクしすぎる前に言っておくと、パフォーマンスの向上は(数少ない例外を除いて)緩やかで、だいたい数パーセント程度だよ。この極端な伸びは、fsyncなしのバニラなWineと比較した結果なんだ。Linuxで重いゲームを遊んでる人なら、普通はfsyncを使ってるはず。これは記事でも触れられてるけど、おまけ程度に扱われてる。両方でベンチを取ってみたけど、向上は本物だけど期待しすぎないように。タイトルによっては、少しパフォーマンスが落ちることもある。
これは本当に素晴らしい成果だよ!LinuxがWindowsを実質的に再実装して、しかも本家よりうまくやってるのを見るのは本当に痛快だね。一方でMSは、自社ソフトのあらゆる面を改悪することに必死みたいだけど。
データ構造の保存に共有メモリを使って、スレッドの待機に1スレッドあたり1つのeventfd(他を待機しないならfutex)を使えば、ユーザー空間でも実装できそうな気がするんだよね。それなら正確で、パフォーマンスも同等かそれ以上になるはず。プロセスが落ちた時の堅牢性やセキュリティは犠牲になるけど、Wineの用途なら大きな問題じゃない。でもesyncもfsyncもこれをやっていないのはなぜ?Claudeによれば「95%のゲームでシンプル(だけど正確さは劣る)なアプローチが機能していたから、誰も複雑な共有メモリのウェイターリストのロジックをデバッグする気が起きなかった。そして正確さが本当に重要になったときには、カーネルが最適な場所だった」らしい。これって本当かな?
これまで何年もValveに払ってきた何千ドルかの一部が、巡り巡ってみんなのためにWineを改良することに使われているのは嬉しいな。このプロジェクトのデベロッパーやコントラクターのうち、どれくらいがValveから給料をもらっているんだろう。