Mesa(コンピューターグラフィックス)

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

メサ
原作者ブライアンポール
開発者現在: IntelAMDVMware
以前: Tungsten Graphics [1]
初回リリース1995年2月
安定リリース
22.0.0 [2] ウィキデータでこれを編集する /2022年3月9日; 3日前 (9 March 2022)
リポジトリ
で書かれているC ++ Cアセンブリ言語
オペレーティング・システムクロスプラットフォームBSDHaikuLinuxなど)
タイプグラフィックライブラリ
ライセンスMITライセンス
Webサイトmesa3d .org Edit this on Wikidata

Mesaは、 Mesa3DおよびMesa 3D Graphics Libraryとも呼ばれ、 OpenGLVulkan、およびその他のグラフィックAPI仕様オープンソースソフトウェア実装です。Mesaは、これらの仕様をベンダー固有のグラフィックハードウェアドライバーに変換します。

その最も重要なユーザーは、主にIntelとAMDがそれぞれのハードウェア用に開発および資金提供している2つのグラフィックスドライバーです(AMDは非推奨のAMD CatalystよりもMesaドライバーRadeonとRadeonSIを宣伝しており、IntelはMesaドライバーのみをサポートしています)。独自のグラフィックスドライバー(Nvidia GeForceドライバーやCatalystなど)がすべてのMesaに取って代わり、グラフィックスAPIの独自の実装を提供します。Nouveauと呼ばれるMesaNvidiaドライバーを作成するためのオープンソースの取り組みは、主にコミュニティによって開発されています。

ゲームなどの3Dアプリケーションに加えて、最新のディスプレイサーバーX.orgのGlamourまたはWaylandWeston)はOpenGL/ EGLを使用します。したがって、すべてのグラフィックは通常Mesaを通過します。

Mesaはfreedesktop.orgによってホストされており、1993年8月にプロジェクトで現在も活動しているBrianPaulによって開始されました。Mesaはその後広く採用され、OpenGL仕様を管理するKhronos Groupのグラフィックハードウェアメーカーを含む、世界中のさまざまな個人や企業からの多くの貢献が含まれています。Linuxの場合、開発はクラウドファンディングによって部分的に推進されています。[3]

概要

ビデオゲームは、レンダリング計算をOpenGLを介してGPUにリアルタイムでアウトソーシングします。シェーダーはOpenGLシェーディング言語またはSPIR-Vで記述され、CPUでコンパイルされます。コンパイルされたプログラムはGPUで実行されます。
Linuxグラフィックスタックの図: DRM&libDRM、Mesa3Dディスプレイサーバーはウィンドウシステムに属しており、ゲームなどには必要ありません。

レンダリングAPIの実装

Waylandの無料実装は、 EGLのMesa実装に依存していますフレームバッファへのアクセスに対応するために作成されたlibwayland-EGLと呼ばれる特別なライブラリは、 EGL1.5リリースによって廃止されるはずでした。GDC 2014、AMDは、カーネル内のブロブの代わりにDRMを使用するための戦略の変更を検討していました。[4]

Mesaは、グラフィックAPIのハウジング実装として知られています。歴史的に、Mesaが実装した主なAPIは、他のKhronos Group関連の仕様(OpenVGOpenGL ES、最近のEGLなど)とともにOpenGLです。しかし、Mesaは他のAPIを実装でき、実際、2013年7月以降Glide(非推奨)とDirect3D 9で実装されました。 [5] MesaはUnixのようなオペレーティングシステムに固有ではありません。たとえば、Windowsでは、MesaはDirectX上にOpenGLAPIを提供します。

Mesaは、OpenGLなどのグラフィックAPIとオペレーティングシステムカーネルのグラフィックハードウェアドライバーの間に変換レイヤーを実装します。各ハードウェアドライバーには独自の実装(したがってステータス)があるため、サポートされるさまざまなグラフィックAPIのバージョンはドライバーによって異なります。これは特に「クラシック」ドライバーに当てはまりますが、Gallium3Dドライバーは、サポートされている拡張機能とバージョンを均質化する傾向がある共通のコードを共有しています。

Mesaは、 mesamatrix.netで視覚化された現在のOpenGL適合性[6] [7]のステータスでサポートマトリックスを維持しますMesa 10は、Intel、AMD / ATI、およびNvidiaGPUハードウェア用のOpenGL3.3に準拠しています。Mesa 11が発表され、一部のドライバーはOpenGL4.1に準拠しています。[8]

Mesa 12には、OpenGL 4.2および4.3と、IntelVulkan1.0のサポートが含まれています。

Mesa 13は、OpenGL 4.4および4.5のIntelサポート(すべての機能はIntel Gen 8 +、Radeon GCN、Nvidia(Fermi、Kepler)でサポートされていますが、Khronos-Test for 4.5-Labelはサポートされていません)およびコミュニティドライバーによる実験的なAMDVulkan1.0サポートをもたらしましたRADV。OpenGL ES 3.2は、Intel Skylake(Gen9)で可能です。[9]

2017年の最初の安定バージョンは17.0(新年のカウント)です。[10] [11] [12]対応機能は、OpenGL 4.5、IntelHaswell用のOpenGL4.5、[13] [14] NVidia MaxwellおよびPascal(GM107 +)用のOpenGL4.3として認定されています。[15] Maxwell 1(GeForce GTX 750 Ti以上とGM1xx)を使用して、大幅なパフォーマンスの向上が測定されました。Maxwell-2-カード(GM2xxを搭載したGeForce GTX 980以降)は、NVidia情報なしでアンダークロックされます。[16]

OpenGL 4.4、4.5、およびOpenGL ES3.0+用のKhronosCTSテストスイートが現在(2017-01-24)オープンソースであり、Mesa13および17のすべてのテストが無料で可能になりました。[17]

2017年の2番目の安定バージョンである17.1.0は、いくつかの興味深い改善を加えて2017年5月10日にリリースされました。IntelIvyBridge用のOpenGL4.2+とIntelOpenSWRRasterizer用のOpenGL3.3+は、ハイライトの2つです。[18] [19]

OpenGLのモジュール化された性質により、Mesaは、OpenGLの新しいバージョンの拡張機能を、そのようなバージョンの完全なサポートを主張することなく実際にサポートできることに注意してください。たとえば、2016年7月、MesaはOpenGL ES 3.1だけでなく、5つを除くすべてのOpenGL ES 3.2拡張機能、およびOpenGLまたはOpenGLESバージョンの一部ではないいくつかの拡張機能もサポートしました。[20]

MesaとLinuxの未解決の質問は、ハイダイナミックレンジ(HDR)です。クリーンで基本的な実装のために、多くの問題とオープンポイントがパイプにあります。[21]

3rdバージョン17.2は、2017年9月から利用可能で、IntelおよびAMD向けの3DでのOpenGL4.6の新機能と速度の改善が含まれています。Nouveau for KeplerのOpenGL4.5で失敗するテストはわずか1.4%です。[22]

4番目のバージョン17.3は、2017年12月から準備ができています。多くのドライバーで多くの改善が利用可能です。OpenGL 4.6はほぼ完全に利用可能です(Spir-Vは準備ができていません)。AMD Vulkan Driver RADVは、Khronos-Testに完全に準拠しています。[23]

2018の最初のバージョンは18.0であり、2018年3月から2017年の同じスキームで利用可能です。[24] OpenGL 4.6の完全サポートは準備できていませんが、多くの機能と改善がRC3で正常にテストされました。ColorsでのInteli965の10ビットサポートもハイライトです。[25]新しいのは、実際のLinuxバージョンでのIntelCannonLakeAMDVegaのサポートです。AMD Evergreen Chips(RV800またはR900)は、OpenGL4.5のサポートに近いものです。古いAMDR600またはRV700チップは、OpenGL4.xの一部の機能を備えたOpenGL3.3のみをサポートできます。Freedrenoは、Adrenoハードウェアのドライバーであり、OpenGL3.3に近いサポートです。

2018年の2番目のバージョンは18.1で、5月から利用できます。ターゲットは、IntelANVおよびAMDRADVドライバーのVulkan1.1.72です。spir-Vを搭載したOpenGL4.6も主なターゲットです。AMD R600 / Evergreen、Nvidia Tesla以前、Fermi、Kepler、Intel Sandybridge、Ivybridge、Haswell、Broadwellなどの古いハードウェアのドライバーの機能と最適化を永続的に完了することができます。ARMアーキテクチャは、メインターゲットのOpenGLESを使用したRaspi用のAdreno3xx / 4xx/5xxおよびBroadwellVC4/VC5でも大幅な改善を行いました。

2018年の第3バージョンは18.2で、9月に安定したカレンダーで利用できます。spir-VおよびVulkan1.1.80を搭載したOpenGL4.6はWIPに含まれています。仮想マシン用のソフトドライバーVIRGLは、OpenGL4.3およびOpenGLES3.2に対応しています。RadeonSIはOpenGLES3.2にも対応しています。OpenGL 4.4(18.1の3.1)のASTCテクスチャ圧縮サポートと互換性Modusサポートは、AMDGCNカード用のRadeonSIのその他のハイライトです。IntelおよびAMD向けの新しいVulkan1.1以降の機能が利用可能です。MesamatrixのVulkanの詳細を参照してください。[26]

2018年の4番目のバージョンは18.3であり、2018年12月に安定バージョン18.3.1としてリリースされます。詳細の多くの機能と新しいハードウェアのサポートが主要部分です。OpenGL4.6の完全なサポートは準備ができていません。[27] [28]

