SDL は、C プログラミング言語で開発された一連のライブラリであり、マルチメディア操作 (オーディオとビデオ) および画像の読み込みと管理を実行するための基本機能を提供します。
SDLはライブラリです ハードウェアアクセラレーションによる2Dおよび3Dグラフィックス出力などのツールを提供します、これについてはすでに何度も話しました ここのブログで (通常は新しいリリースで)、このライブラリは長い間、X11 ではデフォルトで動作することがわかっていましたが、XNUMX 番目のオプションとして Wayland が使用されていました。
現在、 開発者は SDL3 の新しいブランチに取り組んでいます その主な機能と目新しさの 11 つは (特に)、デフォルトで Wayland を使用することによって XXNUMX が置き換えられたことであり、これは理論的にはライブラリの多くの側面を改善する動きです。
しかし、最近になってから、(少なくとも現時点では)SDL3 ではどちらも満たされないようです。 開発者に要望を出しました、基本的には Wayland プロトコルを使用するように SDL3 ブランチを移行する変更を取り消すことで構成されていました。 Wayland と X11 を同時にサポートする環境ではデフォルトとして使用されます。
Wayland には、サーフェス スリープ ブロッキングの導入と根本的に壊れている FIFO (vsync) 実装に関連する未解決の問題が多数あり、GPU パフォーマンスの低下につながります。
これは、「Mesa やその他のドライバーの FIFO を修正する必要がある」と言っているのではなく、追加のプロトコル (この場合は fifo-v1) がなければ修正できないということです。 1 .
このプロトコルを使用しない場合、vkQueuePresent または glSwapBuffers は、画像の表示後に「フレーム」コールバックのために停止する必要があります。 SteamOS でこれを回避できる唯一の理由は、Gamescope が本質的に fifo-v1 を実装しており、そこでそれを使用しているためです...
平均的なゲームやアプリが X11 よりも Wayland を好むことに利点はなく、現時点ではいくつかのパフォーマンスの低下と使いやすさの低下が見られるだけです。
したがって、fifo-v1 と commit-timing-v1 がリリースされ、少なくとも主要な作曲家向けの安定バージョンがリリースされるまで、この変更を元に戻す必要があります。
が プルリクエストがレビューされ、承認されました SDL の作成者による、 まだコードベースに組み込まれていません。主な理由は、Wayland 環境にサーフェス ロックと FIFO (vsync) の実装に関連する未解決の問題が存在し、パフォーマンスが低下することです。これらの問題は、追加の fifo-v1 プロトコルと commit-timing-v1 プロトコルを実装しない限り完全には解決できません。
次のことが強調されます。 これらの問題を解決しない限り、X11 から Wayland に移行しても大きなメリットは得られません。 一般的なアプリケーションやゲームの場合、 ただし、パフォーマンスが大幅に低下し、機能低下が発生する可能性があります。 したがって、fifo-v1 および commit-timing-v1 プロトコルが承認され、主要な複合マネージャーの安定リリースに実装された後にのみ、SDL から Wayland への移行を再検討することをお勧めします。
この件に関して、重要なことは次のとおりです。 現在、申請受付は「延期」となっております SDL の作成者である Sam Lantinga 氏は、デフォルトで Wayland への移行に関連するこのリクエストを検討することに言及したため、現時点では、上記の問題に対処することを優先しており、それまでに状況は正常化される可能性があります。現時点では、Wayland ベースの環境での評価を向上させ、ユーザーのフィードバックを収集するために、Wayland は SDL 3 テスト バージョンで引き続き有効になっています。
しかし 現時点では、ウェイランドが最終選択になることをすべてが示しているようです問題が解決されず、何よりも最適なパフォーマンスが達成されない場合、デフォルトとしての Wayland の遅延が現実となる可能性があります。
現時点では、新しい SDL 3 ブランチの開発の現在のステータスを確認できます。 これには、さまざまなサブシステムへの変更、互換性に影響を与える可能性のある API の変更、および非推奨の機能の徹底的なクリーンアップが含まれます。たとえば、SDL 3 では、サウンドを操作できるようにコードが完全に再設計され、Vulkan API を介したレンダリング用の新しいバックエンドが 2D レンダリング API に導入され、HDR のサポートが拡張され、透明ウィンドウで動作する API などが追加されました。 。
もしあなたが 進捗状況を知りたい SDL3では、から提供されている試用版を使用できます。 次のリンク。一方、Wayland の遅延に関する議論をフォローアップしたい場合は、そうすることができます。 下のリンクから。