| メサ | |
|---|---|
| 原作者 | ブライアン・ポール |
| 開発者 | 現在: Igalia、Collabora、Valve、Intel、Google、AMD、VMware旧: Tungsten Graphics [ 1 ] |
| 初回リリース | 1995年2月 |
| 安定版リリース | |
| プレビューリリース | |
| 書かれた | C、 C++、アセンブリ言語 |
| オペレーティング·システム | クロスプラットフォーム( BSD、Haiku、Linuxなど) |
| タイプ | グラフィックライブラリ |
| ライセンス | MITライセンス |
| Webサイト | 公式サイト |
| リポジトリ | gitlab |
Mesa (Mesa3D 、 The Mesa 3D Graphics Libraryとも呼ばれる)は、 OpenGL、Vulkan、その他のグラフィックス API仕様、およびOpenCLのオープンソース実装です。Mesa はこれらの仕様をベンダー固有のグラフィックスハードウェアドライバーに変換します。
その最も重要なユーザーは、主にIntelとAMDがそれぞれのハードウェア向けに開発・資金提供している2つのグラフィックドライバです(AMDは自社のMesaドライバであるRadeonとRadeonSIを廃止されたAMD Catalystよりも優先的に使用しており、IntelはMesaドライバのみをサポートしています)。プロプライエタリなグラフィックドライバ(Nvidia GeForceドライバやCatalystなど)はMesa全体を置き換え、独自のグラフィックAPI実装を提供しています。Mesa Nvidiaドライバを開発するためのオープンソースの取り組みであるNouveauとNVK [ 3 ]は、主にコミュニティによって開発されています。
ゲームなどの 3D アプリケーションに加えて、最新のディスプレイ サーバー( X.org の GlamorまたはWaylandのWeston ) は OpenGL/ EGL を使用するため、通常、すべてのグラフィックスは Mesa を経由します。
Mesaはfreedesktop.orgでホストされており、1993年8月にブライアン・ポール氏によって開始されました。ポール氏は現在もプロジェクトに積極的に参加しています。Mesaはその後広く採用され、現在では世界中の様々な個人や企業からの多数の貢献が反映されています。これにはOpenGL仕様を管理するクロノス・グループのグラフィックスハードウェアメーカーも含まれます。Linuxの開発は、クラウドファンディングによっても部分的に推進されています。[ 4 ]
概要


レンダリングAPIの実装