2019年の最初のバージョンは19.0で、3月にリリースされました。OpenGL 4.6の完全なサポートは準備ができていませんが、この方法での多くの改善がすべてのドライバーにあります。[29] [30]

2019年の第2バージョンは19.1です。TGSIからNIRへの移行は、Spir-Vおよびより多くのOpenCLを備えたOpenGL4.6への道の1つの主要な機能です。RadeonSIは、NIRを使用したdev-Versionで適切に動作します。[31]

2019年の第3バージョンは19.2です。OpenGL 4.6は、新しいIntelIrisDriverのベータ版に対応しています。[32]

2019年の第4バージョンは19.3です。OpenGL4.6はInteli965に対応しており、新しいIrisドライバーにはオプションです。[33]

2020年の最初のバージョンは20.0です。Vulkan 1.2は、AMDRADVおよびIntelANVに対応しています。Intel Irisは、Intel BroadwellGen8以降のデフォルトです。[34] [35] RadeonSIドライバーは、デフォルトでTGSIの代わりにNIRを使用するように切り替えました。

2020年の第2バージョンは20.1です。多くのドライバーで多くの改善が用意されています。Zinkは、OpenGLoverVulkanの新しい仮想ドライバーです。[36]

2020年の第3バージョンは20.2です。Zink用のOpenGL3.0は1つの新機能です。LLVMpipeはOpenGL4.3+(20.3では4.5+)をサポートします。ARM Panfrostは、多くのモジュールでほとんど改善されています。Pascal以降を搭載したNouveauのOpenCLでは共有仮想メモリが可能です。[37] [38] [39]

2020年の第4バージョンは20.3です。v3dおよびv3dvは、RaspberryPi4などのBroadcomハードウェアを備えたOpenGLおよびVulkan1.0の新しいドライバーです。OpenCL1.2はクローバーモジュールで完全にサポートされています。ZinkはOpenGL3.3以降をサポートしています。LLVMpipe仮想ドライバーは、4.6が表示されたOpenGL4.5+をサポートするようになりました。LLVMpipeのVulkanTreeとしてのVALLIUMがマージされます。[40] [41] [42] [43] [44]

Mesa 21.0では、d3d12はOpenGL3.0から3.3にマージされます。MicrosoftとCollaboraは、Direct3D12を使用してWSL2からWindows10への新しいエミュレーションd3d12を開発しています。OpenCL1.2もd3d12のターゲットです。ファクター2から5の加速は、改良されたOpenGLコードを備えたベンチマークSPECviewperfで行われます。[45] [46] [47] [48]多くのMesa21.0機能によりパフォーマンスが向上します。[49]新しいリリース21.0.0は、2021年3月11日から公開されています。

Mesa21.1は2021年の2番目のリリースです。[50] OpenGL4.6+およびOpenGLES3.1+はZinkで利用できます。AMD Driver 600gはNIRに変更でき、古いRadeeonHD5000および6000カードの可能性が高くなります。[51] QualcommTurnipはVulkan1.1+に到達し、ソフトウェアエミュレーションLavapipeVulkan1.1+に到達します。Vulkan1.2以降を搭載したGoogleVirtIOGPUドライバーVenusは、実験状態でマージされ、メサメインツリーのパフォーマンスが低下します。[52]

Mesa 21.2は、2021年の3番目のリリースです。GoogleVirtualVulkan IO Driver Venusは、完全なVulkan 1.2+サポート(より多くのmesamatrix)で正式に導入されます。ARM Panfrost:OpenGL ES 3.1+サポートが利用可能であり、panVKは新しいVulkanドライバーです。新しいドライバーAsahiを使用してARMAppleM1の初期サポートが開始されました。21.2は2021年8月4日から利用可能です。[53]

古い計画は、プログラミング、サポート、最新のガリウム3Dパーツのバグ修正に多くの利点がある、古いドライバーをクラシックツリーに分割することです。ここでの問題の1つは、IntelHaswellに人気のある古いハードウェアをサポートしているInteli965であり、以前はWindows10もサポートしていました。[54] Intel Gen 4 GraphicsからHaswellへの新しいGallium3DドライバーCrocusは、2021年の次の時期に分割される可能性のあるgallium3D領域を完成させるために開発中です。Crocusは21.2でオプションで利用可能です。[55] バージョン22.0では、Classicドライバーは廃止されました。Vulkan 1.3は、IntelAnvilおよびAMDRADVで使用できます。[56]

レンダリングAPIの表

メサバージョン 最初のリリース日 最終更新[57] バルカン OpenCL OpenGL OpenGL ES OpenVG EGL GLX Direct3D
1.3.205
2022-02-04
3.0
2020-11-30
4.6
2017-07-31
3.2.6
2019-07-10
1.1
2008-12-03
1.5
2014-03-19
1.4
2005-12-16
12
2015-07-29
Current stable version: 21.3 2021-11-17 21.3.7 [24] [58] 1.2.190(Intel Gen8 +、AMD GCN Gen2 +、Google Venus、Lavapipe)、1.0 +(AMD GCN1、Broadcom v3dv)、1.1 +(Qualcomm Turnip) 1.0、1.1、1.2(完全サポート)、3.0(wip、21.1の一部の機能)[41] 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:3.2:Intel i965、AMD radeonsi、llvmpipe、VirGL、freedreno、Zink(21.3); 3.1:AMD r600、Nvidia nvC0、softpipe、Broadcom v3d、ARM Panfrost(21.3) 該当なし[59] [60] 1.5 1.4 9.0c [61] [62]
Older version, yet still maintained:21.2 2021-08-04 21.2.6 [24] [63] 1.2.175(Intel Gen8 +、AMD GCN Gen2 +、Google Venus)、1.0 +(AMD GCN1、Broadcom v3dv)、1.1 +(Lavapipe、Qualcomm Turnip)
Old version, no longer maintained:21.1 2021-05-05 21.1.8 [24] [64] 1.2.168(Intel Gen8 +、AMD GCN Gen2 +)、1.0 +(AMD GCN1、Broadcom v3dv)、1.1 +(Lavapipe、Qualcomm Turnip)
Old version, no longer maintained:21.0 2021-03-11 21.0.3 [24] [65] 1.2.162(Intel Gen8 +、AMD GCN Gen2 +)、1.0 +(AMD GCN1、Broadcom v3dv)
Old version, no longer maintained:20.3 2020-12-03 20.3.5 [24] [66] 1.2.158(Intel Gen8 +、AMD GCN Gen2 +)、1.0 +(AMD GCN1、Broadcom v3dv)
Old version, no longer maintained:20.2 2020-09-28 20.2.6 [24] [67] 1.2.145(Intel Gen8 +、AMD GCN Gen2 +)、1.0 +(AMD GCN1) 1.0、1.1、1.2(WIP)一部の不適合テスト
Old version, no longer maintained:20.1 2020-05-27 20.1.10 [24] [36] 1.2.139(Intel Gen8 +、AMD GCN Gen2 +)、1.0 +(AMD GCN1)
Old version, no longer maintained:20.0 2020-02-19 20.0.8 [24] [68] 1.2以降(Intel Gen8 +、AMD GCN Gen2 +)
Old version, no longer maintained:19.3 2019-12-11 19.3.5 [24] [69] [70] 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)
Old version, no longer maintained:19.2 2019-09-25 19.2.8 [24] 4.5
Old version, no longer maintained:19.1 2019-06-11 19.1.8 [24]
Old version, no longer maintained:19.0 2019-03-13 19.0.8
Old version, no longer maintained:18.3 2018-12-07 18.3.6
Old version, no longer maintained:18.2 2018-09-07 18.2.8 [26]
Old version, no longer maintained:18.1 2018-05-18 18.1.9 [71] 1.1(Intel Gen8 +、AMD GCN Gen2 +)(1.1.73)
Old version, no longer maintained:18.0 2018-03-27 18.0.5 1.0+(1.0.66)
Old version, no longer maintained:17.3 2017-12-08 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)による:
一部のCTS-テスト
は1.0および
1.1、1.2(WIP)で失敗する
ため、1.0、1.1、1.2は
不完全です[72] [73]
Old version, no longer maintained:17.2 2017-09-04 17.2.8
Old version, no longer maintained:17.1 2017-05-10 17.1.10
Old version, no longer maintained:17.0 2017-02-13 [74] [10] 17.0.7
Old version, no longer maintained:13.0 2016-11-01 [75] 13.0.6 4.4
(4.5テストラベルなし)
Old version, no longer maintained:12.0 2016-07-08 [76] 12.0.6 4.3 [76] 3.1
Old version, no longer maintained:11.2 2016-04-04 [77] 11.2.2 該当なし 4.1(Intel 3.3以降)
Old version, no longer maintained:11.1 2015-12-15 [78] 11.1.4 3.0
Old version, no longer maintained:11.0 2015-09-12 [79] 11.0.9
Old version, no longer maintained:10.6 2015-06-15 [80] 10.6.9 3.3 [81] 1.4
Old version, no longer maintained:10.5 2015-03-06 [82] 10.5.9 1.1
Old version, no longer maintained:10.4 2014-12-14 [83] 10.4.7
Old version, no longer maintained:10.3 2014-09-19 [84] 10.3.7 該当なし
Old version, no longer maintained:10.2 2014-06-06 [85] 10.2.9
Old version, no longer maintained:10.1 2014-03-04 [86] 10.1.6
Old version, no longer maintained:10.0 2013-11-30 [87] 10.0.5
Old version, no longer maintained:9.0 2012-10-08 9.0.3、9.1.7、9.2.5 該当なし 3.1 2.0
Old version, no longer maintained:8.0 2012-02-08 8.0.5 3.0
Old version, no longer maintained:7.0 2007-06-22 7.0.4、...、7.11.2 2.1 該当なし 該当なし 該当なし
Old version, no longer maintained:6.0 2004-01-06 6.0.1 1.5 1.3
Old version, no longer maintained:5.0 2002-11-13 5.0.2 1.4
Old version, no longer maintained:4.0 4.0 2001-10-22 4.0.4 1.3
Old version, no longer maintained:3.0 1998-09 3.1、3.2.1、3.4.2.1 1.2
Old version, no longer maintained:2.0 1996-10 2.62.6 1.1
Old version, no longer maintained:1.0 1995-02 1.2.8 1.0
伝説:
古いバージョン
古いバージョン、まだ維持されています
最新バージョン
最新のプレビューバージョン
将来のリリース

