OpenGL および Vulkan API の無料実装のリリース (Mesa 22.3.0) が公開されました。 Mesa 22.3.0 ブランチの最初のリリースは実験段階であり、コードが最終的に安定した後、安定バージョン 22.3.1 がリリースされます。
Mesa 22.3 では、Vulkan 1.3 グラフィック API のサポートは、Intel GPU の anv ドライバー、AMD GPU の radv、Qualcomm GPU の tu、およびエミュレーター モード (vn) で利用できます。 Vulkan 1.1 のサポートは lavapipe (lvp) ソフトウェア ラスタライザーに実装され、Vulkan 1.0 は v3dv ドライバー (Raspberry Pi 4 の Broadcom VideoCore VI GPU) に実装されます。
Mesa は、4.6、iris (Intel)、radeonsi (AMD)、zink、および llvmpipe ドライバーに対して完全な OpenGL 965 サポートも提供します。 OpenGL 4.5 サポートは、AMD (r600)、NVIDIA (nvc0)、および Qualcomm Adreno (freedreno) GPU、virgl (QEMU/KVM 用の virgil4.3D 仮想 GPU) の OpenGL 3、および d4.2d3 ドライバー (OpenGL を構成するレイヤー) の OpenGL 12 で利用できます。 DirectX 12 上で動作します)。
主な革新:
- Qualcomm Adreno GPU 用の freedreno ドライバーは OpenGL 4.5 グラフィックス API のサポートを提供し、エミュレーター ドライバー (vn) は Vulkan 1.3 API をサポートします。
- Panfrost ドライバーは、ディスク上にシェーダーをキャッシュする機能を実装し、Mali T620 GPU のサポートを追加します。 このドライバーは、OpenGL 3.1 仕様および OpenGL ES 3.1 と互換性があります。
- RADV (AMD) Vulkan ドライバーに、GFX11/RDNA3 GPU (Radeon RX 7000 シリーズ) のサポートが追加されました。 レイ トレーシングのコードが最適化されました。 R8G8B8、B8G8R8、R16G16B16 ピクセル フォーマット、および 64 ビット頂点バッファー フォーマットのサポートが追加されました。 VK_EXT_extended_dynamic_state2 拡張機能のサポートを決定する、extendedDynamicState2PatchControlPoints フラグのサポートが追加されました。 Radeon レイトレーシング アナライザーが統合されています。
- このパッケージには、クロスプラットフォームの並列コンピューティングを組織するための API と C 言語の拡張機能を定義する OpenCL 3.0 仕様の実装を備えた Rusticle ドライバーが含まれています。 このドライバーは Rust で書かれ、Mesa で提供される Gallium インターフェイスを使用して開発され、Mesa に存在する Clover OpenCL フロントエンドの類似物として機能します。 Clover は長い間放棄されており、Rusticl は将来の代替として位置付けられています。 Rust とrusticl のサポートはデフォルトで無効になっており、明示的なオプション「-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021」を使用してビルドする必要があります。 ビルドする場合、追加の依存関係として、rustc コンパイラー、bindgen バインディング ジェネレーター、LLVM、SPIRV-Tools、および SPIRV-LLVM-Translator が必要です。
- RadeonSI ドライバーには、デフォルトで OpenGL を介したマルチスレッド レンダリングのサポートが含まれています。
- データを単一のファイルに保存する新しいタイプのシェーダ キャッシュである Mesa-DB が導入されました。
- OpenGL 拡張機能のサポートを追加しました。
- llvmpipe の GL_ARB_shader_ Clock。
- Zink の GL_KHR_blend_equation_advanced_coherent。
- llvmpipe の GL_NV_shader_atomic_float。
- Vulkan 拡張機能のサポートを追加しました。
- Lavapipe の VK_KHR_shader_ Clock。
- RADV、lavapipe の VK_EXT_attachment_フィードバック_ループ_レイアウト。
- RADV の VK_KHR_global_priority。
- RADV の場合は VK_EXT_load_store_op_none。
- RADV の VK_EXT_mutable_descriptor_type。
- LVP の VK_EXT_shader_atomic_float。
- LVP の VK_EXT_shader_atomic_float2。
- v3dv の VK_EXT_image_robustness。
- Lavapipe、RADV、および ANV の VK_EXT_extended_dynamic_state3。
- RADV の VK_EXT_extended_dynamic_state2。
- v3dv の VK_EXT_pipeline_robustness。
- ANV の VK_EXT_mesh_shader。
出所: オープンネット.ru