glxinfo。システム上の OpenGL の Mesa 実装の情報が表示されています。またglxgears、システム上の OpenGL 実装をテストするプログラムも表示されています。MesaはグラフィックAPIの実装を収容するプラットフォームとして知られています。歴史的にMesaが実装してきた主なAPIはOpenGLであり、その他Khronos Group関連の仕様(OpenVG、OpenGL ES 、最近ではEGLなど)も実装してきました。しかし、Mesaは他のAPIも実装可能であり、2013年7月以降はGlide(非推奨)とDirect3D 9でも実装されています。 [ 6 ] MesaはUnix系オペレーティングシステムに限定されていません。例えばWindowsでは、MesaはDirectX上でOpenGL APIを提供しています。
Mesaは、OpenGLなどのグラフィックスAPIとオペレーティングシステムカーネル内のグラフィックスハードウェアドライバ間の変換レイヤーを実装しています。各ハードウェアドライバは独自の実装(およびステータス)を持つため、サポートされるグラフィックスAPIのバージョンはドライバによって異なります。これは特に「クラシック」ドライバに当てはまりますが、Gallium3Dドライバは共通コードを共有しているため、サポートされる拡張機能とバージョンは均一化される傾向があります。
Mesaは、現在のOpenGL準拠状況を示すサポートマトリックス[ 7 ] [ 8 ]をmesamatrix.net
Mesa 12 には、OpenGL 4.2 および 4.3 と Intel Vulkan 1.0 のサポートが含まれています。
Mesa 13では、IntelのOpenGL 4.4および4.5(Intel Gen 8+、Radeon GCN、Nvidia(Fermi、Kepler)のすべての機能がサポートされているが、4.5-LabelのKhronos-Testはサポートされていない)と、コミュニティドライバRADVを介した実験的なAMD Vulkan 1.0のサポートが導入されました。OpenGL ES 3.2はIntel Skylake(Gen9)で利用可能です。[ 10 ]
2017年の最初の安定バージョンは17.0(新年カウント)です。[ 11 ] [ 12 ] [ 13 ]対応機能はOpenGL 4.5、Intel Haswell用OpenGL 4.5、[ 14 ] [ 15 ] Nvidia MaxwellおよびPascal(GM107+)用OpenGL 4.3です。[ 16 ] Maxwell 1(GM1xx搭載のGeForce GTX 750 Ti以上)で大幅なパフォーマンス向上が測定されました。Maxwell-2-Cards(GM2xx搭載のGeForce GTX 980以上)はNvidia情報なしでアンダークロックされています。[ 17 ]
OpenGL 4.4、4.5、OpenGL ES 3.0+用のKhronos CTSテストスイートは現在(2017年1月24日)オープンソース化されており、Mesa 13と17のすべてのテストが無料で実行できるようになりました。[ 18 ]
2017年の2番目の安定版である17.1.0は、いくつかの興味深い改良点を伴って2017年5月10日にリリースされました。Intel Ivy Bridge用のOpenGL 4.2+とIntel Open SWR Rasterizer用のOpenGL 3.3+は、特に注目すべき2つの機能です。[ 19 ] [ 20 ]
OpenGLのモジュール化により、MesaはOpenGLの新しいバージョンの拡張機能を、完全なサポートを謳うことなくサポートすることができます。例えば、2016年7月時点では、MesaはOpenGL ES 3.1だけでなく、5つを除くすべてのOpenGL ES 3.2拡張機能、そしてOpenGLまたはOpenGL ESのバージョンに属さない多くの拡張機能をサポートしていました。[ 21 ]
第3バージョン17.2は、2017年9月から利用可能で、OpenGL 4.6の新機能とIntelおよびAMDの3Dにおける速度向上が含まれています。Nouveau for Keplerでは、OpenGL 4.5のテストで失敗するのはわずか1.4%です。[ 22 ]
2017年12月より第4バージョン17.3が利用可能になりました。多くのドライバに多くの改良が加えられています。OpenGL 4.6はほぼ完全に利用可能です(Spir-Vはまだ対応していません)。AMD VulkanドライバRADVは、Khronos-Testに完全準拠しました。[ 23 ]
2018年の最初のバージョンは18.0で、2017年と同じスキームで2018年3月から利用可能です。[ 24 ] OpenGL 4.6の完全なサポートはまだ準備ができていませんが、多くの機能と改善がRC3で正常にテストされました。ColorsでのIntel i965の10ビットサポートもハイライトです。[ 25 ]実際のLinuxバージョンでのIntel Cannon LakeとAMD Vegaのサポートが新しくなりました。AMD Evergreenチップ(RV800またはR900)は、OpenGL 4.5にほぼ対応しています。古いAMD R600またはRV700チップは、OpenGL 4.xの一部の機能でOpenGL 3.3のみをサポートできます。FreedrenoはAdrenoハードウェアのドライバーで、OpenGL 3.3にほぼ対応しています。
2018年第2版は18.1で、5月から利用可能となっています。ターゲットはIntel ANVおよびAMD RADVドライバのVulkan 1.1.72です。spir-Vを搭載したOpenGL 4.6も主要なターゲットです。AMD R600/Evergreen、Nvidia Tesla以前、Fermi、Kepler、Intel Sandybridge、Ivybridge、Haswell、Broadwellといった古いハードウェア向けのドライバの機能強化と最適化は、今後も継続的に取り組む予定です。ARMアーキテクチャでは、Adreno 3xx/4xx/5xxおよびBroadwell VC4/VC5のRaspi向け版でも大きな改善が見られ、OpenGL ESが主要なターゲットとなっています。
2018年3番目のバージョンは18.2で、9月にカレンダー安定版として利用可能になります。OpenGL 4.6(spir-V搭載)とVulkan 1.1.80は現在開発中です。仮想マシンVIRGL用のソフトドライバーはOpenGL 4.3とOpenGL ES 3.2に対応しています。RadeonSIもOpenGL ES 3.2に対応しています。AMD GCNカード向けRadeonSIのその他の主な特徴としては、ASTCテクスチャ圧縮サポートとOpenGL 4.4(18.1では3.1)の互換モードサポートが挙げられます。IntelおよびAMD向けの新機能Vulkan 1.1とその他の機能が利用可能です。Vulkanの詳細については、Mesamatrixをご覧ください。[ 26 ]
2018年4番目のバージョンは18.3で、2018年12月に安定版18.3.1としてリリースされました。多くの機能の詳細な追加と新しいハードウェアのサポートが主な内容です。OpenGL 4.6への完全対応はまだ完了していません。[ 27 ] [ 28 ]
2019年最初のバージョンは19.0で、3月にリリースされました。OpenGL 4.6への完全対応はまだですが、すべてのドライバーに多くの改善が加えられています。[ 29 ] [ 30 ]
2019年の第2バージョンは19.1です。TGSIからNIRへの移行は、Spir-VとOpenCLを搭載したOpenGL 4.6への移行における主要な機能の一つです。RadeonSIはNIR搭載の開発バージョンでも問題なく動作します。[ 31 ]
2019年の第3バージョンは19.2です。OpenGL 4.6は新しいIntel Irisドライバーのベータ版に対応しています。[ 32 ]
2019年の第4バージョンは19.3です。OpenGL 4.6はIntel i965に対応しており、新しいIrisドライバではオプションです。[ 33 ]
2020年の最初のバージョンは20.0です。Vulkan 1.2はAMD RADVとIntel ANVに対応しています。Intel IrisはIntel Broadwell Gen 8以降ではデフォルトです。[ 34 ] [ 35 ] RadeonSIドライバーは、TGSIではなくNIRをデフォルトで使用するように変更されました。
2020年の第2バージョンは20.1です。多くのドライバーに多くの改善が加えられています。Zinkは、Vulkanを介したOpenGL用の新しい仮想ドライバーです。[ 36 ]
2020年の第3バージョンは20.2です。Zink用のOpenGL 3.0は新機能の一つです。LLVMpipeはOpenGL 4.3以降(20.3では4.5以降)をサポートします。ARM Panfrostは多くのモジュールによって大幅に改善されました。Nouveauでは、Pascal以降でOpenCLの共有仮想メモリが利用可能です。[ 37 ] [ 38 ] [ 39 ]
2020年の第4バージョンは20.3です。v3dとv3dvは、Raspberry Pi 4などのBroadcomハードウェア向けのOpenGLおよびVulkan 1.0用の新しいドライバです。OpenCL 1.2はcloverモジュールで完全にサポートされています。ZinkはOpenGL 3.3以降をサポートしています。LLVMpipe仮想ドライバは現在OpenGL 4.5以降をサポートしており、4.6も視野に入れています。LLVMpipeのVulkanツリーであるLavapipe(当初はVallium [ 40 ]と呼ばれていました)が統合されました。[ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ]
Mesa 21.0では、d3d12がOpenGL 3.0から3.3に統合されます。MicrosoftとCollaboraは、Direct 3D 12を搭載したWindows 10向けに、WSL2で新しいd3d12エミュレーションを開発しました。d3d12はOpenCL 1.2もターゲットとしています。改良されたOpenGLコードにより、ベンチマークSPECviewperfで2倍から5倍の高速化が達成されました。[ 46 ] [ 47 ] [ 48 ] [ 49 ] Mesa 21.0の多くの機能によりパフォーマンスが向上しています。[ 50 ]新リリース21.0.0は2021年3月11日から公開されています。
Mesa 21.1は2021年の2回目のリリースです。[ 51 ] OpenGL 4.6+およびOpenGL ES 3.1+がZinkで利用可能になりました。AMDドライバー600gはNIRに変更可能になり、旧型のRadeon HD 5000および6000カードでより多くの可能性を実現できます。[ 52 ] Qualcomm TurnipはVulkan 1.1+に到達し、ソフトウェアエミュレーションLavapipe Vulkan 1.1+も利用可能になりました。Google VirtIO GPUドライバーVenusとVulkan 1.2+は、低パフォーマンスの試験的な状態でmesaメインツリーにマージされました。[ 53 ]
Mesa 21.2は2021年の3番目のリリースです。Google Virtual Vulkan IOドライバVenusが正式に導入され、Vulkan 1.2+の完全サポート(mesamatrixの詳細)が提供されます。ARM Panfrost:OpenGL ES 3.1+のサポートが利用可能になり、panVKが新しいVulkanドライバです。新しいドライバAsahiにより、ARM Apple M1の初期サポートが開始されました。21.2は2021年8月4日から利用可能です。[ 54 ]
以前から計画されているのは、プログラミング、サポート、バグ修正など多くの利点があるクラシックツリー内の古いドライバーを分割して、最新の Gallium 3D パーツに対応するようにすることです。ここで問題となるのは、人気の高い古いハードウェアを Intel Haswell にサポートし、それ以前は Windows 10 もサポートしていた Intel i965 です。[ 55 ] Intel Gen 4 Graphics から Haswell 向けの新しい Gallium3D ドライバー Crocus が開発中で、2021 年に分割される可能性があり、Gallium3D 領域が完成します。Crocus は 21.2 でオプションとして利用できます。[ 56 ] Amber ブランチは、Radeon R200、Intel i915、965 などの Gallium 3D 機能のない古いドライバー用で、実際のバージョンは 21.3.9 です。[ 57 ]
バージョン22.0ではClassicドライバは廃止されました。Vulkan 1.3はIntel AnvilとAMD RADVで利用可能です。[ 58 ]
マイクロソフトは、Mesa 22.1でd3d12経由のVulkanとして、開発初期段階のWSL 2用の新しいドライバー「Dozen」を導入しました。[ 59 ]
RustiCLは、Intel XEグラフィックス向けの公式OpenCL 3.0準拠バージョン22.3で利用可能です。パフォーマンスはAMD 6700 XTカード搭載のAMD ROCmと同等かそれ以上です。[ 60 ] [ 61 ]
Mesa 23.0の主な開発目標はVulkanのレイトレーシングであった。[ 62 ] [ 63 ]
MicrosoftはWSLでVulkan用のDozenドライバを開発しています。Vulkan 1.0+(80% 1.1および1.2を含む)は、23.1への遅延の後、Mesa 23.2で利用可能になります(mesamatrix参照)。[ 64 ] AMDハードウェア用のRustiCLは23.1で利用可能です。[ 65 ]
仮想マシン用のVirGLはMesa 23.2でOpenGL 4.6にジャンプします。[ 66 ] Apple Armマシン用のApple AsahiはOpenGL 2.1から3.1にジャンプし、OpenGL 3.2と3.3の90%の機能とOpenGL ES 2.0から3.0にジャンプします。[ 67 ]
Microsoftは、Mesa 24.0(Mesa 23.3では4.3以上)のWSL OpenGL 4.6以上をDirectX 12変換ドライバーダースでサポートしています。[ 68 ]
レンダリングAPIの表
| メサバージョン | 初回リリース日 | 最終更新日[ 69 ] | ヴルカン | オープンCL | オープンGL | OpenGL ES | オープンVG | EGL | GLX | ダイレクト3D |
|---|---|---|---|---|---|---|---|---|---|---|
| 1.4 2024年12月3日 | 3.0 2020年11月30日 | 4.6 2017-07-31 | 3.2.6 2019-07-10 | 1.1 2008年12月3日 | 1.5 2014年3月19日 | 1.4 2005年12月16日 | 12 2015-07-29 | |||
| 最新バージョン:23.1 | 2023年5月10日 | 23.1.8 [ 24 ] [ 70 ] | 1.3.244: 1.3+ (Intel Gen8+ から XE、AMD GCN Gen2+ から RDNA3、Lavapipe、Google Venus)、1.1+ (Qualcomm Turnip)、1.0+ (AMD GCN1、Broadcom v3dv、ARM Mali PanVK) | 1.0、1.1、1.2(完全サポート)、3.0(wip、一部の機能は21.1に搭載)、[ 42 ] OpenCL 1.2+および3.0、AMD GCNおよびIntel Xe(Mesa 22.3+)、AMD R600、Nvidia Fermi+(Mesa 23.1+)用の新しいRustiCL | 4.6 (19.3: Intel Gen 8+、20.0: AMD GCN、21.1: Zink、llvmpipe、21.2: Intel Gen 7.5) | 3.2 (20.3: Intel i965、AMD radeonsi、llvmpipe、VirGL、freedreno、Zink (21.3); 3.1: AMD r600、Nvidia nvC0、softpipe、Broadcom v3d、ARM Panfrost (21.3)、d3d12 (22.0) | 該当なし[ 71 ] [ 72 ] | 1.5 | 1.4 | 9.0c [ 73 ] [ 74 ] |
| サポート対象:23.0 | 2023年2月23日 | 23.0.4 [ 24 ] [ 75 ] | 1.3.232: ほぼ23.1に等しい | |||||||
| サポート対象外:22.3 | 2022年11月30日 | 22.3.7 [ 24 ] [ 76 ] | 22.3: 1.3.225: 1.3+ (Intel Gen8+、AMD GCN Gen2+、Lavapipe)、1.2+ (Google Venus)、1.1+ (Qualcomm Turnip、Lavapipe (22.2))、1.0+ (AMD GCN1、Broadcom v3dv、ARM Mali PanVK) | |||||||
| サポート対象外:22.2 | 2022年9月21日 | 22.2.5 [ 24 ] [ 77 ] | ||||||||
| サポート対象外:22.1 | 2022年5月20日 | 22.1.7 [ 24 ] [ 78 ] | ||||||||
| サポート対象外:22.0 | 2022年3月9日 | 22.0.5 [ 24 ] [ 79 ] | ||||||||
| サポート対象外:21.3 | 2021年11月17日 | 21.3.9 [ 24 ] [ 80 ] | 21.3: 1.2.190 (Intel Gen8+、AMD GCN Gen2+、Google Venus (21.3)、Lavapipe)、1.0+ (AMD GCN1、Broadcom v3dv)、1.1+ (Qualcomm Turnip、Lavapipe (21.1)) | |||||||
| サポート対象外:21.2 | 2021年8月4日 | 21.2.6 [ 24 ] [ 81 ] | ||||||||
| サポート対象外:21.1 | 2021年5月5日 | 21.1.8 [ 24 ] [ 82 ] | ||||||||
| サポート対象外:21.0 | 2021年3月11日 | 21.0.3 [ 24 ] [ 83 ] | ||||||||
| サポート対象外:20.3 | 2020年12月3日 | 20.3.5 [ 24 ] [ 84 ] | 20.3: 1.2.158 (Intel Gen8+、AMD GCN Gen2+)、1.0+ (AMD GCN1、Broadcom v3dv (20.3)) | |||||||
| サポート対象外:20.2 | 2020年9月28日 | 20.2.6 [ 24 ] [ 85 ] | 1.0、1.1、1.2(WIP)一部の適合性テストに失敗 | |||||||
| サポート対象外:20.1 | 2020年5月27日 | 20.1.10 [ 24 ] [ 36 ] | ||||||||
| サポート対象外:20.0 | 2020年2月19日 | 20.0.8 [ 24 ] [ 86 ] | 1.2+ (Intel Gen8+、AMD GCN Gen2+) | |||||||
| サポート対象外:19.3 | 2019年12月11日 | 19.3.5 [ 24 ] [ 87 ] [ 33 ] | 1.1+ (Intel Gen8+、AMD GCN Gen2+) (19.1: 1.1.104 19.0: 1.1.102、18.3: 1.1.90、18.2: 1.1.84) | |||||||
| サポート対象外:19.2 | 2019年9月25日 | 19.2.8 [ 24 ] | 4.5 | |||||||
| サポート対象外:19.1 | 2019年6月11日 | 19.1.8 [ 24 ] | ||||||||
| サポート対象外:19.0 | 2019年3月13日 | 19.0.8 | ||||||||
| サポート対象外:18.3 | 2018年12月7日 | 18.3.6 | ||||||||
| サポート対象外:18.2 | 2018年9月7日 | 18.2.8 [ 26 ] | ||||||||
| サポート対象外:18.1 | 2018年5月18日 | 18.1.9 [ 88 ] | 1.1 (Intel Gen8+、AMD GCN Gen2+)(1.1.73) | |||||||
| サポート対象外:18.0 | 2018年3月27日 | 18.0.5 | 1.0+ (1.0.66) | |||||||
| サポート対象外:17.3 | 2017年12月8日 | 17.3.9 | 1.0 (PC: ANV Intel Gen7+ Ivy Bridge、RADV AMD GCN のみ) (ヘッダー: 17.3: 1.0.63、17.2: 1.0.54、17.1: 1.0.42、17.0: 1.0.38、13.0: 1.0.6、12.0: 1.0.3) | Gallium Compute (Clover)による開発中: 1.0および1.1、1.2 (WIP)で一部のCTSテストが失敗するため、1.0、1.1、1.2は未完成です[ 89 ] [ 90 ] | ||||||
| サポート対象外:17.2 | 2017年9月4日 | 17.2.8 | ||||||||
| サポート対象外:17.1 | 2017年5月10日 | 17.1.10 | ||||||||
| サポート対象外:17.0 | 2017年2月13日[ 91 ] [ 11 ] | 17.0.7 | ||||||||
| サポート対象外:13.0 | 2016年11月1日[ 92 ] | 13.0.6 | 4.4 (4.5 テストラベルなし) | |||||||
| サポート対象外:12.0 | 2016年7月8日[ 93 ] | 12.0.6 | 4.3 [ 93 ] | 3.1 | ||||||
| サポート対象外:11.2 | 2016年4月4日[ 94 ] | 11.2.2 | 該当なし | 4.1 (Intel 3.3 以上) | ||||||
| サポート対象外:11.1 | 2015年12月15日[ 95 ] | 11.1.4 | 3.0 | |||||||
| サポート対象外:11.0 | 2015年9月12日[ 96 ] | 11.0.9 | ||||||||
| サポート対象外:10.6 | 2015年6月15日[ 97 ] | 10.6.9 | 3.3 [ 98 ] | 1.4 | ||||||
| サポート対象外:10.5 | 2015年3月6日[ 99 ] | 10.5.9 | 1.1 | |||||||
| サポート対象外:10.4 | 2014年12月14日[ 100 ] | 10.4.7 | ||||||||
| サポート対象外:10.3 | 2014年9月19日[ 101 ] | 10.3.7 | 該当なし | |||||||
| サポート対象外:10.2 | 2014年6月6日[ 102 ] | 10.2.9 | ||||||||
| サポート対象外:10.1 | 2014年3月4日[ 103 ] | 10.1.6 | ||||||||
| サポート対象外:10.0 | 2013年11月30日[ 104 ] | 10.0.5 | ||||||||
| サポート対象外:9.0 | 2012年10月8日 | 9.0.3、9.1.7、9.2.5 | 該当なし | 3.1 | 2.0 | |||||
| サポート対象外:8.0 | 2012年2月8日 | 8.0.5 | 3.0 | |||||||
| サポート対象外:7.0 | 2007年6月22日 | 7.0.4、...、7.11.2 | 2.1 | 該当なし | 該当なし | 該当なし | ||||
| サポート対象外:6.0 | 2004年1月6日 | 6.0.1 | 1.5 | 1.3 | ||||||
| サポート対象外:5.0 | 2002年11月13日 | 5.0.2 | 1.4 | |||||||
| サポート対象外:4.0 | 2001年10月22日 | 4.0.4 | 1.3 | |||||||
| サポート対象外:3.0 | 1998-09 | 3.1、3.2.1、3.4.2.1 | 1.2 | |||||||
| サポート対象外:2.0 | 1996-10 | 2.6 | 1.1 | |||||||
| サポート対象外:1.0 | 1995-02 | 1.2.8 | 1.0 | |||||||
伝説: サポートされていません サポートされている 最新バージョン プレビュー版 将来のバージョン | ||||||||||
ヴルカン
Khronos Groupは2015年3月にVulkan APIを正式に発表し、2016年2月16日にVulkan 1.0を正式にリリースしました。VulkanはOpenGLとの互換性を失っており、モノリシックなステートマシンのコンセプトを完全に放棄しています。Gallium3Dの開発者は、VulkanをGallium3D 2.0のようなものと呼んでいました。Gallium3Dは、OpenGLステートマシンを実装するコードとハードウェア固有のコードを分離しています。
バージョン1.3はMesa 22.0ですぐに利用可能です。OpenGL ES 3.1をサポートするハードウェアは、Vulkanレベル1.3以前で動作するはずです。[ 105 ]
Gallium3D が TGSI を取り込むのと同様に、Vulkan は SPIR-V ( 「Vulkan」の「V」は Standard Portable Intermediate Representationバージョン) を取り込みます。
インテルは、Vulkan仕様が正式に発表された日に自社ハードウェア向けのVulkanドライバ実装をリリースしましたが、メインライン化されたのは4月で、2016年7月にリリースされたMesa 12.0の一部となりました。i965ドライバは既にGallium3D仕様に基づいて記述されていませんでしたが、VulkanドライバをGallium3Dでフランジするのはさらに意味がありません。同様に、NIRでフランジする技術的な理由はありませんが、インテルの従業員はVulkanドライバをそのように実装しました。[ 106 ]
3月にリリースされ、将来的には無料のオープンソースソフトウェアとしてリリースされ、Mesaにメインライン化されることが発表されたAMD独自のVulkanドライバーもGallium3Dを放棄すると予想されます。[ 107 ]
RADVはAMDの無料プロジェクトであり、バージョン13以降で利用可能です。[ 10 ] Khronos-Testへの準拠はバージョン17.3で実現しました。Mesa 18.1以降ではVulkan 1.0と1.1が完全にサポートされています。
NVIDIAは発売日にVulkanに対応した独自のGeForceドライバをリリースしており、Imagination Technologies(PowerVR)、Qualcomm(Adreno)、ARM(Mali)も同様の対応をしており、少なくともAndroidやその他のOS向けに独自のVulkanドライバを発表しています。しかし、これらのGPU向けの無料かつオープンソースのVulkan実装がいつ、そして本当に登場するのかは、まだ分かりません。
Mesa Software Driver VIRGLは、2018年にGSOCプロジェクトで仮想マシンのサポートのためのVulkan開発を開始しました。[ 108 ]
LavapipeはCPUベースのソフトウェアVulkanドライバであり、LLVMpipeの兄弟です。Mesaバージョン21.1はVulkan 1.1以降をサポートしています。[ 109 ]
GoogleはMesa 21.1で仮想マシン用のVenus Vulkanドライバーを導入し、Vulkan 1.2以降を完全にサポートしました。[ 53 ]
Qualcomm TurnipとBroadcom v3dvは、Qualcomm AdrenoとBroadcom Raspberry 4ハードウェア用の新しいドライバです。TurnipはOpenGL用のfreedrenoのVulkan版です。V3dvはMesa 20.3以降Vulkan 1.0以降をサポートしています。バージョン21.1では、TurnipはVulkan 1.1以降をサポートしています。[ 110 ] [ 111 ] [ 112 ]
ARM Mali用のPanfrost PanVKはVulkan 1.1に近づいていますが、Mesa 22.0で安定して利用できるのは1.0のみです。[ 113 ]
Project Dozenは、Windows 10および11でLinuxエミュレーションWSL2を実行するために、Direct 3D 12(d3d12)をVulkanに接続しています。Mesa 23.2では、Vulkan 1.0が完全にサポートされ、1.1と1.2(mesamatrix)の80%がサポートされています。[ 114 ] [ 115 ]
明示的なフェンシング
1 つのバッファをメモリの残りの部分から分離する一種のメモリバリアはフェンスと呼ばれます。フェンスは、レンダリングおよび表示操作が完了する前にバッファが上書きされないようにするために存在します。暗黙的なフェンシングは、グラフィックス ドライバと GPU ハードウェア間の同期に使用されます。フェンスは、バッファが 1 つのコンポーネントによって使用されなくなったときに信号を送り、別のコンポーネントで操作または再利用できるようにします。以前は、Linux カーネルに暗黙的なフェンシング メカニズムがあり、フェンスはバッファに直接接続されていましたが (GEM ハンドルおよび FD を参照)、ユーザー空間はこれを認識していませんでした。明示的なフェンシングはフェンスをユーザー空間に公開し、ユーザー空間はダイレクト レンダリング マネージャ (DRM) サブシステムと GPU の両方からフェンスを取得します。明示的なフェンシングは Vulkan に必須であり、トレースとデバッグに利点があります。
Linuxカーネル4.9ではAndroidの同期フレームワークがメインラインに追加されました。[ 116 ]
汎用バッファ管理
汎用バッファ管理(GBM)は、Mesaに紐付けられたグラフィックスレンダリング用のバッファ割り当てメカニズムを提供するAPIです。GBMは、DRMまたはOpenWFD上のEGLのネイティブプラットフォームとして使用されることを目的としています。GBMが生成するハンドルは、EGLの初期化とレンダリングターゲットバッファの作成に使用できます。[ 117 ]
Mesa GBM は、グラフィックス ドライバー固有のバッファー管理 API (さまざまな libdrm_* ライブラリなど) を抽象化したものであり、Mesa GPU ドライバーを呼び出すことによって内部的に実装されます。
例えば、WaylandコンポジターWestonはOpenGL ES 2を使用してレンダリングを行い、EGLを呼び出して初期化します。サーバーは「ベアKMSドライバー」上で動作するため、EGL DRMプラットフォームを使用します。これはMesa GBMインターフェースに依存しているため、実際にはGBMプラットフォームと呼ぶことができます。
XDC2014で、Nvidiaの従業員Andy Ritgerは、GBMを置き換えるためにEGLを強化することを提案しました。[ 118 ]これはコミュニティに好意的に受け止められず、Nvidiaは最終的に考えを変え、[ 119 ]別のアプローチを取りました。
ビデオアクセラレーションAPIの実装
ビデオ ストリームのエンコードとデコードに必要な計算を実行するには、次の 3 つの方法があります。
- ビデオ圧縮または解凍アルゴリズム(一般にコーデックと呼ばれる)のソフトウェア実装を使用し、このソフトウェアをCPU上で実行する
- ビデオ圧縮または解凍アルゴリズム(一般にコーデックと呼ばれる)のソフトウェア実装を使用し、このソフトウェアをG PU(3D レンダリング エンジン)で実行します。
- ビデオ圧縮またはビデオ解凍アルゴリズムの完全な(または部分的な)ハードウェア実装を使用します。このようなASIC をGPU/CPU/SoC のチップに統合することは非常に一般的になっているため、豊富に利用可能です。マーケティング上の理由から、企業はPureVideo (Nvidia)、Unified Video Decoder (AMD)、Video Coding Engine (AMD)、Quick Sync Video (Intel)、DaVinci (Texas Instruments)、CedarX (Allwinner)、Crystal HD (Broadcom) などの ASIC ブランドを確立しています。一部の ASIC は、半導体知的財産コアとしてライセンス供与可能です。通常、異なるバージョンは異なるビデオ圧縮アルゴリズムやビデオ解凍アルゴリズムを実装します。このような ASIC のサポートは、通常、ハードウェアを初期化して低レベルの処理を実行するカーネル ドライバーに属しています。ユーザー空間で実行される Mesa には、このような ASIC に簡単にアクセスするためのソフトウェア(VLC media player、GStreamer、HandBrakeなど)用のいくつかのAPI実装が含まれています。
- ビデオアクセラレーションAPI(VAAPI) - AMDとIntelが使用するLinuxで最も一般的なAPI
- Unix用ビデオデコードおよびプレゼンテーションAPI(VDPAU) – Nvidiaが使用
- DirectX ビデオ アクセラレーション(DXVA) – Microsoft Windows のみ
- OpenMAX IL – ビデオ圧縮用にクロノスグループが設計
- 分散コーデックエンジン(DCE) - Texas Instruments社設計
- X-Video Bitstream Acceleration (XvBA) – Xvの拡張– VAAPI に引き継がれました
- X-Video Motion Compensation (XvMC) – Xvの拡張– VAAPI に引き継がれました
例えば、 Mesaの一部として開発されているNouveauは、Linuxカーネルの一部として開発されているLinuxカーネルコンポーネントも含み、PureVideoブランドのASICをサポートし、 VDPAUと部分的にXvMCを介してそれらへのアクセスを提供しています。[ 120 ]
無料のRadeonドライバは、VDPAUとOpenMAXを介して統合ビデオデコーダーとビデオコーディングエンジンをサポートします。 [ 121 ]
V4L2は、Web カメラまたは TV チューナーによって配信されるビデオ ビット ストリーム用の カーネルからユーザー空間へのインターフェイスです。
H.264、H.265、VC-1ビデオコーデックに関する特許上の懸念から、 Fedora Linuxは2022年9月にMesaのビルドでVAAPIアクセラレーションのサポートを無効にしました。[ 122 ]
デバイスドライバー

グラフィックチップセット用の無料・オープンソースのデバイスドライバは、Mesaによって「管理」されています(既存の無料・オープンソースAPI実装はMesa内で開発されているため)。現在、グラフィックドライバを作成するためのフレームワークは、「classic」とGallium3Dの2つがあります。[ 123 ] Mesaで利用可能なドライバの一部(すべてではありません)の概要は、mesamatrix.netで公開されてい ます
3Dアクセラレーション機能を備えたAMD/ATI R100~R800、Intel、Nvidiaカード用のデバイスドライバが存在します。以前は、 PlayStation 3のIBM/Toshiba/Sony Cellプロセッサ、S3 VirgeおよびSavageチップセット、VIAチップセット、Matrox G200およびG400など用のドライバが存在していました。[ 124 ]
フリーおよびオープンソースのドライバは、プロプライエタリなクローズドソースのドライバと競合しています。ハードウェアに関するドキュメントの入手可能性と人的資源の多寡に応じて、フリーおよびオープンソースのドライバは、新しいハードウェアの3Dアクセラレーションのサポートにおいて、多かれ少なかれ遅れをとっています。また、3Dレンダリングのパフォーマンスは、一部の例外を除き、通常大幅に低下していました。[ 125 ] [ 126 ] [ 127 ] [ 128 ]現在でも、NouveauではほとんどのNVIDIA GPUでこの傾向が見られますが、AMDのRadeon GPUでは、オープンドライバはプロプライエタリドライバのパフォーマンスにほぼ匹敵するか、それを上回っています。
ダイレクトレンダリングインフラストラクチャ(DRI)
3DグラフィックカードがPCでより一般的に普及した頃、一部の企業の支援を受けた個人が、Mesaにハードウェアアクセラレーションによる3Dレンダリングのサポートを追加する作業を開始しました。ダイレクトレンダリングインフラストラクチャ(DRI)は、Mesa、OpenGL、その他の3DレンダリングAPIライブラリをデバイスドライバやハードウェアと連携させるアプローチの一つでした。基本的なレベルの使いやすさを実現した後、DRIサポートはMesaに正式に追加されました。これにより、Mesaライブラリを使用する際に実現可能なハードウェアサポートの範囲が大幅に広がりました。[ 129 ]
DRIへの適応により、Mesaライブラリは最終的に、ソフトウェアレンダリング機能を完全に損なうことなく、様々なレベルの3Dハードウェアサポートを提供できる多様なバックエンドコンポーネントを備えた、本格的なOpenGLフレームワークのフロントエンドコンポーネントの役割を引き継ぎました。システム全体では、多くの異なるソフトウェアコンポーネントが使用されました。[ 129 ]
設計上、これらのコンポーネントはすべて慎重に相互作用する必要がありますが、それらの間のインターフェースは比較的固定されています。とはいえ、Mesaスタックと相互作用するコンポーネントのほとんどはオープンソースであるため、実験的な作業は、複数のコンポーネントとそれらの間のインターフェースを同時に変更することによって行われることがよくあります。このような実験が成功すれば、次のメジャーリリースまたはマイナーリリースに組み込むことができます。これは、例えば2007年から2008年にかけて開発されたDRI仕様の更新に当てはまります。この実験の結果であるDRI2は、ロックなしで動作し、バックバッファのサポートが改善されています。このため、Mesaの特別なgitブランチが作成されました。[ 130 ]
DRI3は2013年からIntelドライバでサポートされており[ 131 ] [ 132 ]、2016年からは一部のLinuxディストリビューションでデフォルトとなっており[ 133 ]、Vulkanサポートなどを有効にしています。また、2016年後半からはAMDハードウェア(X.Org Server 1.18.3以降)でもデフォルトとなっています。[ 134 ]
ソフトウェアレンダラー
Mesaにはswrastと呼ばれるソフトウェアレンダリングの実装も含まれており、グラフィックスハードウェアアクセラレータが存在しない場合に、シェーダーをフォールバックとしてCPU上で実行することができます。Galliumソフトウェアラスタライザはsoftpipeと呼ばれ、 LLVMのサポート付きでビルドされた場合はllvmpipeと呼ばれ、実行時にCPUコードを生成します。[ 135 ] [ 136 ] Mesa 10.x以降、Softpipe(10.3)とLLVMpipe(10.2)はOpenGL 3.3以降をサポートしています。実際、OpenGL 4.xの機能の約80%がMesa 17.3に実装されています(Mesamatrixを参照)。
Mesa 12.0では、大規模なデータセットを扱うクラスターにおいて大きな利点を持つ、新しいIntel Rasterizer OpenSWRが利用可能になりました。これはゲームやアート画像よりもエンジニアリングの視覚化に重点を置いており、x86プロセッサでのみ動作します。[ 137 ]一方、OpenGL 3.1以降もサポートされるようになりました。[ 138 ]いくつかの例では、LLVMPIPE関連の加速値が29から51まで測定されました。[ 139 ] Mesa 17.1以降、OpenSWRはOpenGL 3.3以降をサポートしています。
VirGLは、2015年からMesa 11.1に実装され、OpenGL 3.3をサポートしている仮想マシン用ラスタライザーです。Mesa 18以降はMesamatrixにも搭載されています。最新のMesa 18.2では、他のラスタライザーよりも多くのOpenGL 4.3とOpenGL ES 3.2をサポートしています。OpenGL 4.4および4.5の機能も約80%がサポートされています。Vulkanの開発はGSOC 2018プロジェクトから開始されます。[ 140 ] [ 141 ] [ 142 ] [ 108 ] [ 143 ] [ 144 ] [ 145 ]
Mesamatrixの実際のvirGLの状態は、必要なLinuxソフトウェアを使用してOpenGL 4.6+とOpenGL ES 3.2+を完全にサポートしています。[ 146 ]
D3d12は、Direct3D 12を使用したOpenGL 3.3+およびOpenCL 1.2+のWSL2エミュレーションのためのMicrosoftのプロジェクトです。D3D12は21.0に統合されています。[ 46 ] Mesa 23.1の実際の状態は、OpenGL 4.2+(ほぼ4.4+)およびOpenGL ES 3.1+です。
Venusは、Googleが開発した仮想マシン向けGPU用の新しいVulkan VirtIO GPUドライバです。Venusは21.1に統合され、21.2で一般向けに導入されました。[ 53 ] VenusはMesa 23.1でVulkan 1.3以降をサポートしています。ハードウェアの最小要件はVulkan 1.1(一部拡張機能付き)です。[ 147 ]
メガドライバー
複数のドライバを単一の「メガ」ドライバにまとめるというアイデアは、Emma Anholt氏によって提案されました。これにより、共有Mesaコードの単一のコピーを複数のドライバ間で使用できるようになります(各ドライバに個別にコードが存在するのではなく)。また、内部ライブラリインターフェースが削除されるため、個別の共有ライブラリよりも優れたパフォーマンスが得られます。[ 148 ] VDPAUとXvMCの状態トラッカーは個別のライブラリになりました。[ 149 ]
シェーダーDB
shader-dbは、様々なコンピュータゲームやベンチマークから収集された約20,000個のシェーダーと、それらをコンパイルして統計情報を収集するためのスクリプトのコレクションです。Shader-dbは、最適化の検証を支援することを目的としています。
予想外の数のシェーダーが手書きではなく、自動生成されていることが判明しました。これは、これらのシェーダーが元々HLSLで記述され、 HLSL2GLSLなどの変換プログラムによってGLSLに変換されたことを意味します。問題は、生成されたコードが最適な状態から程遠い場合が多いことです。Matt Turner氏は、このような肥大化したシェーダーの処理をMesaのコンパイラに負担させるよりも、変換プログラムでこれを修正する方がはるかに簡単だと述べています。
shader-dbはフリーソフトウェアやオープンソースソフトウェアとは言えません。合法的に使用するには、シェーダーが組み込まれているすべてのコンピュータゲームのライセンスを取得する必要があります。
ソフトウェアアーキテクチャ



Mesa のいわゆる「ユーザーモード グラフィックス デバイス ドライバー」(UMD)は、一般的にデバイス ドライバーと呼ばれるものとほとんど共通点がありません。いくつかの違いがあります。
- これらは、例えばLinuxカーネルの一部として利用可能な、既存のカーネルモードグラフィックデバイスドライバ上で動作するように設計されています。各UMDは、 libdrm_specificという名前の特定のライブラリと、 libdrmという名前の汎用
/drivers/gpu/drm/ライブラリを使用して、カーネルモードの対応するデバイスと通信します。このセクションでは、libdrmの上位にあるユーザーモード部分のみを扱います。 - 例えばOpenGLで規定されている有限状態マシンの実装がいくつかある。このOpenGL状態マシンの実装は複数のUMD間で共有される場合もあれば、そうでない場合もある。
- これらは大部分が何らかのコンパイラで構成されており、例えばGLSLを読み込み、最終的に機械語を出力する。パーサーは複数のUMD間で共有されることもあれば、特定のUMDに固有のものもある。
Mesaの中間表現
Mesaの目標の一つは、それぞれのGPUで実行されるコードの最適化です。もう一つの目標は、コードの共有です。この記事では、ソフトウェアの各構成要素を解説するのではなく、コンパイルと最適化のプロセスで使用される中間表現(Intermediate Representation)について見ていきます。抽象構文木(AST)と静的単一代入形式(SSA形式)を参照してください。
SPIR-V
SPIR-V は、 Standard Portable Intermediate Representationの特定のバージョンです。グラフィックス アプリケーションが GLSL ではなく SPIR-V を出力するという考え方です。GLSL とは対照的に、SPIR-V はバイナリであり、異なるドライバ実装の GLSL コンパイラ フロントエンド間の実装の違いがアプリケーションの非互換性とバグの主な原因となっていたことを避けるためのものです。また、SPIR-V バイナリは通常、いくつかの一般的な最適化も受けます。SPIR-V のバイナリ表現はある程度の難読化も提供しており、これは一部のソフトウェア ベンダーにとっては知的財産保護の一形態として魅力的かもしれませんが、SPIR-V にはリフレクション用の十分な情報が含まれており、SPIR-V を高品質で人間が判読できる高水準コードに変換するツールが存在します。UMD は、サポートされているハードウェアに固有の最適化のみを適用する必要があります。
GLSL IR
- cgit.freedesktop.org/mesa/mesa/tree/src/compiler/glsl/README
- XDC2014、Matt Turner: YouTubeのビデオ、Matt Turner - GLSL コンパイラ: これまでの歩みと今後の展望
- XDC2015、Matt Turner: YouTubeのビデオ、www .x .org /wiki /Events /XDC2015 /Program /turner _glsl _compiler .pdf
メサIR
近赤外線
NIR (New Internal Representation) は、TGSI の制限を克服するために導入されました。[ 150 ] [ 151 ] NIR は、Spir-V サポートのベースとして最後のリリースと現在のリリースで拡張され、2016 年以来主要な開発領域となっています。LLVMpipe、i965、RadeonSI、Nouveau、freedreno、vc4 は、TGSI から NIR に変更されました。RADV、Zink、その他の新しいドライバーは NIR から始まります。OpenGL 4.6 を完全にサポートするすべてのドライバーは、SPIR-V サポートによって NIR に関連付けられています。また、AMD r600 には、HD5000 および HD6000 シリーズをより適切にサポートするための NIR とのフォークがあります。r600 のこのオプションは、Mesa 21.0 以降ではデフォルトです。
- Connor Abbott - NIR、またはMesa XDC2014 でのGLSL IRを超える
- cgit.freedesktop.org/mesa/mesa/tree/src/compiler/nir/README
- fosdem.org/2016/schedule/event/i965_nir/attachments/slides/1113/export/events/attachments/i965_nir/slides/1113/nir_vec4_i965_fosdem_2016_rc1.pdf
- RadeonSI の NIR
- ヌーボーアップデート2018
- Mesa 19.3 の NIR 搭載 Nouveau
TGSI
Tungsten Graphics Shader Infrastructure (TGSI) は、2008年にTungsten Graphicsによって導入されました。Gallium3DスタイルのUMDはすべてTGSIを読み込み、NIRは現在主要な開発領域となっているため、TGSIはr300gのデフォルトインフラストラクチャのような古いドライバでのみ使用でき、数年後には廃止される予定です。
Mesa 22.2ではGLSL-to-TGSIコードが削除されます。デフォルトは、すべてのネイティブNIRドライバで、新しいNIR-to-TGSIとGLSL-to-NIRです。一部の古いTGSIドライバもこのNIRコードパスでサポートされています。後日、ネイティブNIRドライバでのみNIR-to-TGSIが廃止される予定です。[ 152 ]
LLVM IR
UMDはマシンコードでradeonsiはllvmpipeなく、LLVM IRを出力します。ここからはLLVMが最適化とマシンコードへのコンパイルを行います。つまり、LLVMの特定のバージョンもインストールする必要があります。
RADV ACO IR
RADV ACOは、NIRに近い独自のIRを使用し、Radeon GPU(GCN 1+、別名GFX6+)GPU上でVulkan SPIR-Vシェーダーの最終バイナリコードを最適化および生成します。バージョン20.1.0時点では、ACOはRADV(Vulkanドライバー)でのみ使用されており、RadeonSIではまだ使用されていません。
MesaのGLSLコンパイラ
MesaのGLSLコンパイラは独自のIRを生成します。各ドライバはLIRに対して大きく異なる要件を持つため、HIR(高レベルIR)とLIR(低レベルIR)を区別します。
ガリウム3D
| ガリウム3D | |
|---|---|
| 原作者 | タングステン グラフィックス (現VMware ) |
| プレビューリリース | 0.4 [ 153 ] / 2010年4月24日 (2010年4月24日) |
| 書かれた | C、 C++、アセンブリ言語 |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | グラフィックライブラリ |
| ライセンス | MITライセンス |
| Webサイト | www |
| リポジトリ | |
Gallium3Dは、複数のオペレーティングシステム、レンダリング、またはビデオアクセラレーションAPIに対応した3Dグラフィックスチップセットのデバイスドライバのプログラミングを容易にするインターフェースセットとサポートライブラリ[ 154 ]です。これは、無料のオープンソースのグラフィックスデバイスドライバソフトウェア です。
機能マトリックスはmesamatrix
Gallium3Dの開発は2008年にTungsten Graphicsで開始され[ 155 ]、その実装はfreedesktop.orgがホストするMesa 3Dの一部として、無料のオープンソースソフトウェアとして提供されています。主な目的は、ドライバ開発を容易にし、複数の異なるドライバの重複コードを一元化し、最新のハードウェアアーキテクチャをサポートすることです。これは、メモリ管理をカーネルDRIドライバ に委ねるなど、より適切な分業体制を提供することで実現されています。
Gallium3Dは2009年からMesaの一部であり[ 156 ]、現在はNvidia(nouveauプロジェクト)用の無料のオープンソースグラフィックドライバー、 [ 157 ] [ 158 ]、AMDのR300〜R900用の[ 159 ] [ 160 ] [ 161 ]、第8世代以降のiGPU用のIntelの「Iris」ドライバー[ 162 ]、およびその他の無料のオープンソースGPUデバイスドライバーで使用されています。
ソフトウェアアーキテクチャ
Gallium3Dは、グラフィックスデバイスドライバを3つの部分に分割することで、デバイスドライバのプログラミングを容易にします。これは、Gallium3D State Tracker InterfaceとGallium3D WinSys Interfaceという2つのインタフェースを導入することで実現されています。これらの3つのコンポーネントは、それぞれ以下のように呼ばれます。
- Gallium3D ステートトラッカー
- デバイスドライバのアドレス指定に使用される各グラフィカルAPIには、それぞれ独自のステートトラッカーが存在します。例えば、 OpenGL用のGallium3Dステートトラッカーと、 Direct3DまたはGLX用のステートトラッカーが存在します。各ステートトラッカーにはGallium3Dステートトラッカーインターフェースの実装が含まれており、それぞれが固有のものであるため、既存のすべてのGallium3Dデバイスドライバで共有されます。
- Gallium3D ハードウェア デバイス ドライバー
- これは実際のコードであり、基盤となる3Dグラフィックアクセラレータに固有のものですが、Gallium3D WinSysインターフェースが許容する範囲に限られます。利用可能なグラフィックチップごとに固有のGallium3Dハードウェアデバイスドライバがあり、それぞれがGallium3DステートトラッカーインターフェースとGallium3D WinSysインターフェースを実装しています。Gallium3Dハードウェアデバイスドライバは、シェーダーを記述するための中間言語であるTGSI(Tungsten Graphics Shader Infrastructure)のみを理解します。このコードは、GLSLからTGSIに変換されたシェーダーを、GPUが実装する命令セットに変換します。
- ガリウム3D ウィンシス
- これはオペレーティング システムの基礎となるカーネルに固有のものであり、それぞれが Gallium3D WinSys インターフェイスを実装して、利用可能なすべての Gallium3D ハードウェア デバイス ドライバーとインターフェイスします。




従来のグラフィックドライバーとの違い
Gallium3D は、現代のハードウェアに見られるシェーダユニットなどの標準的なハードウェア機能を公開する統合APIを提供します。したがって、 OpenGL 1.x/2.x、OpenGL 3.x、OpenVG、GPGPUインフラストラクチャ、さらにはDirect3D ( Wine互換レイヤーにあるもの) などの 3D API では、Gallium3D API を対象とする状態トラッカーと呼ばれる単一のバックエンドのみが必要です。対照的に、クラシックスタイルの DRI デバイス ドライバーでは、ハードウェア プラットフォームごとに異なるバックエンドが必要であり、他のいくつかの API では、コードの重複を犠牲にして OpenGL に変換する必要があります。[ 163 ] [ 164 ] [ 165 ]すべてのベンダーのデバイス ドライバーは、プロプライエタリでクローズド ソースであるという性質上、そのように記述されています。つまり、たとえばAMD Catalyst はOpenGLとDirect3D の両方を実装しており、 GeForceのベンダー ドライバーにはそれぞれの実装があります。
Gallium3Dでは、Direct Rendering Manager (DRM)カーネルドライバーがメモリを管理し、Direct Rendering Interface (DRI2)ドライバーはよりGPU処理指向になります。[ 166 ]ユーザースペースモード設定からカーネルスペースモード設定への移行期間中に、RadeonドライバーやIntelドライバーなどの一部のMesa 3Dドライバーは、DRI1とDRI2の両方をサポートするようになり、システムで利用可能な場合はDRI2を使用しました。Gallium3Dはさらに、ATi r100-r200などの古いカードでは利用できないレベルのシェーダーサポートを必要とするため、それらのカードのユーザーは、3D利用のためにDRI2でMesa 3Dを使い続ける必要があります。
タングステングラフィックスシェーダインフラストラクチャ
Tungsten Graphics Shader Infrastructure ( TGSI ) は、LLVM Intermediate Representationや、 Vulkan APIおよび OpenCL 2.1で使用される新しいStandard Portable Intermediate Representation (SPIR)のような中間表現です。OpenGLシェーディング言語で記述されたシェーダーは TGSI に変換/コンパイルされ、その後最適化が行われ、使用される GPU の命令セットに適したシェーダーにコンパイルされます。
NIR は、SPIR-V を完全にサポートし、2019 年以降は OpenGL 4.6 をサポートするすべての新しいドライバーの主な開発領域である Mesa の新しいレイヤー表現です。
LLVMの使用

さらに、Gallium3Dのモジュール構造を利用して、LLVMコンパイラスイートを使用してシェーダコードをオンザフライで最適化するモジュールを作成する取り組みが進行中です。 [ 167 ]
ライブラリは、Tungsten Graphics Shader Infrastructure (TGSI) と呼ばれる拡張可能なバイナリ中間表現を使用して各シェーダー プログラムを表現し、LLVM はそれをターゲット ハードウェア用に最適化されたGLSLシェーダーに変換します。
採択
クリーンルームリバースエンジニアリングによって得られた情報に基づいて作成された、あるいは現在開発中のフリーでオープンソースのグラフィックデバイスドライバの中には、Gallium3Dが提供するドライバモデルを採用しているものがいくつかあります(例: nouveauなど)。その主な理由は、Gallium3Dのドライバモデルによって記述に必要なコード量が少なくなるためでしょう。もちろん、このコードはフリーソフトウェアライセンスに基づいているため、誰でもいつでもDRIドライバモデルやその他のドライバモデルを実装するように書き換えることができます。
歴史
Gallium3Dのオリジナルの作者は、タングステングラフィックス( 2008年にVMwareに買収)のキース・ウィットウェルとブライアン・ポールでした。[ 168 ]
マイルストーン
2011年秋時点では、少なくとも10種類のGallium3Dドライバが知られており、成熟しており、動作している。[ 169 ] NouveauチームによるNvidiaグラフィックカード用のオープンソースドライバは、Gallium3Dフレームワークを使用してドライバを開発している。[ 158 ] [ 170 ]
2008年7月13日: Nouveauの開発はGalliumフレームワーク専用に行われます。古いDRIドライバはFreedesktop.orgのMesaリポジトリのマスターブランチから削除されました。[ 171 ]
2009-02-11: gallium-0.2ブランチがMesaのメインラインマスターブランチに統合されました。[ 172 ]開発はMesaメインラインで行われています。
2009-02-25: Gallium3DはLinuxカーネルとFreeBSDカーネルの両方で動作できるようになりました。[ 173 ]
2009-05-01: Tungsten GraphicsのZack RusinがMesa 3DにOpenVG状態トラッカーを追加しました。 [ 174 ]これにより、Scalable Vector GraphicsをGallium3Dベースのドライバーでハードウェアアクセラレーションできるようになりました。
2009-07-17: Mesa3D 7.5がリリースされました。これはGallium3Dを搭載した最初のバージョンです。[ 175 ]
2010-09-10: r600gドライバにEvergreen GPUの初期サポートが追加されました。[ 176 ]
2010-09-21: ATI ハードウェア用の Gallium3D ドライバーが 2 つあり、それぞれ R300-R500 および R600-Evergreen GPU 用の r300g および r600g と呼ばれています。
2010-09-21: Direct3D 10と11をサポートするためにコードに大きなコミットが行われました。[ 177 ]将来的には、Linuxシステムで最新のDirect3D実装を使用できるようになるかもしれません。
2011年11月30日: Intel 965gおよびCell Galliumドライバはメンテナンスされておらず壊れているため、Mesaのマスターブランチから削除されました。[ 178 ] [ 179 ]
2013-11-30: Mesa 10(OpenGL 3.2、3.3、OpenCL 1.0+搭載)
2014年11月18日: Direct3D 9をサポートするためにコードに大きなコミットが行われました。[ 180 ]
2015-09-15: Mesa 11 と OpenGL 4.0、4.1、OpenCL 1.2 (未完了)
2015-12-15: OpenGL 3.3 搭載仮想マシン向け Mesa 11.1 ドライバ VIRGL
2016-07-08: Mesa 12、OpenGL 4.2、4.3、Vulkan 1.0 (Intel ANV および AMD RADV)
2016-11-01: OpenGL 4.4 および OpenGL ES 3.2 を搭載した Mesa 13
2017-02-13: Mesa 17.0(OpenGL 4.5 対応)と freedreno ドライバ(OpenGL 3.0 および 3.1 対応)
2017-05-10: Mesa 17.1 OpenGL 4.2+ for Intel Ivy Bridge (Windows 用 Intel ドライバー以上)、OpenGL 3.3+ for Intel Open SWR Rasterizer (大規模シミュレーション用のクラスター コンピューターにとって重要)
2017-12-08: Mesa 17.3 AMD Vulkan ドライバ RADV が Khronos の Vulkan 1.0 テストに完全準拠
2018-05-18: Mesa 18.1 と Vulkan 1.1 (Intel ANV と AMD RADV)
2018-09-07: Mesa 18.2、Soft Driver VIRGL 用 OpenGL 4.3 (クラウド クラスタ コンピュータの仮想マシンに重要)、Freedreno 用 OpenGL ES 3.1、Adreno A5xx
2019-06-11:第8世代以降のiGPU向けのIntelの次世代「iris」グラフィックドライバーを搭載したMesa 19.1がリリースされました[ 181 ]
2019-12-11: Mesa 19.3 がリリースされ、Intel i965 (Gen 7+) およびオプションの Iris Gen 8+ で OpenGL 4.6 がサポートされました。
2020-03-18: Mesa 20.0 は、AMD GCN と Intel 向け Vulkan 1.2 を搭載した OpenGL 4.6 をリリースしました。
2020-05-27: Mesa 20.1 は Clover の OpenCL の NIR ベクトル化サポートと共有仮想メモリサポートをリリースしました
2020年11月30日: Mesa 20.3がCloverでOpenCL 1.2を完全サポート[ 42 ]
2021-03-11: Mesa 21.0 が「D3D12」の初期サポートを開始しました: Windows 10 の WSL2 向け Direct 3D 12 (OpenGL 3.3+ 搭載)、ARM Freedreno: OpenGL 3.3+
2021-05-05: Mesa 21.1 は、Google VirtIO GPU ドライバー「Venus」の初期サポートを開始しました。Vulkan 1.2+、Zink: OpenGL 4.6+、OpenGL ES 3.1+、Qualcomm Turnip、Lavapipe: Vulkan 1.1+ に対応しています。
2021-08-04: Mesa 21.2 は、gallium3D をベースにした新しい Intel Crocus OpenGL 4.6 ドライバー、Intel Sandy Bridge、古い i965 用の Haswell、ARM Panfrost 用の Vulkan ドライバー panVK の初期サポートを開始しました。
2022-03-09: Mesa 22.0 は Intel Anvil と AMD RADV による Vulkan 1.3 を完全サポートしました
2023-05-10: Mesa 23.1 OpenCL with Rust: AMD GCNハードウェア用のRustiCLが利用可能になりました(さらに多くのハードウェアがWIP中です)[ 65 ]
2023-09-30: Mesa 23.2、Apple Asahi OpenGL 3.1およびOpenGL ES 3.0、RADVがAMD RDNA 2および3のレイトレーシングをサポート、Intel Anvil Vulkan H.265デコードをサポート[ 182 ]
パフォーマンス
歴史
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2014年9月) |
プロジェクトの発起者であるブライアン・ポールはグラフィックスを趣味としていた。彼は OpenGL API を使って簡単な 3D グラフィックス ライブラリを実装したら面白いと考え、それを VOGL (ごく普通の GL のようなライブラリ) の代わりに使うかもしれないと考えていた。[ 183 ] 1993 年の初めから、彼は 18 か月間パートタイムで開発を行い、1995 年 2 月にインターネット上でソフトウェアをリリースした。[ 184 ]ソフトウェアは好評を博し、人々が開発に貢献し始めた。 Mesa は、すべての3D コンピュータ グラフィックスをCPUでレンダリングすることから始まった。それにもかかわらず、Mesa の内部アーキテクチャは、グラフィックス プロセッサで加速される 3D レンダリングに接続できるように設計されていた。この最初の段階では、レンダリングはディスプレイ サーバーで間接的に行われていたため、いくらかのオーバーヘッドが生じ、速度は理論上の最大値よりも明らかに遅れていた。Voodoo Graphicsチップセットを使用したDiamond Monster 3Dは、Mesa がサポートした最初の 3D ハードウェア デバイスの 1 つであった。
Mesaに初めて真のグラフィックハードウェアサポートが追加されたのは1997年で、当時新しかった3dfx Voodoo I/IIグラフィックカードおよびその後継機向けのGlide APIに基づいていました。[ 129 ] Glideをアクセラレーションレイヤーとして使用することの大きな問題は、Glideがフルスクリーンで動作する性質であり、これはコンピュータゲームにしか適していませんでした。さらに、Glideは画面メモリをロックするため、ディスプレイサーバーは他のGUIタスクを実行できなくなっていました。[ 185 ]
参照
参考文献
- ^ Marshall, David (2008年12月16日). 「VMwareによるTungsten Graphicsの年末買収」 . InfoWorld . 2011年8月6日閲覧。
- ^ “[ANNOUNCE] mesa 25.3.5” . 2026年2月6日. 2026年2月8日閲覧。
- ^ "NVK" . Mesa 3Dグラフィックスライブラリ. 2025年12月12日閲覧。
{{cite web}}: CS1 maint: url-status (リンク) - ^ 「LinuxグラフィックドライバーのOpenGLサポートを改善 - Mesa」Indiegogo、2013年12月11日。2015年1月21日閲覧。
- ^ 「AMD、新たなLinuxドライバー戦略を検討」 2014年3月22日。 2014年3月23日閲覧。
- ^ 「Direct3D 9のサポートがGallium3D経由でLinux向けにリリースされ、ゲームが実行可能 - Phoronix」。Phoronix.com。2018年8月1日閲覧。
- ^ "mesa/mesa - Mesa 3D グラフィック ライブラリ" . 2016年11月2日閲覧。
- ^ 「OpenGL vs Mesaマトリックス」 2015年3月25日. 2015年3月29日閲覧。
- ^ 「Mesa 11.0 がブランチ化され、リリース3月開始」 2015年8月22日. 2015年8月22日閲覧。
- ^ a b “RADV Radeon Vulkan Driver Submitted for Review to be Included in Mesa - Phoronix” . 2016年11月4日時点のオリジナルよりアーカイブ。 2016年11月3日閲覧。
- ^ a b「Mesa 17.0.0 正式リリース」 . Phoronix . 2017年2月13日. 2017年2月13日閲覧。
- ^ "mesa/mesa - Mesa 3Dグラフィックライブラリ" . Cgit.freedesktop.org . 2018年8月1日閲覧。
- ^ 「Mesa 17.0の大きな変更点と改善点 - Phoronix」 . Phoronix.com . 2018年8月1日閲覧。
- ^ "mesa/mesa - Mesa 3Dグラフィックライブラリ" . Cgit.freedesktop.org . 2018年8月1日閲覧。
- ^ 「プログラム」(PDF)www.x.org . 2016年。
- ^ "mesa/mesa - Mesa 3Dグラフィックライブラリ" . Cgit.freedesktop.org . 2018年8月1日閲覧。
- ^ 「Maxwell上のNouveau Mesa 17.0-develによる大幅なパフォーマンス向上の概要 - Phoronix」Phoronix.com . 2018年8月1日閲覧。
- ^ 「KhronosがOpenGL / OpenGL ES適合性テストをオープンソース化 - Phoronix」 . Phoronix.com . 2018年8月1日閲覧。
- ^ 「Mesa 17.1の主な機能:Vega、RadeonSIシェーダーキャッシュ、成熟したVulkan、新しいOpenGL拡張機能 - Phoronix」。Phoronix.com。2018年8月1日閲覧。
- ^ 「Mesaリリースノート」 Mesa3d.org 2018年8月1日閲覧。
- ^ 「OpenGL vs Mesaマトリックス」mesamatrix.net . 2016年7月31日閲覧。
- ^ 「イベントリスト」(PDF) . www.x.org .
- ^ 「Mesa 17.3の機能 - Vulkanのアップデート、パフォーマンスの向上 - Phoronix」。Phoronix.com。2018年8月1日閲覧。
- ^ a b c d e f g h i j k l m n o p q r「リリースカレンダー」 Mesa3d.org . 2018年8月1日閲覧。
- ^ 「Mesa 18.0の機能には、OpenGL/Vulkanの多くの改善、Intel Shader Cacheとその他の機能が含まれています - Phoronix」。Phoronix.com。2018年8月1日閲覧。
- ^ a b 「Mesa 18.2がOpenGL / Vulkan ドライバーの多くの改善を伴ってまもなくリリース - Phoronix」。www.phoronix.com。
- ^ 「オープンソース Intel / Radeon グラフィックス ドライバー向け Mesa 18.3 の輝かしい新機能 - Phoronix」www.phoronix.com。
- ^ 「Mesaは2018 年にオープンソースの Vulkan / OpenGL ドライバーで大きな進歩を遂げました - Phoronix」。www.phoronix.com。
- ^ 「Mesa 19.0 の新機能: Vulkan の追加機能、FreeSync、ソフト FP64 など - Phoronix」。
- ^ 「Mesa 18.2 vs. 18.3 vs. 19.0 1 月の RadeonSI/RADV ベンチマーク - Phoronix」。
- ^ 「Mesa 19.1 Git で RadeonSI NIR バックエンドを実行する」www.phoronix.com。
- ^ 「Intel の Iris Gallium3D ドライバーは、OpenGL 互換性プロファイルのサポートが強化されました - Phoronix」。
- ^ a b「Mesa 19.3 では、オープンソースの OpenGL + Vulkan ドライバーの多くの改善が導入されています」。www.phoronix.com。
- ^ 「Mesa 20.0-rc1 が Intel Gallium3D デフォルト、RadeonSI 用 OpenGL 4.6、Vulkan 1.2 とともにリリースされました - Phoronix」。
- ^ 「Mesa 20.0 が Intel、AMD Radeon Vulkan/OpenGL の大幅な改善を伴ってリリース - Phoronix」。
- ^ a b「Mesa 20.1 の機能には、オープンソースの Intel、Radeon グラフィック ドライバーの大幅な改善が含まれています - Phoronix」。
- ^ 「Zink は、Vulkan 経由の汎用 GL に対応した OpenGL 3.0 が完成しました - Phoronix」。
- ^ 「Mesa 20.2 の開発は多くの新機能の実装後に終了 - Phoronix」。
- ^ 「Mesa 20.2 の Nouveau により HMM が有効になり、OpenCL SVM がサポートされるようになりました - Phoronix」。
- ^ 「Mesa の Vulkan ソフトウェア実装は現在 Lavapipe として知られています」。Phoronix 。
- ^ 「V3DV 開発者が Mesa で Raspberry Pi 4 Vulkan ドライバーをアップストリームする計画を発表 - Phoronix」。
- ^ a b c「OpenCL 3.0 に取り組んでいる一方で、Mesa の Gallium3D Clover に OpenCL 1.2 のサポートが統合されました - Phoronix」。
- ^ 「Mesa 20.3 の Zink が OpenGL 3.3 に対応し、OpenGL-on-Vulkan で Blender を実行できるようになりました - Phoronix」。
- ^ 「Mesa 20.3 で LLVMpipe で OpenGL 4.5 が有効になり、20.2 にバックポートされる予定 - Phoronix」。
- ^ “VALLIUM、Gallium3D の Vulkan フロントエンドとして Mesa 20.3 に統合” .フォロニクス。
- ^ a b「Mesa 21.0 が Direct3D 12 Gallium3D ドライバーを統合 - Phoronix」。
- ^ 「Mesa for Mapping Layers」(PDF) 。2020年10月30日時点のオリジナル(PDF)からのアーカイブ。
- ^ 「Microsoft + Collabora が OpenGL/OpenCL を DirectX 12 にマッピング - Phoronix」。
- ^ 「Mesa 、OpenGL の最適化により SPECViewPerf が 2~5 倍高速化」www.phoronix.com。
- ^ 「Mesa 21.0 には、特に Radeon オープンソース グラフィックス向けの多くの新機能が搭載されています - Phoronix」。
- ^ 「Mesa 21.1-rc1 が RADV の最適化、Zink の高速化、その他多数の新機能とともにリリースされました - Phoronix」。
- ^ 「Mesa%2021.1 - Phoronix」。
- ^ a b c「Google の VirtIO-GPU「Venus」Vulkan ドライバーが Mesa 21.1 に統合されました」。www.phoronix.com 。
- ^ 「Mesa 21.2が新しい Intel Crocus ドライバー、PanVK、初期の M1 コードとともにリリースされました」。www.phoronix.com 。
- ^ 「今年中に Mesa の Classic OpenGL ドライバーをメインラインから削除する提案が提起される」www.phoronix.com。
- ^ 「Crocus Gallium3D、Haswell Graphics を通じて Gallium3D i965 向けメインライン Mesa に近づく - Phoronix」。
- ^ 「Amber Branch — Mesa 3D グラフィックス ライブラリの最新ドキュメント」。
- ^ 「Mesa 22.0-rc1 が、多くの Radeon および Intel Linux GPU ドライバー機能、Vulkan 1.3 を搭載してリリースされました」。
- ^ 「Mesa の「Dozen」が Direct3D 12 経由で Vulkan を提供する予定」www.phoronix.com。
- ^ 「Mesa の Rusticl が公式 OpenCL 3.0 準拠を達成」。
- ^ 「Mesa の Rusticl OpenCL 実装は Radeon の ROCm コンピューティング スタックを上回るパフォーマンスを発揮します」。
- ^ 「Mesa 23.0 機能開発は多くの Vulkan 追加を伴って終了」。
- ^ 「オープンソースの Radeon および Intel グラフィックス ドライバーの多くの変更を伴って Mesa 23.0 がリリースされました」。
- ^ 「Microsoft の DZN Mesa ドライバーはすでに Vulkan 1.2 に到達」。
- ^ a b「Mesa 23.1 が RadeonSI Rusticl-OpenCL、RADV GPL とともにリリースされました」。
- ^ 「Mesa 23.2 Virgl が仮想マシン内で OpenGL 4.6 のサポートを開始」。
- ^ 「Mesa 23.2 が OpenGL 3.1 + GLES 3.0 向けの Asahi AGX Gallium3D の変更点を受け入れる」。
- ^ 「Microsoft が Direct3D 12 上で OpenGL 4.6 のサポートを有効化」。
- ^ 「リリース ノート - Mesa 3D グラフィックス ライブラリの最新ドキュメント」。
- ^ 「Mesa 23.1 リリース - Phoronix」。
- ^ Larabel, Michael (2015年3月4日). 「Gallium3DからOpenVGサポートが削除」 . Phoronix . 2015年7月11日閲覧。
- ^ "St/Vega: 削除。(3acd7a34) · コミット · Mesa / Mesa · GitLab" . 2015年3月3日.
- ^ 「「9」ステートトラッカーの最新パッチ」 Cgit.freedesktop.org . 2016年2月4日。
- ^ Larabel, Michael (2014年12月14日). 「Mesa 10.4がDirect3D 9 State Trackerを搭載して正式リリース」 . Phoronix . 2015年7月11日閲覧。
- ^ 「Mesa 23.0 リリース - Phoronix」。
- ^ 「Mesa 22.3 リリース - Phoronix」。
- ^ 「Mesa 22.2 リリース - Phoronix」。
- ^ 「Mesa 22.1 リリース - Phoronix」。
- ^ 「Mesa 22.0 リリース - Phoronix」。
- ^ 「Mesa 21.3 リリース - Phoronix」。
- ^ 「Mesa 21.2 が新しい Intel Crocus ドライバー、PanVK、初期の M1 コードとともにリリースされました - Phoronix」。
- ^ 「Mesa 21.1 が RADV 可変レート シェーディング、Intel Vulkan のさらなる改善を搭載してリリースされました - Phoronix」。
- ^ 「Mesa 21.0 が多数の RADV 改善、新しい Vulkan 拡張機能、多くの修正を伴ってリリースされました - Phoronix」。
- ^ 「オープンソース グラフィック ドライバーの大幅な改善を伴った Mesa 20.3 がリリースされました - Phoronix」。
- ^ 「Mesa 20.2.2 がランダムな修正を加えてリリースされました」www.phoronix.com。
- ^ 「RadeonSI NIR ベンチマークは Mesa 20.0 で大きな進歩を示す - Phoronix」。
- ^ 「Mesa 19.3-RC1 が Intel 向け OpenGL 4.6 および Vulkan ドライバーの多数の改善とともにリリースされました - Phoronix」。
- ^ 「Mesa 18.0はVulkan/OpenGLドライバーの多くの改善を伴って本日リリース予定 - Phoronix」 Phoronix.com . 2018年8月1日閲覧。
- ^ "GalliumCompute" . Dri.freedesktop.org . 2019年1月24日閲覧。
- ^ 「Clover Status Update」(PDF) . 2020年3月27日閲覧。
- ^ 「[Mesa-announce] mesa 17.0.0」 . 2017年2月13日. 2017年2月13日閲覧。
- ^ 「[Mesa-announce] mesa 13.0.0」 2016年11月. 2016年11月2日閲覧。
- ^ a b「Mesa 12.0 Released With OpenGL 4.3 Support, Intel Vulkan & Many Other Features」 2016年7月8日. 2016年7月8日閲覧。
- ^ 「[Mesa-announce] Mesa 11.2.0」 2016年4月4日. 2016年4月4日閲覧。
- ^ “[Mesa-発表] Mesa 11.1.0” . 2015 年 12 月 15 日。2015 年12 月 15 日に取得。
- ^ 「[Mesa-announce] Mesa 11.0.0」 2015年9月12日. 2015年9月26日閲覧。
- ^ 「[Mesa-announce] Mesa 10.6.0」 2015年6月15日. 2015年6月15日閲覧。
- ^ Larabel, Michael (2013年10月26日). 「Mesa 10.0で注目すべき機能」 . Phoronix .
- ^ 「[Mesa-announce] Mesa 10.5.0」 2015年3月7日. 2015年3月7日閲覧。
- ^ 「[Mesa-announce] Mesa 10.4.0 リリース」 2014年12月14日. 2015年3月7日閲覧。
- ^ 「[Mesa-announce] Mesa 10.3 リリース」 2014年9月19日. 2015年3月7日閲覧。
- ^ 「[Mesa-announce] Mesa 10.2 リリース」 2014年6月7日. 2015年3月7日閲覧。
- ^ 「[Mesa-announce] Mesa 10.1 リリース」 2014年3月5日. 2015年3月7日閲覧。
- ^ 「[Mesa-announce] Mesa 10.0 リリース」 2013年12月. 2015年3月7日閲覧。
- ^ 「Vulkan 1.3 がリリースされました。コアにダイナミック レンダリングを搭載し、最新の GPU 向けの新しいロードマップ ガイダンスが提供されています。 」
- ^ 「プログラム」(PDF) . www.x.org .
- ^ 「Radeon VulkanドライバーがMesaに追加され、Radeon VulkanとOpenGLのベンチマークが新しくなり、AMDGPU-PROも公開 - Phoronix」。Phoronix.com。2018年8月1日閲覧。
- ^ a b 「Vulkan Virgl が VM 内でこのグラフィックス/コンピューティング APIのサポートを開始 - Phoronix」。www.phoronix.com。
- ^ 「Lavapipe CPU ベースの Vulkan が Windows に移植されました - Phoronix」。
- ^ 「オープンソースのQualcomm「TURNIP」Vulkanドライバーが重要なパフォーマンス機能を追加」www.phoronix.com。
- ^ 「TURNIP Vulkan ドライバーがQualcomm の KGSL で稼働中」www.phoronix.com。
- ^ 「Raspberry Pi 4 Vulkan ドライバー「V3DV」が Mesa 20.3 に統合されました - Phoronix」。
- ^ 「PanVK は今のところ Vulkan 1.1 の宣伝を中止」。
- ^ 「Microsoft の「DZN」Mesa コードは 99.75% 以上の Vulkan 1.0 準拠を達成」。
- ^ "「Dozen」は、Direct3D 12 で Vulkan を実装するために Mesa に統合されました。
- ^ Edge, Jake (2016年10月5日). 「Androidの明示的フェンシングをメインラインに導入」 . LWN.net .
- ^ 「Debianリポジトリのlibgbm 」。Packages.debian.org 。
- ^ 「Mesa 以外のグラフィック ドライバー実装による代替ウィンドウ システムの有効化」。X.org 。
- ^ 「NVIDIA 、デバイスメモリアロケータプロジェクトに関するフィードバックを求める」Phoronix。
- ^ “Nouveau Video Acceleration” . freedesktop.org。
- ^ 「Radeon 機能マトリックス」 . freedesktop.org .
- ^ 「Fedora Linux、法的懸念からMesaのH.264 / H.265 / VC1 VA-APIサポートを無効化」 Phoronix 2022年10月1日閲覧。
- ^トラル、イアーゴ (2014 年 8 月 8 日)。「メサへのダイブ」。2016 年5 月 19 日に取得。
- ^ 「ダイレクトレンダリングインフラストラクチャステータスページ」。freedesktop.org 。
- ^ 「Linuxマシンでゲームのパフォーマンスを向上させる方法 - APC」Apcmag.com 2013年7月25日。2019年1月25日時点のオリジナルよりアーカイブ。 2018年8月1日閲覧。
- ^ 「Linux: Mesa、Gallium3D、Nouveau、NVIDIA ドライバー、OpenGL テスト (GTX 280、GTX 480、GTX 580) – Geeks3D」 . Geeks3d.com . 2012年1月10日. 2018年8月1日閲覧。
- ^ 「NouveauドライバーはNVIDIAの公式ドライバーよりも依然としてかなり遅い - Phoronix」Phoronix.com . 2018年8月1日閲覧。
- ^ 「Intel/NVIDIA/AMD、オープンソース/クローズドソースLinux GPUドライバーのパフォーマンスで競争 - Phoronix」 Phoronix.com . 2018年8月1日閲覧。
- ^ a b c Paul, Brian (2000年8月10日). 「ダイレクトレンダリングインフラストラクチャ入門」 . Dri.sourceforge.net . 2018年3月16日時点のオリジナルよりアーカイブ。 2012年1月25日閲覧。
- ^ "DRI2" . X.org. 2013年4月16日時点のオリジナルよりアーカイブ。2012年1月25日閲覧。
- ^ 「DRI3と現在 [LWN.net]」 . lwn.net . 2018年8月1日閲覧。
- ^ 「[PATCH 0/6] Coreおよびi965ドライバにDRI3000サポートを追加」 Lists.freedesktop.org. 2013年10月31日. 2018年8月1日閲覧。
- ^ "xorg-x11-drv-intel-2.99.917-19.20151206.fc23 dri3 をデフォルトで (再)有効化 - kde - Fedora メーリングリスト" . lists.fedoraproject.org . 2016年12月3日閲覧。
- ^ 「Radeon-AMDGPU-1.19-Updates」 . Google.de . 2016年12月3日閲覧。
- ^ 「LLVMpipe: OpenGLとGallium3DをCPUで」 Phoronix.com 2010年4月30日. 2014年11月4日閲覧。
- ^ "llvmpipe" . mesa3d.org . 2015年6月8日閲覧。
- ^ "OpenSWR" . openswr.org . 2018年8月1日閲覧。
- ^ 「Mesamatrix: OpenGL vs Mesaマトリックス」mesamatrix.net . 2018年8月1日閲覧。
- ^ "OpenSWR" . openswr.org . 2018年8月1日閲覧。
- ^ “Mesa (Master): Virgl: virtio-gpu 3D (V2) 用ドライバーを追加” . 2018年8月28日時点のオリジナルよりアーカイブ。 2018年8月28日閲覧。
- ^ 「Mesa の VirGL OpenGL 機能の追跡 - Phoronix」。www.phoronix.com。
- ^ 「Mesa の VirGL が OpenGL 4.2 をサポートし、ゲスト VM を提供できるようになりました - Phoronix」。www.phoronix.com。
- ^ 「Virgl3D の現在のパフォーマンス、将来の計画 - Phoronix」。www.phoronix.com。
- ^ 「仮想世界の最新情報は?」(PDF)。2018年10月1日時点のオリジナルよりアーカイブ(PDF) 。 2023年11月19日閲覧。
- ^ 「GPU仮想世界の新機能とは?」(PDF) 。2020年10月28日時点のオリジナル(PDF)からのアーカイブ。
- ^ 「VirGL — Mesa 3D グラフィックス ライブラリの最新ドキュメント」。
- ^ 「Virtio-GPU Venus — Mesa 3D グラフィックス ライブラリの最新ドキュメント」。
- ^ “DRI メガドライバー” . X.org。 2013 年 9 月 25 日。
- ^ 「VDPAUとXvMCの状態トラッカーは別々のライブラリになりました」 Phoronix.com 2014年6月23日。
- ^ 「はじめに — NIR 0.0.1 ドキュメント」。
- ^ "NIR: Mesa 用の新しいコンパイラー IR" .
- ^ 「Mesa が古い GLSL-To-TGSI の廃止を準備 - 大規模なコード削除、パフォーマンスと修正の勝利」。
- ^ 「ビルド設定ファイル」 . cgit.freedesktop.org . Galliumドキュメント.
- ^ Fonseca, José (2008年4月27日). 「Gallium3D: Introduction」 . 2014年6月20日閲覧。
- ^ Fonseca, José. 「MESA3D.org: Introduction」 . 2016年11月2日時点のオリジナルよりアーカイブ。 2016年10月28日閲覧。
- ^ 「Gallium3DがMesaのメインラインコードベースに登場!」Phoronix、2009年2月11日。 2010年10月26日閲覧。
- ^ Rathmann (Koalabr), B. (2008年2月26日). 「ヌーヴォーの現状、パート2」 . LWN.net . 2008年3月7日閲覧。
- ^ a b “Nouveau Companion 36” . Nouveau.freedesktop.org . 2008年3月7日. 2013年3月7日時点のオリジナルよりアーカイブ。 2008年4月1日閲覧。
- ^ 「ATI R300 Gallium3D DRI サポートは「完了」しました」「 . Phoronix . 2009年11月9日. 2010年11月15日閲覧。
- ^ 「Radeon "R600g" Gallium3D ドライバーが [Mesa] Master に統合」 Phoronix 2010年5月27日. 2010年10月26日閲覧。
- ^ "X.Org Wiki GalliumStatus" . Xorg。 2010 年 9 月 22 日。2010 年12 月 7 日に取得。
- ^ "iris: Intel Gen8+ GPU用の新しい実験的なGalliumドライバーを追加 (!283) · マージリクエスト · Mesa / mesa" . GitLab . 2019年2月20日. 2019年9月21日閲覧。
- ^ "TG-Gallium3D" . Tungsten Graphics. 2008年5月3日時点のオリジナルよりアーカイブ。 2008年4月1日閲覧。
- ^ Rusin, Zack (2008年2月6日). 「GPGPU」 . 2008年4月1日閲覧。
- ^ Rusin, Zack (2008年2月7日). 「OpenVGと2Dの高速化」 . 2008年4月1日閲覧。
- ^ "DRI2" . 2007年10月4日. 2008年7月4日時点のオリジナルよりアーカイブ。 2008年4月1日閲覧。
- ^ Rusin, Zack (2007年11月2日). 「Gallium3D LLVM」 . 2008年4月1日閲覧。
- ^ Marshall, David (2008年12月16日). 「VMwareによる年末のTungsten Graphics買収」 InfoWorld.
- ^ "Gallium" . Freedesktop.org . 2011年11月2日. 2012年8月24日閲覧。
- ^ "Nouveau Companion 37" . Nouveau.freedesktop.org . 2008年3月21日. 2012年2月8日時点のオリジナルよりアーカイブ。 2008年4月1日閲覧。
- ^ "nouveau: 古いDRIドライバに別れを告げよう... (FDO上のcgit)" . Cgit.freedesktop.org . 2008年7月13日.
- ^ 「Gallium3DがMesaのメインラインコードベースに登場!」 Phoronix.com 2009年2月11日。
- ^ Larabel, Michael (2009年2月25日). 「Gallium3D、EGLがFreeBSDでビルド可能に」 . Phoronix .
- ^ 「OpenVG状態トラッカーはMesa 3Dに搭載されています」 Sourceforge.net 、 2009年5月1日。
- ^ “Mesa 7.5 リリースノート / 2009年7月17日” . Mesa3d.org . 2009年7月17日. 2010年6月13日時点のオリジナルよりアーカイブ。 2017年9月12日閲覧。
- ^ "r600g: 初期のエバーグリーンサポートを追加 (FDO 上の cgit)" Cgit.freedesktop.org . 2010年9月10日.
- ^ "d3d1x: Gallium用の新しいDirect3D 10/11 COM状態トラッカーを追加" . Cgit.freedesktop.org . 2010年9月21日.
- ^ Larabel, Michael (2011年11月30日). 「Gallium3D Intel 965 ドライバーが廃止される」 . Phoronix . p. 1. 2011年12月1日閲覧。
- ^ Larabel, Michael (2011年11月30日). 「Gallium3D Cell Driver Gets Dropped Too」 . Phoronix . p. 1. 2011年12月1日閲覧。
- ^ "nine: Direct3D9 (v3) 用の状態トラッカー9を追加" . Cgit.freedesktop.org . 2014年11月18日.
- ^ 「Mesa 19.1が実験的なIntel Gallium3Dとその他の新しいGL/VLKドライバーとともにリリース - Phoronix」 www.phoronix.com . 2019年9月21日閲覧。
- ^ 「Mesa 23.2 の機能開発は多数の新しい Vulkan 拡張機能で完了」。
- ^ “Mesa Introduction” . Mesa Team . 2015年5月4日時点のオリジナルよりアーカイブ。 2015年6月8日閲覧。
- ^ 「プロジェクト履歴」Mesaドキュメント。2021年3月11日閲覧。
- ^ 「GlideとDRIの関係は?」 dri.freedesktop.org . 2012年1月25日閲覧。
外部リンク
Gallium3Dの外部リンク
- freedesktop.org - Gallium3D、Gallium3D の現状に関する記事
- ホセ、フォンセカ (2008 年 4 月)、Gallium3D の概要
- ルシン、ザック(2007年9月21日)、Gallium3D
- コーベット、ジョナサン(2007年11月)、グラフィックスプロセッサのメモリ管理
- Generic GPU-Accelerated Video Decoding、Google Summer of Code 2008プロジェクト(Gallium使用)、2008年7月31日時点のオリジナルよりアーカイブ
- Rusin, Zack (2008)、Gallium3D: Graphics Done Right (PDF) (プレゼンテーション)、Akademy
- Rusin, Zack (2008), Gallium3D: Graphics Done Right (プレゼンテーション), Akademy , 2011年1月1日のオリジナル(ビデオ)からアーカイブ
- Gallium3D の AROS および Haiku への移植に関する最新情報(PDF)、FOSDEM 2010、2010 年 2 月 7 日
| ユーザーモード | ユーザーアプリケーション | bash、LibreOffice、GIMP、Blender、0 AD、Mozilla Firefox、... | ||||
|---|---|---|---|---|---|---|
| システムコンポーネント | init デーモン: OpenRC、runit、systemd、... | システムデーモン: polkitd、smbd、sshd、udevd、... | ウィンドウシステム: X11、Wayland、SurfaceFlinger (Android) | グラフィック: Mesa、AMD Catalyst、... | その他のライブラリ: GTK、Qt、EFL、SDL、SFML、FLTK、GNUstep、... | |
| C標準ライブラリ | fopen、、、、、、、... (最大 2000 個のサブルーチン) glibc は高速化を目指し、musl は軽量化を目指し、uClibc はexecv組み込みシステムを対象とし、bionic はmallocAndroid向けに作成されました。memcpyすべてPOSIX / SUS互換を目指しています。 localtimepthread_create | |||||
| カーネルモード | Linuxカーネル | stat、、、、、、、、、、、など(約380のシステムコール)Linuxカーネルシステムコールインターフェース( SCI splice)は、 POSIX / SUS互換を目指している[ 1 ]dupreadopenioctlwritemmapcloseexit | ||||
| プロセススケジューリングサブシステム | IPCサブシステム | メモリ管理サブシステム | 仮想ファイルサブシステム | ネットワークサブシステム | ||
| その他のコンポーネント: ALSA、DRI、evdev、klibc、LVM、デバイス マッパー、Linux ネットワーク スケジューラ、Netfilter Linux セキュリティ モジュール: SELinux、TOMOYO、AppArmor、Smack | ||||||
| ハードウェア(CPU、メインメモリ、データストレージデバイスなど) | ||||||
- ^ 「管理者ガイド README」。Kernel.org git リポジトリ。