バルカン

KhronosGroupは2015年3月にVulkanAPIを正式に発表し、2016年2月16日にVulkan 1.0を正式にリリースしました。VulkanはOpenGLとの互換性を破り、モノリシックステートマシンの概念を完全に放棄します。Gallium3Dの開発者は、VulkanをGallium3D 2.0に沿ったものと呼びました。Gallium3Dは、OpenGLステートマシンを実装するコードをハードウェアに固有のコードから分離します。

Gallium3DがTGSIを取り込むと、VulkanはSPIR-V( 「Vulkan」のような標準のポータブル中間表現バージョン「V」)を取り込みます。

Intelは、仕様が正式にリリースされた日にハードウェア用のVulkanドライバーの実装をリリースしましたが、4月にメインライン化されたため、2016年7月にリリースされたMesa12.0の一部になりました。 Gallium3Dの仕様では、Vulkanドライバーの場合、Gallium3Dの上にフランジを付けることはさらに意味がありません。同様に、NIRを使用する技術的な理由はありませんが、Intelの従業員はVulkanドライバーをそのように実装しました。[88]

3月にリリースされ、将来的にフリーでオープンソースのソフトウェアとしてリリースされ、Mesaにメインラインされることが発表された、AMD独自のVulkanドライバーも、Gallium3Dを放棄することが予想されます。[89]

RADVはAMD向けの無料プロジェクトであり、バージョン13以降で利用できます。[9] Khronos-Testへの準拠はバージョン17.3で提供されました。実際には、Mesa18.1以降のVulkan1.0および1.1が完全にサポートされています。

Nvidiaは発売日にVulkanをサポートする独自のGeForceドライバーをリリースし、Imagination Technologies(PowerVR)、Qualcomm(Adreno)、ARM(Mali)は、Androidおよびその他のオペレーティングシステム用の独自のVulkanドライバーを同じか少なくとも発表しました。しかし、これらのGPU用の追加の無料のオープンソースVulkan実装がいつ表示されるか、また表示されるかどうかはまだわかりません。

MesaソフトウェアドライバーVIRGLは、仮想マシンをサポートするためのGSOCプロジェクトで2018年にVulkan開発を開始します。[90]

Lavapipeは、CPUベースのSoftware Vulkanドライバーであり、LLVMpipeの兄弟です。Mesaバージョン21.1はVulkan1.1以降をサポートしています。[91]

Googleは、Vulkan1.2以降を完全にサポートするMesa21.1の仮想マシン用のVenusVulkanドライバーを導入しました。[52]

QualcommTurnipとBroadcomv3dvは、QualcommAdrenoとBroadcomRaspberry4ハードウェアの新しいドライバーです。カブは、OpenGLのfreedrenoのVulkan兄弟です。V3dvは、Mesa20.3以降のVulkan1.0以降をサポートしています。バージョン21.1では、TurnipはVulkan1.1以降をサポートしています。[92] [93] [94]

明示的なフェンシング

1つのバッファを残りのメモリから分離する一種のメモリバリアは、フェンスと呼ばれます。レンダリングおよび表示操作が完了する前にバッファが上書きされないようにするためのフェンスがあります。暗黙的なフェンシングは、グラフィックスドライバーとGPUハードウェア間の同期に使用されます。フェンスは、バッファが1つのコンポーネントで使用されなくなったことを通知するため、別のコンポーネントで操作したり、再利用したりできます。以前は、Linuxカーネルには暗黙のフェンシングメカニズムがあり、フェンスはバッファーに直接接続されていました(GEMハンドルとFDを参照)が、ユーザースペースはこれを認識していません。明示的なフェンシングは、フェンスをユーザースペースに公開します。ユーザースペースは、ダイレクトレンダリングマネージャー(DRM)サブシステムとGPUの両方からフェンスを取得します。Vulkanには明示的なフェンシングが必要であり、トレースとデバッグに利点があります。

Linuxカーネル4.9は、Androidの同期フレームワークをメインラインに追加しました。[95]

汎用バッファ管理

Generic Buffer Management(GBM)は、Mesaに関連付けられたグラフィックスレンダリングにバッファーを割り当てるためのメカニズムを提供するAPIです。GBMは、DRMまたはopenwfd上のEGLのネイティブプラットフォームとして使用することを目的としています。作成するハンドルを使用して、EGLを初期化し、レンダーターゲットバッファーを作成できます。[96]

Mesa GBMは、グラフィックスドライバー固有のバッファー管理API(たとえば、さまざまなlibdrm_ *ライブラリ)を抽象化したものであり、MesaGPUドライバーを呼び出すことによって内部的に実装されます。

たとえば、WaylandコンポジターWestonは、OpenGL ES 2を使用してレンダリングを行います。これは、EGLを呼び出すことによって初期化されます。サーバーは「ベアKMSドライバー」で実行されるため、Mesa GBMインターフェイスに依存しているため、実際にはGBMプラットフォームと呼ばれるEGLDRMプラットフォームを使用します。

XDC2014で、Nvidiaの従業員Andy Ritgerは、GBMを置き換えるためにEGLを強化することを提案しました。[97]これはコミュニティによって積極的に受け入れられず、Nvidiaは最終的に彼らの考えを変え[98]、別のアプローチを取りました。

ビデオアクセラレーションAPIの実装

ビデオストリームのエンコードとデコードに必要な計算を行うには、次の3つの方法があります。

  1. ビデオ圧縮または解凍アルゴリズム(一般にCODECと呼ばれる)のソフトウェア実装を使用し、CPUでこのソフトウェアを実行します
  2. ビデオ圧縮または解凍アルゴリズム(一般にCODECと呼ばれる)のソフトウェア実装を使用し、G PU(3Dレンダリングエンジン)でこのソフトウェアを実行します。
  3. ビデオ圧縮または解凍アルゴリズムの完全な(または部分的な)ハードウェア実装を使用します。このようなASICをGPU/CPU / APU / SoCのチップに統合することが非常に一般的になっているため、豊富に利用できます。マーケティング上の理由から、企業はASICのブランドを確立しています。たとえば、PureVideo(Nvidia)、Unified Video Decoder(AMD)、Video Coding Engine(AMD)、Quick Sync Video(Intel)、DaVinci(Texas Instruments)、CedarX(Allwinner)、Crystal HD(Broadcom); 一部のASICは、半導体知的財産コアとしてライセンス供与できます; 通常、バージョンが異なれば、ビデオ圧縮および/またはビデオ解凍アルゴリズムも異なります。このようなASICのサポートは通常、ハードウェアを初期化し、低レベルの処理を行うために、カーネルドライバーに属します。ユーザースペースで実行されるMesaには、ソフトウェア用のいくつかのAPIの実装が含まれています。たとえば、 VLCメディアプレーヤーGStreamerHandBrakeなど、このようなASICに便利にアクセスできます。

たとえば、 Mesaの一部として開発されたNouveauは、Linuxカーネルの一部として開発されているLinuxカーネルコンポーネントも含み、PureVideoブランドのASICをサポートし、 VDPAUおよび一部XvMCを介してそれらへのアクセスを提供します。[99]

無料のradeonドライバーは、VDPAUおよびOpenMAXを介してUnifiedVideoDecoderおよびVideoCodingEngineをサポートます。[100]

V4L2は、WebカメラまたはTVチューナーによって配信されるビデオビットストリーム用 のカーネルからユーザースペースへのインターフェイスであることに注意してください。

デバイスドライバー

グラフィックスデバイスドライバーは、UMD(ユーザーモードドライバー)とKMD(カーネルモードドライバー)の2つのコンポーネントを使用して実装されます。Linuxカーネル4.2以降、AMDCatalystとMesaは同じLinuxカーネルドライバーamdgpuを共有します。Amdgpuは、DRMおよびKMSによって定義されたインターフェースを提供します。

グラフィックチップセットで利用可能な無料のオープンソースデバイスドライバーは、Mesaによって「管理」されます(既存の無料のオープンソースAPIの実装はMesa内で開発されているため)。現在、グラフィックスドライバーを作成するための2つのフレームワークがあります。「クラシック」とGallium3Dです。[101] Mesaで利用可能なドライバーの一部(すべてではない)の概要は、mesamatrix.netにあります

AMD / ATI R100からR800、Intel、および3Dアクセラレーションを備えたNvidiaカード用のデバイスドライバがあります。以前は、PlayStation3のIBM/ Toshiba / Sony Cell APU、S3 Virge&Savageチップセット、VIAチップセット、Matrox G200&G400などのドライバーが存在していました。[102]

