
ゲームやグラフィック作業に Linux をしばらく使用している場合は、オープン グラフィック ドライバーの基礎として Mesa について聞いたことがあるでしょう。 到着 de メサ26.0 これは、 メサ25.3これは、パフォーマンス、Vulkan 互換性、そして AMD、Intel、NVIDIA、そして多くのあまり一般的ではない GPU 向けのドライバーの全体的な洗練において、かなり大きな飛躍です。
このバージョンには、積極的な最適化から、 RADVのレイトレーシングこれには、ACOやNAKなどのコンパイラへの広範な取り組み、新しいVulkan拡張機能、HDRおよびAFBCフォーマットのサポート、ビデオの改善、安定性の修正、そして大幅なコードのクリーンアップが含まれます。 メサ25.3.5これにより、Linux のオープンソース ドライバー エコシステムは、多くのユーザーにとって独自のドライバーを放棄することが完全に現実的になるレベルの成熟度に達しつつあるという明確な認識が生まれます。
表26.0の一般的な更新
26.0ブランチは四半期ごとの機能リリースとしてリリースされ、幅広い Vulkan拡張機能パフォーマンス調整と内部変更。リリースノートでは、いくつかのドライバーにおける重要な拡張機能の導入または導入の促進について、概要レベルで強調しています。
- VK_KHR_メンテナンス10 ANV (Intel)、NVK (open NVIDIA)、RADV (AMD) で有効になっており、動作の改善と小さな API 変更により、最新のグラフィック エンジンの使い勝手が向上しています。
- VK_EXT_shader_uniform_buffer_unsized_array ANV、HoneyKrisp (HK、Apple の Metal 上の Vulkan ドライバー)、NVK、RADV で公開されており、固定サイズなしで UBO 配列を使用できるため、多くの動的リソースを持つ特定のエンジンに非常に便利です。
- VK_KHR_表面メンテナンス1 y VK_KHR_スワップチェーン_メンテナンス1 同等の EXT 拡張機能 (anv、hk、lvp、nvk、radv、tu、v3dv、vn) がすでに存在する場合に昇格され、交換サーフェスとチェーンをより細かく制御できるようになりました。
- VK_KHR_pipeline_binary HoneyKrisp と PanVK で有効になっており、コンパイル済みのパイプライン バイナリの処理が可能になっています。これは、読み込み時間を短縮し、ゲームや負荷の高いアプリケーションでのエクスペリエンスを向上させるために重要です。
- VK_KHR_堅牢性2 これは、すでにサポートされているすべてのドライバー (panvk v10+、HK、hasvk、NVK、Turnip、Lavapipe、Venus) の EXT 拡張機能から昇格され、範囲外のアクセスに対する堅牢性が強化されます。
OpenGL、Gallium3D、数十のGPUのサポートなど、従来の改善に加えて、Mesa 26.0では、 ヴルカンの木 RADV、ANV、NVK、PanVK、Venusなど、ますます重要になってきている ゲーム環境 (Proton/Steam、Lutris、Heroic など) だけでなく、仮想化、エミュレーション、プロフェッショナル アプリケーションでも使用されています。
RADV(AMD)のレイトレーシングとパフォーマンスが大幅に向上
このバージョンの強みの一つは、 AMD GPUのレイトレーシング RADVドライバを通じて。Valveと他の協力者たちは長い間パフォーマンスの微調整を行っており、その成果はMesa 26.0に顕著に表れています。 スケジューラ ACO、BVH 管理、加速構造の更新、レイ トレーシング シェーダーのパッケージ化方法など。
ユーザーが共有した実際のテストでは、改善点が次のように述べられています。 レイトレーシングのパフォーマンスが8%向上 Proton(例えば「Supreme」プリセットとGE-Proton10-28)を使用した高負荷タイトルでは、Ryzen 5 7600、32GBのRAM、比較的新しいLinuxカーネルといったハードウェア上で、ゲームプレイ速度が向上しています。GameTechBenchのような合成ベンチマークでは、 特定のシナリオでは50%ただし、これらの数値は常に注意して受け止める必要があります。テストにおける特定の内部変更や異なる構成設定が原因となっている可能性があります。
コードにはACOコンパイラを改良するための多大な努力が表れています。最適化タグが追加・修正され、パターンが改善されています。 fma最小/最大演算、マージ演算、ベクトル化パスが再編成され、レジスタの読み書きハザード、NOPの使用、レイテンシ制御といった側面も改良されています。これらはすべて、シェーダーの不要な処理を削減することを目的としています。 ハードウェアをより有効に活用する 後期のRDNAおよびGCNシリーズの。
もう一つの重要な要素は、 HPLOC 共通Vulkanレイヤーにおける(高性能LBVH / BVH最適化)は、RADVがTLAS/BLAS構築の改善、構造体の実効サイズ削減、そして完全ビルドとBVH更新の両方の改善に活用しています。ノード数が調整され、ノードが組み込まれています。 box16 適切な場合、非アクティブなプリミティブのケースはより適切に制御され、これらの変更は診断用の RRA (Radeon Raytracing Analyzer) サポートと統合されます。
RADVとビデオで紹介されたVulkan拡張機能
レイトレーシング以外にも、Mesa 26.0では以下の機能が拡張されています。 RADV でサポートされている Vulkan 拡張機能 ビデオと高度なワークフローにリンク:
- VK_VALVE_ビデオエンコード_rgb_変換は、RGB 変換によるビデオ エンコードを容易にし、特定のマルチメディア パイプラインに役立ちます。
- VK_EXT_カスタム解決これにより、カスタムの色/深度解像度の実装が可能になり、MSAA ルーティングと後処理効果を微調整する最新のエンジンにとって非常に興味深い追加機能となります。
- サポートの全般的な改善 ヴルカンビデオ H.264/H.265/AV1などのコーデックでは、多数のパッチが使用されている。 radv/ビデオ y radeonsi/vcn: DPB のサイズ、アライメント、参照管理、非アライメント解像度、DPB なしのイントラのみのモード、結合書き込み、ビデオ画像エイリアシング モード、量子化マップ、画面コンテンツ ツールなど。
このビデオ作品全体は、 VA-API フロントエンドエンコード/デコードと後処理ロジックを分離してクリーン化し、ヘッダーとテーブルの補助構造 (radeon_bitstream) を再利用し、さまざまなドライバーで MPEG4 などの古いサポートを削除して、現在使用されている H.264、H.265、AV1 などのコーデックに重点を置いています。
Intel ANV と Iris: メンテナンス 10、URB、パフォーマンス
Intelの面では、Mesa 26.0はVulkanドライバに多数の構造的改善をもたらしている。 ANV OpenGLドライバでは 虹彩新しい拡張機能と複雑な機能 (メッシュ シェーダー、レイ クエリ、ビデオなど) の安定性の両方に重点を置いています。
ANVはまた、 VK_KHR_メンテナンス10これは、新しい解決フラグのサポート、 添付ファイル ダイナミックレンダーパスと、次のような状態をより適切に制御できます。 HDR解像度 または、特殊な転送機能を持つ添付ファイルの処理。拡張機能も実装されています。 VK_EXT_shader_uniform_buffer_unsized_arrayドライバーを RADV および NVK に合わせて調整します。
広く議論されている点の一つは、体系的な使用への移行である。 NIRにおける内因性URB TCS/TES(テッセレーション制御および評価)シェーダーとメッシュ/タスクシェーダーの両方で、URB(Unified Return Buffer)のロード/ストアが実装されました。URB(Unified Return Buffer)アクセスパスの大部分が書き換えられ、Xe2以降のレベルのバイトオフセットが計算され、テッセレーションレベルのスロット割り当てが並べ替えられ、入出力マッピングが一般化され、その後のオフセット最適化が適用されます。 nir_opt_offsets.
Irisはこれらの最適化の恩恵を受けるだけでなく、次のような具体的な改善も導入しています。 GL_KHR_シェーダー_サブグループ_* Gfx ≥ 9では、実行可能な範囲で、EU(実行ユニット)検証の修正、マージされたデバイスにおけるスクラッチIDの調整、バインディングテーブルとプッシュ定数の処理に関する内部リファクタリングが実装されています。[詳細]用のツールも強化されています。 PERFETTO パフォーマンス測定 (intel_measure、perf、pps) では、最小サンプリング期間が短縮され、Xe2 や Xe3 などの新世代に対するサポートが拡張されました。
Open NVIDIA: NVK、NAK、Turing/Blackwell ドライバー
NVIDIAのオープンソースの世界では、Mesa 26.0には次のような新機能が搭載されています。 NVK (Vulkanドライバ)とコンパイラ NAKまた、Nouveau スタックの改善、gfxstream および仮想環境との統合も行われます。
一方、NVKは次のような重要な拡張機能のサポートを獲得しています。 VK_EXT_破棄長方形これにより、フレームバッファの任意の領域をパイプラインレベルで破棄できるようになり、 VK_KHR_メンテナンス10 y VK_EXT_shader_uniform_buffer_unsized_arrayサポートも発表されています VK_KHR_pipeline_binaryパイプライン バイナリを保存および再利用する機能において PanVK および HoneyKrisp と一致します。
重要な詳細が導入され、 パイプライン/バイナリキャッシュUUIDのチップセット特定の画像のインポート/エクスポートの場合に圧縮を無効にする、Nouveau の最新バージョン (Nouveau 1.4.2 など) で圧縮を再度有効にする、最大バッファ ストレージ範囲を最大バッファ サイズに調整する、Tegra で sRGB および ASTC 形式を正しく処理する、など。
NAK コンパイラに関しては、顕著な徹底的なクリーニングと改善作業が行われており、次の内容が追加されました。 シェーダーモデル情報 シェーダモデル情報をカプセル化するために、HMMAやCS2Rなどの命令レイテンシはAmpere以降のアーキテクチャで改良され、 パス前スケジューラ 基本ブロックをまたぐ別の遅延、バインドレス ハンドラーがコピーされて伝播され、ハードウェアがサポートする SM あたりのワープの最大数が利用され、Blackwell、Ada、Ampere などのファミリ間で動作が調整されます。
さらに、Turing GPU(RTX 20)では、NAKコンパイラに関連する非常に具体的な改善がNVKドライバに統合されました。ドライバは次のように切り替わります。 SMあたりのワープの最大値を使用する 各モデルでサポートされているマルチプロセッサあたりのアクティブスレッド数をより適切に調整します。これにより、特に計算負荷の高いワークロード(ゲーム、3Dエンジン、その他の高負荷アプリケーション)において、ハードウェアの利用効率が向上します。公式の数値は発表されていませんが、達成が期待されます。 より高い安定性と流動性 特定の負荷下では、すべてのケースで FPS の増加が劇的ではない場合でも同様です。
NouveauとNVIDIAのオープンドライバーの着実な進歩
より広い文脈では、 NVIDIAオープンドライバー NouveauとNVKはどちらも、数年前よりもはるかに速いペースで進化しています。Mesa 26.0では、drm-shimの修正、NVIDIA向けの新しいDRM修飾子のサポート、ステートキャプチャ/再生の改善、最新の画像圧縮との互換性(例えば、Tegra/NVKを含む様々なドライバのVK_EXT_texture_compression_astc_hdrを使用したASTC HDRなど)、そしてVulkan WSIと同期に関する継続的な作業など、細かな追加が続けられています。
最近の比較テストでは、オープンドライバーのパフォーマンスがすでに向上し始めていることが示されています。 真剣に受け止められる一部のシナリオでは、プロプライエタリドライバと比べても遜色ありません。GTX 980などのカード、中間世代のカード、さらには現在のAMDハードウェアとの比較も行われています。まだ改善の余地はあるものの、その差は縮まっており、多くのLinuxユーザーにとって、オープンソースドライバは既に十分であるか、非常に近いものとなっています。
PanVK と Panfrost: ARM 上の Vulkan、AFBC、キャッシュの改善
ARM GPU側(Mali)では、ファミリー パンフロスト / PanVK Mesa 26.0 では膨大な作業が行われています。PanVK をはじめ、以下のサポートが追加されます。
- VK_EXT_image_drm_format_modifier v7 では、DRM とのより適切な統合と、修飾子 (AFBC、特殊なタイリングなど) を含む形式の処理に重要です。
- VK_KHR_サンプラー_ycbcr_変換 v7 では、YUV テクスチャとより複雑なビデオ ストリームの使用が可能になります。
- VK_EXT_multisampled_render_to_single_sampledTurnip (Qualcomm) と同様に、テクスチャを単一のサンプルに直接マルチサンプリングできます。
- のサポート スパース画像(sparseResidencyImage2D および sparseResidencyStandard2DBlockShape) v10+ では、部分的なバインド、行/レイヤーの配置、および特定のスパース レジデンシー クエリのすべてのインフラストラクチャを備えています。
- VK_KHR_pipeline_binary メモリとディスク上のキャッシュ システムにより、ゲームやアプリケーションを再実行するときにシェーダーとパイプラインを再コンパイルするコストが削減されます。
Panfrostは、新しいAFBCフォーマット(16ビットと4:2:2を含む)との互換性を追加し、次のようなフォーマットを追加します。 R16G16_R16B16_UNORMより多くのテクセルバッファ(3コンポーネント形式を含む)を公開し、タイルバッファサイズの計算を改良しました。また、組み込み機能も導入されています。 ピクセルローカルストレージ(PLS) そしてそれは実装されている GL_EXT_シェーダー_ピクセル_ローカル_ストレージ Panfrost v6+ では、メイン メモリにアクセスすることなくピクセル レベルでデータを保存および取得できるため、特定の高度なエフェクトに非常に役立ちます。
Bifrost (pan/bi) コンパイラは、8 ビット命令のベクトル化、ベクトル phi の処理の改善、多数の NIR パスを一種の統合された「後処理」に転送し、コンパイラを共通ライブラリに明確に分離するなど、大幅な再構築が行われています。 libpanfrost_コンパイラこれらすべてにより、パフォーマンスが向上するだけでなく、メンテナンスや v12+ などの新しいアーキテクチャの組み込みも容易になります。
Venus、HoneyKrispなどの特別なドライバー
Mesa 26.0 には、特定の環境ではあまり知られていないが非常に関連性の高いドライバーの改善も多数含まれています。 Venusvirtio-gpu (仮想化環境やコンテナ環境で広く使用されている) で Vulkan を使用するための Vulkan 変換ドライバーが、以下のサポートを獲得しました。
- VK_KHR_協同マトリックス, VK_KHR_シェーダー_bfloat16, VK_EXT_シェーダー_float8 y VK_EXT_shader_uniform_buffer_unsized_array最新のコンピューティングおよび ML 機能に適合します。
- VK_EXT_メッシュシェーダーこれにより、メッシュ/タスク シェーダーを仮想化環境内で実行できるようになります。これは数年前にはほとんど SF のように思えたことでした。
- 非同期存在、キューサポート スパースのみ、現在の待機/現在の ID との統合が改善され、 dmabufs 処理、AHB BLOB、暗黙的な同期が微調整されました。
ドライバ ハニークリスプ Apple環境でMetal経由でVulkanを提供する(HK)は、一連の変更を受けています。修正が含まれています。 整数内積の性質のサポートが追加されました VK_KHR_プレゼンID/プレゼンID2 y VK_KHR_プレゼンス待機/プレゼンス待機2発表される VK_EXT_shader_uniform_buffer_unsized_arrayが有効になっています VK_KHR_pipeline_binary また、ホスト イメージ コピーの詳細と ASTC 形式の HIC 互換性の調整など、多数の小さな変更が行われました。
その他のドライバーとしては、 パワーVR(pvr), v3dv/v3d (ラズベリーパイ)、 ヴィルティオ/ヴィルグル, ラバパイプ (CPUによるVulkan)と D3D12/ダース また、多数の修正、コードのクリーンアップ、新しい拡張機能も追加されています (たとえば、pvr の VK_KHR_relaxed_block_layout と VK_KHR_storage_buffer_storage_class、gfxstream の VK_EXT_blend_operation_advanced と VK_EXT_frame_boundary)。
OpenGL、Gallium、コンパイラ(NIR、ACO など)の改善
Vulkanが注目を集めていますが、Mesa 26.0には多数の OpenGL、Gallium、NIRコンパイラの改良複数の最適化パスが再構築され (定数の折りたたみ、代数、コピープロパティ、DCE、CSE)、フラグが統合されます。 fp_math_control 命令ごとに(符号付きゼロ、NaN、無限大の正しい処理を含む)、RADV、Radeonsi、Intel、Broadcom などのドライバーでの冗長パスの使用がクリーンアップされます。
NIRでは、次のような新しい固有値が導入されています。 ピクセルローカルストレージ新しい浮動小数点変換オペコード(f2f16_ru/rd)、ユニフォームサブグループヘルパー、未定義動作(例:bitfield_extract、整数除算、飽和)のより堅牢な処理、そしてループ、拡散、発散、ベクトル解析のための豊富なユーティリティスイートが追加されました。システムも強化されています。 自動化されたユニットテスト 代数パターンの場合、nir_opt_algebraic の定義からテストを生成します。
バックエンドコンパイラ、例えば ACO(AMD) Intelバックエンドは、これらのすべての作業を活用し、より優れた命令パイプラインとレジスタ使用率の向上により、より短いシェーダーを生成します。RA(レジスタ割り当て)パス、呼び出し処理(関数呼び出しと保持レジスタのスピルを一貫してサポートするACOの主要な新機能)、レイテンシ分散、混合命令(異なる丸めモードを持つfma_mix16など)の使用など、すべてが改良されています。
テスト環境、CI、安定性
あまり目立たないが重要な側面は、 継続的テストインフラストラクチャ(CI)Mesa 26.0 には、更新された CI コンテナ、テスト カーネル (Linux 6.17.3 以降など)、ci-tron、mupuf、broadcom、freedreno、Valve などのファームとの統合、およびテスト スイートの調整された更新が付属しています。 VKCTS, GL/GLES CTS, ピグリット, 角度 その他にも、vkd3d などがあります。
xfail のリストが調整され、文書化されます。 よく知られているフレークハードウェアラインナップは拡大しています(Raspberry PiからAMD GFX12 GPU、Adreno A750、Mali G52/G610/G720、さらにはLavapipeのようなCPUベースのバックエンドまで)。これらすべては変更ログに反映されており、多数のコミットで修正されたテスト、安定したテスト、そしてこれまでテストされていなかったシナリオをカバーする新しいナイトリーワークが示されています。
次のようなツール PERFETTO、pps、u_trace、および Intel、AMD、その他のベンダー向けのさまざまな測定統合により、長期的にはますます微妙なボトルネックを見つけて改善できるようになります。
全体として、Mesa 26.0 は、新しい拡張機能と内部の変更の無限のリストをもたらすだけでなく、近年の傾向を強化します。 ますます有能なオープンドライバーVulkanとOpenGLの継続的な改善、実ゲームで既に効果を実感できるAMDのレイトレーシング最適化、NVIDIAのオープンスタック(NVK/Nouveau)の目覚ましい進歩、そしてARM、仮想化、MetalによるmacOSといった従来とは異なるプラットフォームへの大幅な強化。ゲームやグラフィックスを多用する作業にLinuxを日常的に使用している方にとって、このバージョンは、リリースごとに開発が継続的に進んでいることを踏まえ、インストールして試してみる価値のあるアップデートの一つです。