フリーおよびオープンソースのドライバーは、プロプライエタリのクローズドソースドライバーと競合します。ハードウェアのドキュメントと人的資源の可用性に応じて、無料のオープンソースドライバーは、新しいハードウェアの3Dアクセラレーションのサポートに多少遅れをとっています。また、3Dレンダリングのパフォーマンスは、いくつかの注目すべき例外を除いて、通常は大幅に遅くなりました。[103] [104] [105] [106]今日でも、これはほとんどのNVIDIA GPUのNouveauに当てはまりますが、AMD Radeon GPUでは、オープンドライバーはプロプライエタリドライバーのパフォーマンスとほぼ一致するか、それを上回ります。

ダイレクトレンダリングインフラストラクチャ(DRI)

3DグラフィックスカードがPCで主流になると、一部の企業によって部分的にサポートされている個人が、ハードウェアアクセラレーションによる3DレンダリングのサポートをMesaに追加する作業を開始しました。[いつ?]ダイレクトレンダリングインフラストラクチャ(DRI)は、Mesa、OpenGL、およびその他の3DレンダリングAPIライブラリをデバイスドライバーおよびハードウェアとインターフェイスさせるためのこれらのアプローチの1つでした基本的な使いやすさのレベルに達した後、DRIサポートがMesaに正式に追加されました。これにより、Mesaライブラリを使用するときに実現可能なハードウェアサポートの利用可能な範囲が大幅に広がりました。[107]

DRIに適応することで、Mesaライブラリは最終的にフルスケールのOpenGLフレームワークのフロントエンドコンポーネントの役割を引き継ぎ、完全なソフトウェアレンダリング機能を落とさずにさまざまな程度の3Dハードウェアサポートを提供できるさまざまなバックエンドコンポーネントを備えています。システム全体で、さまざまなソフトウェアコンポーネントが使用されました。[107]

設計では、これらすべてのコンポーネントが注意深く相互作用する必要がありますが、それらの間のインターフェイスは比較的固定されています。それにもかかわらず、Mesaスタックと相互作用するほとんどのコンポーネントはオープンソースであるため、実験的な作業は、複数のコンポーネントとそれらの間のインターフェイスを一度に変更することによって行われることがよくあります。そのような実験が成功した場合、それらは次のメジャーまたはマイナーリリースに組み込むことができます。これは、たとえば、2007年から2008年の期間に開発されたDRI仕様の更新に適用されます。この実験の結果であるDRI2は、ロックなしで動作し、バックバッファーのサポートが改善されています。このために、Mesaの特別なgitブランチが作成されました。[108]

DRI3は、2013年からIntelドライバーによってサポートされ[109] [110]、2016年以降の一部のLinuxディストリビューションではデフォルトで[111]、Vulkanサポートなどを有効にしています。2016年後半以降、AMDハードウェアでもデフォルトになっています(X.Org Server 1.18.3以降)。[112]

ソフトウェアレンダラー

Mesaには、グラフィックハードウェアアクセラレータが存在しない場合に、フォールバックとしてシェーダーをCPU上で実行できるようにするswrastと呼ばれるソフトウェアレンダリングの実装も含まれています。Galliumソフトウェアラスタライザーは、ソフトパイプとして、または実行時にCPUコードを生成するLLVMllvmpipeをサポートして構築された場合に知られています。[113] [114] Mesa 10.x以降、OpenGL 3.3+はSoftpipe(10.3)およびLLVMpipe(10.2)でサポートされています。OpenGL 4.xの機能の実際の約80%は、Mesa 17.3に実装されています(Mesamatrixを参照)。

Mesa 12.0では、新しいIntel Rasterizer OpenSWRが利用可能であり、大規模なデータセットのクラスターで高い利点があります。ゲームやアートの画像よりもエンジニアリングの視覚化に重点を置いており、x86プロセッサでのみ機能します。[115]一方、OpenGL3.1+がサポートされるようになりました。[116] LLVMPIPEに関連する29から51までの加速度値は、いくつかの例で測定されました。[117] OpenGL 3.3+は、Mesa17.1以降のOpenSWRでサポートされています。

VirGLは、OpenGL3.3をサポートする2015年からMesa11.1に実装され、Mesa18以降Mesamatrixに表示される仮想マシン用のラスタライザーです。実際の新しいMesa18.2では、OpenGL4.3およびOpenGLES3.2で他よりも多くをサポートします。OpenGL 4.4および4.5の機能の約80%も使用できるようになりました。Vulkan Developmentは、GSOC2018プロジェクトから始まります。[118] [119] [120] [90] [121] [122]

[123]

D3d12は、Direct3D12を使用したOpenGL3.3+およびOpenCL1.2+のWSL2エミュレーション用のMicrosoftのプロジェクトです。D3D12は21.0に統合されています。[45]

Venusは、Googleによる仮想マシンのGPU用の新しいVulkanVirtIOGPUドライバーです。金星は21.1で統合され、21.2で公開されました。[52]

メガドライバー

複数のドライバーを単一の「メガ」ドライバーにバンドルするというアイデアは、EmmaAnholtによって提案されました。共有Mesaコードの単一コピーを複数のドライバー間で使用でき(各ドライバーに個別に存在するのではなく)、内部ライブラリインターフェイスが削除されているため、個別の共有ライブラリよりも優れたパフォーマンスを提供します。[124] VDPAUとXvMCの状態トラッカーは別々のライブラリになりました。[125]

シェーダー-db

シェーダー-dbは、さまざまなコンピューターゲームやベンチマークから収集された約20,000のシェーダーのコレクションであり、これらをコンパイルして統計を収集するためのスクリプトも含まれています。Shader-dbは、最適化の検証を支援することを目的としています。

予想外の数のシェーダーが手書きではなく生成されていることに気づきました。これは、これらのシェーダーが元々HLSLで記述され、 HLSL2GLSLなどのトランスレータープログラムによってGLSLに変換されたことを意味します。問題は、生成されたコードが最適とはほど遠い場合が多いことです。Matt Turnerは、Mesaのコンパイラにそのような肥大化したシェーダーを処理する負担を負わせるよりも、トランスレータプログラムでこれを修正する方がはるかに簡単であると述べました。

shader-dbは、フリーでオープンソースのソフトウェアとは見なされません。合法的に使用するには、シェーダーが含まれるすべてのコンピューターゲームのライセンスが必要です。

ソフトウェアアーキテクチャ

グラフィックドライバーは、OpenGLステートマシンの実装と、シェーダーをGPUのマシン言語にコンパイルするためのコンパイルスタックで構成されます。このコンパイルは、他のほとんどすべてと同様に、CPUで実行され、コンパイルされたシェーダーはGPUに送信され、GPUによって実行されます。(SDL = Simple DirectMedia Layer)。
Mesaの中間表現(IR):GLSL IR、Mesa IR、TGSI、およびLLVMIR不足しているのは、HIR、LIR、およびNIRです。
MesaIRは完全に削除される予定です。

Mesaのいわゆる「ユーザーモードグラフィックスデバイスドライバー」(UMD)には、一般にデバイスドライバーと呼ばれるものとの共通点はほとんどありません。いくつかの違いがあります。

  • /drivers/gpu/drm/これらは、追加で存在するカーネルモードのグラフィックスデバイスドライバー上で動作することを目的としています。たとえば、各UMDのソースコードにあるLinuxカーネルの一部として利用可能であり、libdrm_specificという名前の特定のライブラリを使用して対応するカーネルモードと通信します。そして、libdrmという名前の一般的なもの。このセクションでは、libdrmの上のユーザーモード部分のみを取り上げます。
  • OpenGLなどで指定されている有限状態マシンの実装がいくつかあります。OpenGLステートマシンのこの実装は、複数のUMD間で共有される場合と共有されない場合があります
  • それらはある種のコンパイラの大部分で構成されており、GLSLなどを取り込み、最終的にマシンコードを出力します。パーサーは、複数のUMD間で共有される場合と、特定の場合があります。

Mesaの中間表現

Mesaの目標の1つは、それぞれのGPUによって実行されるコードの最適化です。もう1つは、コードの共有です。このウィキペディアの記事では、これを行うソフトウェアを文書化する代わりに、コンパイルと最適化のプロセスで使用される中間表現について説明します。抽象構文木(AST)および静的単一代入形式(SSA形式) を参照してください。

SPIR-V

SPIR-Vは、標準のポータブル中間表現の特定のバージョンです。グラフィックアプリケーションはGLSLではなくSPIR-Vを出力するという考え方です。後者とは対照的に、SPIR-Vはバイナリであり、異なるドライバー実装のGLSLコンパイラフロントエンド間の実装の違いを回避します。これは、アプリケーションの非互換性とバグの主な原因であるためです。また、SPIR-Vバイナリは通常、いくつかの一般的な最適化も通過します。また、ある程度、SPIR-Vのバイナリ表現はある程度の難読化を提供します。これは、知的財産保護の一形態として一部のソフトウェアベンダーにアピールする可能性があります。ただし、SPIR-Vにはリフレクションに関する十分な情報が含まれており、SPIR-Vを高品質で人間が読める高レベルのコードに変換するツールが存在します。UMDは、サポートされているハードウェアに固有の最適化を適用するだけで済みます。

GLSLIR

MesaIR

NIR

NIR(新しい内部表現)は、TGSIの制限を克服するために導入されました。[126] [127] 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を備えたフォークがあります。Mesa 21.0以降、r600のこのオプションはデフォルトです。

TGSI

Tungsten Graphics Shader Infrastructure(TGSI)は、2008年にTungstenGraphicsによって導入されました。すべてのGallium3DスタイルのUMDはTGSIを取り込みます。NIRは現在メインの開発エリアであるため、TGSIはr300gのデフォルトインフラストラクチャなどの古いドライバー専用であり、数年以内に非推奨になる予定です。

LLVMIR

UMDはマシンコードを出力せず、代わりにLLVMIRradeonsiを出力します。llvmpipeこれ以降、LLVMは最適化とマシンコードへのコンパイルを行います。これは、LLVMの特定の最小バージョンもインストールする必要があることを意味します。

RADV ACOIR

RADV ACOは、NIRに近い独自のIRを使用して、Radeon GPU(GCN 1+、別名GFX6 +)GPU上でVulkanSPIR-Vシェーダーのエンドバイナリコードを最適化および生成します。バージョン20.1.0の時点では、ACOはRADV(Vulkanドライバー)でのみ使用されており、RadeonSIではまだ使用されていません。

MesaのGLSLコンパイラ

MesaのGLSLコンパイラは、独自のIRを生成します。各ドライバーにはLIRとは非常に異なる要件があるため、HIR(高レベルIR)とLIR(低レベルIR)を区別します。

Gallium3D

Gallium3D
原作者Tungsten Graphics(現在はVMware
プレビューリリース
0.4 [128] /2010年4月24日; 11年前 (2010-04-24)
リポジトリ
で書かれているC ++ Cアセンブリ言語
オペレーティング・システムクロスプラットフォーム
タイプグラフィックライブラリ
ライセンスMITライセンス
Webサイトwww .freedesktop .org /wiki /ソフトウェア/gallium /

Gallium3Dは、複数のオペレーティングシステム、レンダリング、またはビデオアクセラレーションAPI 用の3Dグラフィックチップセット用のデバイスドライバーのプログラミングを容易にすることを目的とした、一連のインターフェイスとサポートライブラリのコレクションです[129] 。

機能マトリックスはmesamatrix.netで提供されており、グラフィックチップ用のフリーおよびオープンソースのデバイスドライバーを作成する取り組みは、フリーおよびオープンソースのグラフィックデバイスドライバーで個別に文書化されています

Gallium3Dの開発は2008年にTungstenGraphicsで開始され[130]、実装はfreedesktop.orgによってホストされているMesa3Dの一部として無料のオープンソースソフトウェアとして利用できます。ドライバー開発を容易にし、他の方法で複製された複数の異なるドライバーのコードを1つのポイントにバンドルし、最新のハードウェアアーキテクチャーをサポートすることを主な目標としています。これは、たとえば、メモリ管理をカーネルDRIドライバー に任せるなど、より良い分業を提供することによって行われます。

Gallium3Dは2009年からMesaの一部であり[131]、現在Nvidianouveauプロジェクト)の無料のオープンソースグラフィックスドライバー、 [132] [133] AMDのR300– R900 [ 134] [135]で使用されています。 [136]第8世代以降のiGPU [137]およびその他の無料のオープンソースGPUデバイスドライバー用のIntelの「Iris」ドライバー

ソフトウェアアーキテクチャ

Gallium3Dは、グラフィックスデバイスドライバーを3つの部分に分割することにより、デバイスドライバーのプログラミングを容易にします。これは、Gallium3DStateTrackerインターフェイスとGallium3DWinSysインターフェイスの2つのインターフェイスを導入すること実現ます3つのコンポーネントは次のように呼ばれます。

Gallium3Dステートトラッカー

  • デバイスドライバーがアドレス指定される各グラフィカルAPIには、独自のステートトラッカーがあります。たとえば、OpenGL用のGallium3Dステートトラッカーと、 Direct3DまたはGLX用の異なるものがあります。各ステートトラッカーには、Gallium3Dステートトラッカーインターフェイスの実装が含まれており、一意です。つまり、既存のすべてのGallium3Dデバイスドライバーで共有されます。

Gallium3Dハードウェアデバイスドライバー

  • これは実際のコードであり、基盤となる3Dグラフィックアクセラレータに固有ですが、Gallium3DWinSysインターフェイスで許可されている場合に限ります。使用可能なグラフィックチップごとに固有のGallium3Dハードウェアデバイスドライバーがあり、それぞれがGallium3DステートトラッカーインターフェイスとGallium3DWinSysインターフェイスを実装しています。Gallium3Dハードウェアデバイスドライバーは、シェーダーを記述するための中間言語であるTGSI(Tungsten Graphics Shader Infrastructure)のみを理解します。このコードは、シェーダーをGLSLからTGSIに変換し、さらにGPUによって実装された命令セットに変換しました。

Gallium3D WinSys

VC4とfreedrenoはどちらもNIRを直接消費できます(glsl_to_nirを使用しないシェーダーの場合はtgsi_to_nirにフォールバックします)。
Linuxグラフィックスタックの図
Mesa/ DRIとGallium3Dのドライバーモデルは異なります。どちらも多くの無料のオープンソースコードを共有しています
Gallium3Dドライバーモデルを実装する際に考えられるマトリックスの例。Gallium3DトラッカーインターフェイスとGallium3DWinSysインターフェイスの導入により、必要なモジュールは36個ではなく18個になりました。各WinSysモジュールは、各Gallium3Dデバイスドライバーモジュールおよび各StateTrackerモジュールと連携できます。

従来のグラフィックスドライバーとの違い

Gallium3Dは、最新のハードウェアにあるシェーダーユニットなど、標準のハードウェア機能を公開する統合APIを提供します。したがって、 OpenGL 1.x / 2.x、OpenGL 3.x、OpenVGGPGPUインフラストラクチャ、さらにはDirect3DWine互換性レイヤーにある)などの3D APIは、状態トラッカーと呼ばれる単一のバックエンドのみを必要とします。 Gallium3DAPIをターゲットにしています。対照的に、クラシックスタイルのDRIデバイスドライバーは、ハードウェアプラットフォームごとに異なるバックエンドを必要とし、他のいくつかのAPIは、コードの重複を犠牲にしてOpenGLに変換する必要があります。[138] [139] [140]すべてのベンダーデバイスドライバーは、独自のクローズドソースの性質により、そのように記述されています。つまり、AMD CatalystはOpenGLDirect3Dの両方を実装し、 GeForceのベンダードライバーはそれらの実装を持っています。

Gallium3Dでは、ダイレクトレンダリングマネージャー(DRM)カーネルドライバーがメモリを管理し、ダイレクトレンダリングインターフェイス(DRI2)ドライバーはよりGPU処理指向になります。[141]ユーザースペースモード設定からカーネルスペースモード設定への移行期間中に、radeonドライバーやIntelのドライバーなどの一部のMesa 3Dドライバーは、最終的にDRI1とDRI2の両方をサポートし、システムで利用可能な場合はDRI2を使用しました。Gallium3Dはさらに、ATi r100-r200などの古いカードでは利用できないレベルのシェーダーサポートを必要とするため、これらのカードのユーザーは、3Dで使用するためにDRI2でMesa3Dを使い続ける必要があります。

タングステングラフィックスシェーダーインフラストラクチャ

Tungsten Graphics Shader Infrastructure(TGSI)は、LLVM中間表現やVulkanAPIおよびOpenCL2.1で使用される新しい標準ポータブル中間表現(SPIR)のような中間表現です。OpenGLシェーディング言語で記述されたシェーダーはTGSIに変換/コンパイルされ、最適化が行われ、次にTGSIシェーダーが使用されるGPU の命令セットのシェーダーにコンパイルされます。

NIRは、完全なSPIR-VをサポートするMesaの新しいレイヤー表現であり、2019年以降、OpenGL4.6をサポートするすべての新しいドライバーの主な開発領域です。

LLVMの使用法

GlassyMesaは、 GLSLで記述されたシェーダー用のLLVMベースのコンパイラスタックですSSAについては、静的単一代入フォームの記事を参照してください。

さらに、Gallium3Dのモジュラー構造を使用して、LLVMコンパイラスイートを使用し、その場でシェーダーコードを最適化するモジュールを作成する取り組みが進行中です。[142]

ライブラリは、Tungsten Graphics Shader Infrastructure(TGSI)と呼ばれる拡張可能なバイナリ中間表現を使用して各シェーダープログラムを表し、LLVMはターゲットハードウェア用に最適化さ れたGLSLシェーダーに変換します。

採用

クリーンルームリバースエンジニアリングを通じて得られた情報に基づいて作成された、または作成されているいくつかの無料のオープンソースグラフィックスデバイスドライバーは、Gallium3Dが提供するドライバーモデルを採用しました。たとえば、nouveauなどです(無料のオープンソースグラフィックスデバイスを参照)。完全なリストのドライバー)。主な理由は、Gallium3Dドライバーモデルが、記述に必要なコードの量を減らすことである可能性があります。独自の研究?]もちろん、このコードは無料のソフトウェアライセンスの下でライセンスされているため、DRIまたはその他のドライバーモデルを実装するために、いつでも誰でも書き直すことができます。

歴史

Gallium3Dの原作者は、TungstenGraphicsのKeithWhitwellとBrianPaulでした( 2008年にVMwareに買収されました)。[143]

マイルストーン

2011年秋現在、少なくとも10個の既知の成熟した動作中のGallium3Dドライバーがありました。[144] [検証に失敗しました] [要出典] Nouveauチームという名前のNvidiaグラフィックカード用のオープンソースドライバーは、Gallium3Dフレームワークを使用してドライバーを開発しています。[133] [145]

2008-07-13: Nouveauの開発は、Galliumフレームワーク専用に行われます。古いDRIドライバーは、Freedesktop.orgのMesaリポジトリのマスターブランチから削除されました。[146]

2009-02-11: gallium-0.2ブランチは、Mesaのメインラインマスターブランチに統合されました。[147]開発はメサメインラインで行われます。

2009-02-25: Gallium3Dは、LinuxおよびFreeBSDカーネルで実行できます。[148]

2009-05-01: TungstenGraphicsのZackRusinがOpenVGステートトラッカーをMesa3Dに追加しました[149]。これにより、ScalableVectorGraphicsをGallium3Dベースのドライバーでハードウェアアクセラレーションできるようになります。

2009-07-17: Mesa3D 7.5がリリースされました。これは、Gallium3Dを含む最初のバージョンです。[150]

2010-09-10: EvergreenGPUの初期サポートがr600gドライバーに追加されました。[151]

2010-09-21: R300-R500およびR600-EvergreenGPU用にそれぞれr300gおよびr600gとして知られるATIハードウェア用の2つのGallium3Dドライバーがあります。

2010-09-21: Direct3D 10および11をサポートするために、コードに対して主要なコミットが行われました。[152]やがて、これにより、Linuxシステムで最近のDirect3D実装を使用できるようになる可能性があります。

2011-11-30: Intel965gおよびCellGalliumドライバーは、メンテナンスされておらず壊れているため、Mesaのマスターブランチから削除されました。[153] [154]

2013-11-30: OpenGL 3.2、3.3およびOpenCL1.0+を搭載したMesa10

2014-11-18: Direct3D9をサポートするためにコードに主要なコミットが行われました。[155]

2015-09-15: OpenGL 4.0、4.1およびOpenCL1.2を搭載したMesa11(未完成)

2015-12-15: OpenGL3.3を搭載した仮想マシン用のMesa11.1ドライバーVIRGL

2016-07-08: OpenGL 4.2、4.3、およびVulkan1.0を搭載したMesa12(IntelANVおよびAMDRADV)

2016-11-01:OpenGL4.4およびOpenGLES3.2を搭載した Mesa13

2017-02-13: OpenGL4.5を搭載したMesa17.0とOpenGL3.0および3.1を搭載したfreedrenoドライバー

2017-05-10: IntelIvyBridge用のMesa17.1OpenGL 4.2+(Windows用のIntelドライバー以上、Intel Open SWRRasterizer用のOpenGL3.3+(巨大なシミュレーション用のクラスターコンピューターにとって重要)

2017-12-08: Mesa 17.3 AMD Vulkan Driver RADVは、Vulkan1.0のKhronosテストに完全に準拠しています

2018-05-18:Vulkan1.1を搭載したMesa18.1(IntelANVおよびAMDRADV)

2018-09-07:ソフトドライバーVIRGL用のOpenGL4.3を備えたMesa18.2(クラウドクラスターコンピューターの仮想マシンにとって重要)、AdrenoA5xxを備えたFreedreno用のOpenGLES3.1

2019-06-11:第8世代以降のiGPU向けのIntelの次世代「iris」グラフィックスドライバーでリリースされたMesa 19.1 [156]

2019-12-11: Mesa 19.3は、第7世代以降およびオプションのIris第8世代以降のInteli965を搭載したOpenGL4.6をリリースしました

2020-03-18:Mesa20.0がAMDGCNおよびVulkan1.2forIntelを搭載したOpenGL4.6をリリース

2020-05-27: Mesa 20.1は、クローバーのOpenCLのNIRベクトル化サポートと共有仮想メモリサポートをリリースしました

2020-11-30:Mesa20.3がCloverでOpenCL1.2を完全にサポート[41]

2021-03-11:「D3D12」のMesa 21.0初期サポート:OpenGL 3.3以降、ARM Freedreno:OpenGL3.3以降を搭載したWindows10のWSL2用のダイレクト3D12

2021-05-05:Vulkan1.2以降でのGoogleVirtIO GPUドライバー「Venus」のMesa21.1初期サポート、Zink:OpenGL 4.6以降、OpenGL ES 3.1以降、Qualcomm Turnip、Lavapipe:Vulkan1.1以降

2021-08-04: Mesa 21.2は、gallium3Dに基づく新しいIntel Crocus OpenGL 4.6ドライバー、古いi965のIntel Sandy Bridge、Haswell、ARMPanfrostのVulkanドライバーpanVKの初期サポート

パフォーマンス

歴史

プロジェクトの開始者であるブライアンポールは、グラフィックの趣味でした。彼は、OpenGL APIを使用して単純な3Dグラフィックライブラリを実装するのは楽しいだろうと考えました。その後、VOGL(ごく普通のGL Like Library)の代わりにそれを使用する可能性があります。[157] 1993年から、彼は1995年2月にインターネット上でソフトウェアをリリースする前に18か月のパートタイム開発を過ごしました。[158]ソフトウェアは好評で、人々はその開発に貢献し始めました。Mesaは、 CPU上ですべての3Dコンピューターグラフィックスをレンダリングすることから始めましたそれにもかかわらず、Mesaの内部アーキテクチャは、グラフィックプロセッサで高速化された3Dレンダリングに接続できるように設計されています。この最初のフェーズでは、レンダリングは間接的に行われました。ディスプレイサーバー、オーバーヘッドと顕著な速度が理論上の最大値より遅れていることを残します。VoodooGraphicsチップセットを使用したDiamondMonster3Dは、Mesaがサポートした最初の3Dハードウェアデバイスの1つでした

最初の真のグラフィックハードウェアサポートは、当時の新しい3dfx Voodoo I /IIグラフィックカードとその後継のGlideAPIに基づいて、1997年にMesaに追加されました。[107] Glideをアクセラレーションレイヤーとして使用する際の主な問題は、Glideがフルスクリーンで実行する習慣でした。これはコンピューターゲームにのみ適していました。さらに、Glideは画面メモリのロックを取得したため、ディスプレイサーバーは他のGUIタスクを実行できなくなりました。[159]

も参照してください

参照

  1. ^ マーシャル、デビッド(2008年12月16日)。「VMwareによるTungstenGraphicsの年末買収」InfoWorld 2011年8月6日取得
  2. ^ "[Mesa-announce] [ANNOUNCE]mesa22.0.0" 2022年3月10日取得
  3. ^ 「LinuxグラフィックスドライバーのOpenGLサポートを改善する-Mesa」インディーゴーゴー2013年12月11日2015年1月21日取得
  4. ^ 「AMDは新しいLinuxドライバー戦略を探求している」2014年3月22日2014年3月23日取得
  5. ^ 「Gallium3Dを介してLinux用にリリースされたDirect3D9サポート、ゲームの実行-Phoronix」Phoronix.com 2018年8月1日取得
  6. ^ 「mesa/mesa-Mesa3Dグラフィックライブラリ」2016年11月2日取得
  7. ^ 「OpenGL対Mesaマトリックス」2015年3月25日2015年3月29日取得
  8. ^ 「Mesa11.0が分岐し、リリース3月が始まります」2015年8月22日2015年8月22日取得
  9. ^ ab "アーカイブされコピー" 。2016年11月4日にオリジナルからアーカイブされました2016年11月3日取得{{cite web}}: CS1 maint: archived copy as title (link)
  10. ^ a b "Mesa17.0.0が正式にリリースされました"マイケル・ララベル2017年2月13日2017年2月13日取得
  11. ^ 「mesa/mesa-Mesa3Dグラフィックライブラリ」Cgit.freedesktop.org 2018年8月1日取得
  12. ^ 「Mesa17.0の大きな変更、改善-Phoronix」Phoronix.com 2018年8月1日取得
  13. ^ 「mesa/mesa-Mesa3Dグラフィックライブラリ」Cgit.freedesktop.org 2018年8月1日取得
  14. ^ 「プログラム」(PDF)www.x.org2016年。
  15. ^ 「mesa/mesa-Mesa3Dグラフィックライブラリ」Cgit.freedesktop.org 2018年8月1日取得
  16. ^ 「NouveauMesa17.0による巨大なパフォーマンスブーストの外観-Maxwellの開発-Phoronix」Phoronix.com 2018年8月1日取得
  17. ^ 「KhronosオープンソースOpenGL/OpenGLES適合性テスト-Phoronix」Phoronix.com 2018年8月1日取得
  18. ^ 「Mesa17.1の主な機能:Vega、RadeonSIシェーダーキャッシュ、成熟するVulkan、新しいOpenGL拡張機能-Phoronix」Phoronix.com 2018年8月1日取得
  19. ^ 「Mesaリリースノート」Mesa3d.org 2018年8月1日取得
  20. ^ 「OpenGL対Mesaマトリックス」mesamatrix.net 2016年7月31日取得
  21. ^ 「タイトル」(PDF)2018年8月1日取得
  22. ^ 「イベントリスト」(PDF)www.x.org
  23. ^ 「Mesa17.3の機能-Vulkanのアップデート、パフォーマンスの向上-Phoronix」Phoronix.com 2018年8月1日取得
  24. ^ a b c d e f g h i j kl "リリースカレンダー"Mesa3d.org 2018年8月1日取得
  25. ^ 「Mesa18.0の機能には、多くのOpenGL / Vulkanの改善、Intel Shader Cache&Extrasが含まれています-Phoronix」Phoronix.com 2018年8月1日取得
  26. ^ a b "Mesa 18.2は、多くのOpenGL/Vulkanドライバーの改善により間もなくリリースされます-Phoronix"www.phoronix.com
  27. ^ 「オープンソースIntel/Radeonグラフィックスドライバー用のMesa18.3の光沢のある新機能-Phoronix」www.phoronix.com
  28. ^ 「Mesaは2018年にオープンソースのVulkan/OpenGLドライバーで大きな進歩を遂げました-Phoronix」www.phoronix.com
  29. ^ 「Mesa19.0のデッキの新機能:Vulkanの追加、FreeSync、SoftFP64など-Phoronix」
  30. ^ 「Mesa18.2vs.18.3 vs.19.01月のRadeonSI/RADVのベンチマーク-Phoronix」
  31. ^ 「Mesa19.1Gitを使用したRadeonSINIRバックエンドの実行-Phoronix」
  32. ^ 「IntelのIrisGallium3Dドライバーは、OpenGL互換性プロファイルのサポートが向上しました-Phoronix」
  33. ^ 「Mesa19.3は多くのオープンソースOpenGL+Vulkanドライバーの改善を導入しています-Phoronix」
  34. ^ 「Mesa20.0-rc1はIntelGallium3Dのデフォルトでリリースされ、OpenGL 4.6 for RadeonSI、Vulkan1.2-Phoronix」
  35. ^ 「Mesa20.0がIntel向けに大幅に改善されてリリースされ、AMD Radeon Vulkan/OpenGL-Phoronix」
  36. ^ a b "Mesa 20.1の機能には、オープンソースIntel、Radeonグラフィックスドライバーの大幅な改善が含まれています-Phoronix"
  37. ^ 「ZinkはVulkanを介した汎用GL用のOpenGL3.0コンプリートになりました-Phoronix」
  38. ^ 「Mesa20.2の開発は、多くの新機能が登場した後に終了します-Phoronix」
  39. ^ 「Mesa20.2のNouveauがHMMを有効にし、OpenCLSVMがサポートされるようになりました-Phoronix」
  40. ^ 「V3DV開発者はメサでラズベリーパイ4バルカンドライバーをアップストリームするための計画をレイアウトします-Phoronix」
  41. ^ a b c "OpenCL3.0が取り組まれている間にMesaのGallium3DCloverのOpenCL1.2サポートが統合されました-Phoronix"
  42. ^ 「Mesa20.3のZinkがOpenGL3.3にヒットし、このOpenGL-on-Vulkan-PhoronixでBlenderを実行できるようになりました」
  43. ^ 「OpenGL4.5がMesa20.3を搭載したLLVMpipeで有効になり、20.2でバックポートされるようになりました-Phoronix」
  44. ^ 「VALLIUMはVulkanフロントエンドとしてGallium3D-PhoronixとしてMesa20.3に統合されました」
  45. ^ a b "Mesa21.0はDirect3D12Gallium3Dドライバーをマージします-Phoronix"
  46. ^ https://xdc2020.x.org/event/9/contributions/621/attachments/701/1297/XDC_-_Mesa_for_Mapping_Layers.pdf [ベアURLPDF ]
  47. ^ 「Microsoft+CollaboraがDirectX12を介してOpenGL/OpenCLをマッピングするために取り組んでいます-Phoronix」
  48. ^ 「MesaはOpenGL最適化に続くSPECViewPerfで2〜5倍高速になりました-Phoronix」
  49. ^ 「Mesa21.0には、特にRadeonオープンソースグラフィックス用の多くの新機能があります-Phoronix」
  50. ^ 「RADV最適化、より高速なZink、その他の多くの新機能を備えたMesa21.1-rc1がリリースされました-Phoronix」
  51. ^ "Mesa%2021.1-Phoronix"
  52. ^ abc「Google VirtIO -GPU「Venus」VulkanドライバーがMesa21.1-Phoronixに統合されました
  53. ^ 「Mesa21.2は新しいIntelCrocusドライバー、PanVK、初期のM1コードでリリースされました-Phoronix」
  54. ^ 「今年メインラインからMesaのクラシックOpenGLドライバーを削除するための提案-Phoronix」
  55. ^ 「CrocusGallium3Dは、HaswellGraphicsを介してGallium3Di965のメインラインメサに近づいています-Phoronix」
  56. ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-22.0-rc1
  57. ^ 「リリースノート—Mesa3Dグラフィックライブラリの最新ドキュメント」
  58. ^ 「Mesa21.3がリリースされました-Phoronix」
  59. ^ Larabel、Michael(2015年3月4日)。「Gallium3Dから削除されたOpenVGサポート」マイケル・ララベル2015年7月11日取得
  60. ^ https://gitlab.freedesktop.org/mesa/mesa/commit/3acd7a34ab05b87521b74f626ec637e7fdcc6595
  61. ^ 「「9つの」状態トラッカーへの最新のパッチ」Cgit.freedesktop.org2016年2月4日。
  62. ^ Larabel、Michael(2014年12月14日)。「Mesa10.4がDirect3D9StateTrackerで正式にリリースされました」マイケル・ララベル2015年7月11日取得
  63. ^ 「Mesa21.2は新しいIntelCrocusドライバー、PanVK、初期のM1コードでリリースされました-Phoronix」
  64. ^ 「MEsa21.1がRADV可変レートシェーディングでリリースされ、IntelVulkanがさらに改善されました-Phoronix」
  65. ^ 「Mesa21.0は、多数のRADVの改善、新しいVulkan拡張機能、多くの修正を加えてリリースされました-Phoronix」
  66. ^ 「Mesa20.3がオープンソースグラフィックスドライバーの大幅な改善とともにリリースされました-Phoronix」
  67. ^ 「Mesa20.2.2がランダムな修正の品揃えでリリースされました-Phoronix」
  68. ^ 「RadeonSINIRベンチマークはMesa20.0で大きな進歩を示しています-Phoronix」
  69. ^ 「Mesa19.3-RC1はIntel用のOpenGL4.6でリリースされ、多くのVulkanドライバーが改善されました-Phoronix」
  70. ^ 「Mesa19.3は多くのオープンソースOpenGL+Vulkanドライバーの改善を導入しています-Phoronix」
  71. ^ 「Mesa18.0は、多くのVulkan/OpenGLドライバーの改善とともに今日到着するはずです-Phoronix」Phoronix.com 2018年8月1日取得
  72. ^ 「GalliumCompute」Dri.freedesktop.org 2019年1月24日取得
  73. ^ 「クローバーステータスアップデート」(PDF)2020年3月27日取得
  74. ^ "[メサアナウンス]メサ17.0.0" 2017年2月13日取得
  75. ^ "[メサアナウンス]メサ13.0.0" 2016年11月2日取得
  76. ^ a b "Mesa12.0がOpenGL4.3サポート、Intel Vulkan、およびその他の多くの機能とともにリリースされました"2016年7月8日2016年7月8日取得
  77. ^ "[Mesa-announce]Mesa11.2.0" 2016年4月4日取得
  78. ^ "[Mesa-announce]Mesa11.1.0" 2015年12月15日取得
  79. ^ "[Mesa-announce]Mesa11.0.0" 2015年9月26日取得
  80. ^ "[Mesa-announce]Mesa10.6.0" 2015年6月15日取得
  81. ^ Larabel、Michael(2013年10月26日)。「Mesa10.0にある機能」マイケル・ララベル
  82. ^ "[Mesa-announce]Mesa10.5.0" 2015年3月7日取得
  83. ^ 「[Mesa-発表]Mesa10.4.0がリリースされました」2015年3月7日取得
  84. ^ 「[Mesa-発表]Mesa10.3がリリースされました」2015年3月7日取得
  85. ^ 「[Mesa-発表]Mesa10.2がリリースされました」2015年3月7日取得
  86. ^ 「[Mesa-発表]Mesa10.1がリリースされました」2015年3月7日取得
  87. ^ 「[Mesa-発表]Mesa10.0がリリースされました」2015年3月7日取得
  88. ^ 「プログラム」(PDF)www.x.org
  89. ^ 「Mesaに追加されたRadeonVulkanドライバー、新しいRadeonVulkanとOpenGLベンチマーク+AMDGPU-PRO-Phoronix」Phoronix.com 2018年8月1日取得
  90. ^ a b "VulkanVirglがVM内でこのグラフィックス/コンピューティングAPIをサポートするためにキックオフしました-Phoronix"www.phoronix.com
  91. ^ 「Windowsに移植されたLavapipeCPUベースのVulkan-Phoronix」
  92. ^ 「オープンソースのQualcomm「TURNIP」Vulkanドライバーが重要なパフォーマンス機能を追加-Phoronix」
  93. ^ 「クアルコムのKGSLで稼働中のTURNIPVulkanドライバー-Phoronix」
  94. ^ 「RaspberryPi4Vulkanドライバー「V3DV」がMesa20.3-Phoronixに統合されました」
  95. ^ 「Androidの明示的なフェンシングをメインラインに持ち込む」LWN.net2016年10月5日。
  96. ^ 「Debianリポジトリのlibgbm」packages.debian.org
  97. ^ 「Mesa以外のグラフィックスドライバーの実装による代替ウィンドウシステムの有効化」X.org
  98. ^ 「NVIDIAはそのデバイスメモリアロケータプロジェクトに関するフィードバックを望んでいます」マイケル・ララベル
  99. ^ 「ヌーボービデオアクセラレーション」freedesktop.org
  100. ^ 「Radeon機能マトリックス」freedesktop.org
  101. ^ トーラル、イアーゴー(2014年8月8日)。「メサに飛び込む」2016年5月19日取得
  102. ^ 「ダイレクトレンダリングインフラストラクチャステータスページ」freedesktop.org
  103. ^ 「Linuxマシンでゲームのパフォーマンスを向上させる方法-APC」Apcmag.com2013年7月25日2018年8月1日取得
  104. ^ 「Linux:Mesa、Gallium3D、NouveauおよびNVIDIAドライバー、OpenGLテスト(GTX 280、GTX 480、GTX 580)–Geeks3D」Geeks3d.com 2018年8月1日取得
  105. ^ 「NouveauドライバーはNVIDIAの公式ドライバーよりもはるかに遅いままです-Phoronix」Phoronix.com 2018年8月1日取得
  106. ^ 「Intel/NVIDIA/AMDはオープン/クローズドソースのLinuxGPUドライバーのパフォーマンスで競合-Phoronix」Phoronix.com 2018年8月1日取得
  107. ^ a b c ポール、ブライアン(2000年8月10日)。「ダイレクトレンダリングインフラストラクチャの概要」Dri.sourceforge.net 2012年1月25日取得
  108. ^ 「DRI2」X.org。2013年4月16日にオリジナルからアーカイブされました2012年1月25日取得
  109. ^ 「DRI3と現在[LWN.net]」lwn.net 2018年8月1日取得
  110. ^ "[PATCH0/6]コアおよびi965ドライバーにDRI3000サポートを追加"Lists.freedesktop.org 2018年8月1日取得
  111. ^ "xorg-x11-drv-intel-2.99.917-19.20151206.fc23(re)enabled dri3 default --kde--FedoraMailing-Lists"lists.fedoraproject.org 2016年12月3日取得
  112. ^ 「Radeon-AMDGPU-1.19-アップデート」Google.de 2016年12月3日取得
  113. ^ 「LLVMpipe:CPUにGallium3Dを搭載したOpenGL」Phoronix.com2010年4月30日2014年11月4日取得
  114. ^ 「llvmpipe」mesa3d.org 2015年6月8日取得
  115. ^ 「OpenSWR」openswr.org 2018年8月1日取得
  116. ^ 「Mesamatrix:OpenGL対Mesaマトリックス」mesamatrix.net 2018年8月1日取得
  117. ^ 「OpenSWR」openswr.org 2018年8月1日取得
  118. ^ 「アーカイブされたコピー」2018年8月28日にオリジナルからアーカイブされました2018年8月28日取得{{cite web}}: CS1 maint: archived copy as title (link)
  119. ^ 「MesaのVirGLOpenGL機能の追跡-Phoronix」www.phoronix.com
  120. ^ 「MesaのVirGLは、ゲストVMを提供するためのOpenGL4.2サポートを備えています-Phoronix」www.phoronix.com
  121. ^ 「Virgl3Dの現在のパフォーマンス、将来の計画-Phoronix」www.phoronix.com
  122. ^ 「アーカイブされたコピー」(PDF)2018年10月1日にオリジナル(PDF)からアーカイブされました2018年12月13日取得 {{cite web}}: CS1 maint: archived copy as title (link)
  123. ^ https://archive.fosdem.org/2019/schedule/event/virtual_gpu/attachments/slides/3353/export/events/attachments/virtual_gpu/slides/3353/Virgl_Presentation_FOSDEM2019.pdf [裸のURLPDF ]
  124. ^ 「DRIメガドライバー」X.org2013年9月25日。
  125. ^ 「VDPAUとXvMCの状態トラッカーは別々のライブラリになりました」Phoronix.com2014年6月23日。
  126. ^ 「はじめに—NIR0.0.1ドキュメント」
  127. ^ 「NIR:Mesa用の新しいコンパイラIR」
  128. ^ 「ビルド構成ファイル」cgit.freedesktop.orgガリウムのドキュメント。
  129. ^ フォンセカ、ホセ(2008年4月27日)。「Gallium3D:はじめに」2014年6月20日取得
  130. ^ フォンセカ、ホセ。「MESA3D.org:はじめに」2016年10月28日取得
  131. ^ 「Gallium3DがメインラインのMesaコードベースになりました!」マイケル・ララベル2009年2月11日2010年10月26日取得
  132. ^ 「ヌーボーの状態、パート2」LWN.net2008年2月26日2008年3月7日取得
  133. ^ ab "ヌーボーコンパニオン36 " Nouveau.freedesktop.org2008年3月7日。 2013年3月7日のオリジナルからアーカイブ2008年4月1日取得
  134. ^ 「ATIR300Gallium3DDRIサポートは「完了」です" 。Phoronix2009年11月9日。 2010年11月15日取得
  135. ^ 「[Mesa]マスターにマージされたRadeon"R600g"Gallium3Dドライバー」マイケル・ララベル2010年5月27日2010年10月26日取得
  136. ^ 「X.OrgWikiGalliumStatus」Xorg2010年9月22日2010年12月7日取得
  137. ^ "iris:Intel Gen8 + GPU用の新しい実験的なGalliumドライバーを追加します(!283)・リクエストのマージ・Mesa/mesa"GitLab 2019年9月21日取得
  138. ^ 「TG-Gallium3D」タングステングラフィックス。2008年5月3日にオリジナルからアーカイブされました2008年4月1日取得
  139. ^ Rusin、Zack(2008年2月6日)。「GPGPU」2008年4月1日取得
  140. ^ Rusin、Zack(2008年2月7日)。「OpenVGと加速する2D」2008年4月1日取得
  141. ^ 「DRI2」2007年10月4日。2008年7月4日のオリジナルからアーカイブ2008年4月1日取得
  142. ^ Rusin、Zack(2007年11月2日)。「Gallium3DLLVM」2008年4月1日取得
  143. ^ マーシャル、デビッド(2008年12月16日)。「VMwareによるTungstenGraphicsの年末買収」InfoWorld。
  144. ^ 「ガリウム」Freedesktop.org2011年11月2日2012年8月24日取得
  145. ^ 「ヌーボーコンパニオン37」Nouveau.freedesktop.org2008年3月21日。2012年2月8日のオリジナルからアーカイブ2008年4月1日取得
  146. ^ 「nouveau:古いDRIドライバーに別れを告げる...(FDOのcgit)」Cgit.freedesktop.org2008年7月13日。
  147. ^ 「Gallium3DがメインラインのMesaコードベースになりました!」Phoronix.com2009年2月11日。
  148. ^ Larabel、Michael(2009年2月25日)。「Gallium3D、EGLがFreeBSDでビルド可能になりました」マイケル・ララベル
  149. ^ 「OpenVG状態トラッカーはMesa3Dにあります」Sourceforge.net2009年5月1日。
  150. ^ 「Mesa7.5リリースノート/2009年7月17日」Mesa3d.org2009年7月17日。2010年6月13日のオリジナルからアーカイブ2017年9月12日取得
  151. ^ "r600g:初期常緑樹サポート(FDOのcgit)を追加"Cgit.freedesktop.org2010年9月10日。
  152. ^ "d3d1x:ガリウム用の新しいDirect3D10/11COM状態トラッカーを追加"Cgit.freedesktop.org2010年9月21日。
  153. ^ Larabel、Michael(2011年11月30日)。「Gallium3DIntel965ドライバーがドロップされます」マイケル・ララベルp。1 2011年12月1日取得
  154. ^ Larabel、Michael(2011年11月30日)。「Gallium3Dセルドライバもドロップされます」マイケル・ララベルp。1 2011年12月1日取得
  155. ^ "nine:Direct3D9(v3)の状態トラッカー9を追加"Cgit.freedesktop.org2014年11月18日。
  156. ^ 「実験的なIntelGallium3DでリリースされたMesa19.1、その他の新しいGL/VLKドライバーも-Phoronix」www.phoronix.com 2019年9月21日取得
  157. ^ 「メサ紹介」メサチーム2015年6月8日取得
  158. ^ 「プロジェクト履歴」Mesaドキュメント2021年3月11日取得
  159. ^ 「グライドとDRIの関係は何ですか?」dri.freedesktop.org 2012年1月25日取得

外部リンク

Gallium3Dの外部リンク

Linux内のさまざまなレイヤー、ユーザーランドカーネルスペースの分離も示しています
ユーザーモード ユーザーアプリケーション bashLibreOfficeGIMPBlender0 ADMozilla Firefox、..。
システムコンポーネント initデーモン
OpenRCrunitsystemd ..。
システムデーモン
polkitdsmbdsshdudevd ..。
ウィンドウマネージャー
X11WaylandSurfaceFlinger(Android)
グラフィック
MesaAMD Catalyst、..。
その他のライブラリ:
GTKQtEFLSDLSFMLFLTKGNUstep、..。
C標準ライブラリ fopen、、、、、、 ...(最大2000サブルーチンglibc高速であり、execvmuslおよびuClibc組み込みシステム、Android用に作成されたbionicなどを対象とます。すべてPOSIX / SUS互換であることを目指しています。 mallocmemcpylocaltimepthread_create
カーネルモード Linuxカーネル stat、、、、、、、、、、など(約380のシステムコール)spliceLinuxカーネルのシステムコールインターフェイス(SCI)はPOSIX / SUSdupread互換目指しています[1]openioctlwritemmapcloseexit
プロセススケジューリング
サブシステム
IPC
サブシステム
メモリ管理
サブシステム
仮想ファイル
サブシステム
ネットワーク
サブシステム
その他のコンポーネント:ALSADRIevdevklibcLVMデバイスマッパーLinuxネットワークスケジューラNetfilter
LinuxセキュリティモジュールSELinuxTOMOYOAppArmorSmack
ハードウェア(CPUメインメモリデータストレージデバイスなど)
  1. ^ 「管理ガイドREADME」git.kernel.org