
無料のオープンソース グラフィックス デバイス ドライバーは、コンピューター グラフィックス ハードウェアを制御し、グラフィックス レンダリングアプリケーション プログラミング インターフェイス(API)をサポートするソフトウェア スタックであり、無料のオープンソース ソフトウェアライセンスに基づいてリリースされています。グラフィックスデバイス ドライバーは、特定のハードウェアが特定のオペレーティング システム カーネル内で動作し、アプリケーションがグラフィックス ハードウェアにアクセスするために使用するさまざまな API をサポートするように作成されています。ディスプレイドライバーがグラフィックス ハードウェアの一部である場合は、ディスプレイへの出力を制御することもできます。ほとんどの無料のオープンソース グラフィックス デバイス ドライバーは、Mesaプロジェクトによって開発されています。ドライバーは、コンパイラ、レンダリング API、およびグラフィックス ハードウェアへのアクセスを管理するソフトウェア で構成されています。
自由に(合法的に)入手できるソースコードがないドライバーは、一般にバイナリ ドライバーと呼ばれます。Linux など、継続的に開発および変更されるオペレーティング システムで使用されるバイナリ ドライバーは、エンド ユーザーとパッケージ管理者に問題を引き起こします。システムの安定性、セキュリティ、パフォーマンスに影響するこれらの問題は、フリーでオープン ソースのドライバーを独自に開発する主な理由です。技術文書が利用できない場合は、クリーン ルーム リバース エンジニアリングによって基盤となるハードウェアを理解することがよくあります。この理解に基づいて、デバイス ドライバーを作成し、任意のソフトウェア ライセンスの下で合法的に公開できます。
まれに、メーカーのドライバー ソース コードが無料ライセンスなしでインターネット上で公開されることがあります。つまり、個人的に使用するためにコードを研究したり変更したりすることはできますが、変更された (通常は元の) ソース コードは自由に配布できません。ドライバーのバグに対する解決策は、ドライバーの修正バージョンの形で簡単に共有できません。したがって、このようなドライバーの有用性は、無料およびオープン ソースのドライバーと比較して大幅に低下します。
独自ドライバの問題
ソフトウェア開発者の視点

バイナリのみのドライバに対しては、著作権、セキュリティ、信頼性、開発上の懸念から反対意見がある。バイナリブロブに対するより広範なキャンペーンの一環として、OpenBSDの主任開発者であるTheo de Raadtは、バイナリドライバでは「壊れたときに修復する方法がない(そして壊れるだろう)」と述べた。バイナリドライバに依存する製品がメーカーによってサポート終了と宣言されると、実質的に「永久に壊れた」ことになる。 [1]プロジェクトはまた、バイナリドライバ[2]は「バグとバグの回避策を隠す」とも述べている。[3]この見解は、バイナリドライバで見つかった欠陥(2006年10月にRapid7によって発見されたNvidiaの3Dドライバの悪用可能な バグを含む)によってある程度正当化されている。このバグは2004年から存在していたと推測されている。 Nvidiaはこれを否定し、この問題は2006年7月に初めて彼らに伝えられ、2004年のバグはX.Orgのバグであり(Nvidiaのドライバーのバグではなかった)と主張した。[4]
バイナリ ドライバーは、現在のバージョンのオープン ソース ソフトウェアでは動作しないことが多く、オープン ソース ソフトウェアの開発スナップショットをサポートすることはほとんどありません。開発者が Nvidia または ATI の独自仕様のドライバーを X サーバーの開発スナップショットまたは Linux カーネルの開発スナップショットで直接使用することは通常不可能です。カーネル モード設定などの機能は、ベンダー以外の誰もバイナリ ドライバーに追加できないため、ベンダーに能力や関心がない場合は、それらの機能を組み込むことができません。
Linuxカーネル開発コミュニティでは、 Linus Torvaldsがバイナリのみのモジュールの問題について強い声明を出している。「バイナリのみのモジュールで手を縛ることなど考えもしません。バイナリのみのモジュールを使うのは、その人の問題だということを人々に知ってもらいたいのです」。[5]別のカーネル開発者であるGreg Kroah-Hartmanは、バイナリのみのカーネルモジュールはカーネルのライセンス(GNU General Public License)に準拠していないと述べ、「派生作品やリンクなどの面白いことでGPLに違反しているだけです」。[6]作家でコンピュータ科学者のPeter Gutmannは、 MicrosoftのWindows Vistaオペレーティングシステムのデジタル著作権管理スキームは「デバイスの操作の詳細を秘密にしておく必要がある」ため、オープンドライバーを書くために必要なドキュメントの入手を制限する可能性があると懸念を表明している。[ 7]
バイナリドライバの場合、フリーソフトウェアの哲学、ソフトウェアの品質、セキュリティ上の懸念から反対意見がある。[8] 2006年にGreg Kroah-Hartmanは次のように結論付けた。
「クローズドソースの Linux カーネルモジュールは違法です。それだけです。非常に単純なことです。私は長年にわたり、このテーマについてさまざまな IP 弁護士と話をする機会に恵まれましたが、話した弁護士全員が、今日ではクローズドソースの Linux カーネルモジュールを誰も作成できないことに同意しています。派生作品やリンクなどの楽しいことが原因で、GPLに違反しているだけです。」 [9]
Linuxカーネルは安定したカーネル内アプリケーションバイナリインターフェースを維持したことがありません。[10]また、 Samsung Galaxyシリーズのモデムドライバに見られるようなバックドアがプロプライエタリドライバに含まれている可能性も懸念されています。[11]
ハードウェア開発者の視点

3Dゲーム エンジンや3D コンピュータ グラフィックス ソフトウェアなどのアプリケーションが CPU から GPU に計算を転送する場合、通常はOpenGLやDirect3Dなどの専用 API を使用し、ハードウェアを直接処理しません。すべての変換(API 呼び出しから GPUオペコードへ) はデバイス ドライバーによって行われるため、デバイス ドライバーには専門知識が含まれており、最適化の対象となります。独自のドライバー開発はこれまで厳格であったため、最近ではデスクトップおよびモバイル GPU 用のコミュニティ支援デバイス ドライバーの数が急増しています。FOSSi、LowRISC などのフリーでオープンなハードウェア組織も、オープンなグラフィカル ハードウェア標準の開発から恩恵を受けるでしょう。これにより、コンピューター メーカー、愛好家などに、コンピューティング ハードウェアおよび関連デバイスを開発するための完全なロイヤリティ フリーのプラットフォームが提供されることになります。
デスクトップ コンピュータ市場は長い間、 x86 / x86-64命令セットと PC で利用可能な GPU を使用する PC ハードウェアによって支配されてきました。3 つの主要な競合企業 (Nvidia、AMD、Intel) が存在します。主な競合要因はハードウェアの価格と 3D コンピュータ ゲームの生のパフォーマンスであり、これは API 呼び出しを GPU オペコードに効率的に変換することに大きく影響されます。ディスプレイ ドライバとビデオ デコーダは、グラフィック カードの固有の部分です。つまり、ビデオ ストリームのデコードに必要な計算を支援するように設計されたハードウェアです。PC ハードウェアの市場が縮小しているため、新しい競合企業がこの市場に参入する可能性は低く、ある企業が他社のドライバのソース コードを見ることでどれだけ多くの知識を得られるかは不明です。
モバイル部門では状況が異なります。ハードウェア デバイスは大きく異なるため、機能ブロック (特定用途向け集積回路ディスプレイ ドライバー、2D および 3D アクセラレーション、ビデオ デコードおよびエンコード) は、チップ上の個別の半導体知的財産(SIP) ブロックです。一部のポータブル メディア プレーヤーでは、ビデオ デコードを加速するディスプレイ ドライバーが必要ですが、3D アクセラレーションは必要ありません。開発目標は、生の 3D パフォーマンスだけでなく、システム統合、消費電力、2D 機能です。ディスプレイを更新する従来の方法 ( Vsync ) を放棄し、サンプル アンド ホールドテクノロジをより有効に活用して消費電力を削減する アプローチもあります。
2013年第2四半期には、世界中で販売されたスマートフォンの79.3%がAndroidのバージョンを搭載しており、[12] Linuxカーネルがスマートフォンを支配しています。ハードウェア開発者は、自社のハードウェア用にLinuxドライバを提供するインセンティブがありますが、競争のため、これらのドライバを無料かつオープンソースにするインセンティブがありません。追加の問題として、 Atomic Display Framework (ADF) [13]など、 Linuxカーネルに対するAndroid固有の拡張機能がメインラインで受け入れられていないことが挙げられます。ADFは、3.10 AOSPカーネルの機能であり、Androidのhwcomposer HALとカーネルドライバの間にdma-buf中心のフレームワークを提供します。ADFは、 DRM - KMSフレームワークと大幅に重複しています。ADFはメインラインに受け入れられていませんが、同じ問題に対処する別のソリューションセット(アトミックモード設定と呼ばれる)が開発中です。libhybrisなどのプロジェクトは、AndroidデバイスドライバをAndroid以外のLinuxプラットフォームで実行するために利用しています。
ソフトウェアアーキテクチャ


無料のオープンソース ドライバーは、主にLinux カーネル開発者、サードパーティのプログラミング愛好家、Advanced Micro Devicesなどの企業の従業員によって Linux 上でLinux向けに開発されています。各ドライバーには次の 5 つの部分があります。
- LinuxカーネルコンポーネントDRM
- Linux カーネル コンポーネントKMS ドライバー(ディスプレイ コントローラードライバー)
- libDRM ユーザー空間コンポーネント (DRM システム コールのラッパー ライブラリ。Mesa 3D でのみ使用されます)
- Mesa 3Dのユーザー空間コンポーネント。このコンポーネントはハードウェア固有であり、CPU上で実行され、たとえばOpenGLコマンドをGPUのマシンコードに変換します。デバイスドライバーが分割されているため、マーシャリングが可能です。Mesa 3Dは、 OpenGL、OpenGL ES、OpenVG、GLX、EGL、OpenCLの唯一の無料かつオープンソースの実装です。2014年7月、ほとんどのコンポーネントがGallium3D仕様に準拠しました。Direct3Dバージョン9用の完全に機能するステートトラッカーはCで書かれており、Direct3Dバージョン10および11用のメンテナンスされていないトラッカーはC++で書かれています。[14] WineにはDirect3Dバージョン9があります。別のWineコンポーネントは、OpenGLで動作して、Direct3D呼び出しをOpenGL呼び出しに変換します。
- デバイス依存型 X (DDX)、 X.Org Server用の別の 2D グラフィック デバイス ドライバー
DRMはカーネル固有です。VESAドライバは一般的にどのオペレーティングシステムでも利用可能です。VESAドライバはほとんどのグラフィックカードをアクセラレーションなしでサポートし、ディスプレイ解像度はメーカーがビデオBIOSでプログラムしたセットに限定されます。[15]
歴史
Linux グラフィックス スタックは、X Window System コア プロトコルによって迂回しながら進化してきました。
-
Xサーバの2Dドライバ
無料のオープンソースドライバー
ATIとAMD
ラデオン

AMD の独自ドライバであるRadeon用のAMD Catalyst は、Microsoft Windows および Linux (旧 fglrx) で利用できます。現在のバージョンは AMD のサイトからダウンロードでき、一部の Linux ディストリビューションのリポジトリに含まれています。これは、オープンソース カーネル、X、および Mesa マルチメディア ドライバと、Catalyst から派生したクローズド ソースの OpenGL、OpenCL、および Vulkan ドライバを組み合わせた AMDGPU-PRO ハイブリッド ドライバに置き換えられる予定です。
ATI -AMD GPU用のFOSSドライバは、Radeon(xf86-video-atiまたはxserver-xorg-video-radeon)という名前で開発されています。ハードウェアアクセラレーションを有効にするには、GPUに独自のマイクロコードをロードする必要があります。[16] [検証失敗]
Radeon 3D コードは、GPU テクノロジーに応じて 6 つのドライバーに分割されています。radeon、r200、r300 classic ドライバーと、r300g、r600g、radeonsi Gallium3Dドライバーです。
- Radeon はR100シリーズをサポートしています。
- R200はR200シリーズをサポートします。
- R300g は、事前統合されたシェーダ モデルマイクロアーキテクチャ ( R300、R400、およびR500)をサポートします。
- R600g は、すべてのTeraScale (VLIW5/4)ベースの GPU ( R600、R700、HD 5000 (Evergreen)、HD 6000 (Northern Islands))をサポートします。
- Radeonsi は、すべてのGraphics Core Nextベースの GPU ( HD 7000、HD 8000、Rx 200 (Southern Islands、Sea Islands、Volcanic Islands)) をサポートしています。
最新の機能マトリックスが利用可能であり、[17]ビデオコーディングエンジン[18]と統合ビデオデコーダー[ 19]がサポートされています。[20]無料のオープンソースRadeonグラフィックスデバイスドライバーはリバースエンジニアリングされていませんが、AMDが秘密保持契約(NDA)に署名する必要なく公開したドキュメントに基づいています。[21] [22] [23]ドキュメントは2007年に徐々に公開され始めました。[24] [25] [26]
AMDの従業員は、必要なドキュメントを提供することに加えて、ハードウェアと機能をサポートするためのコードも提供しています。[18]
Radeon グラフィックス デバイス ドライバーのすべてのコンポーネントは、世界中のコア コントリビューターと関係者によって開発されています。2011 年には、r300g が Catalyst を上回るパフォーマンスを示したケースもありました。
AMDGPU
2014年のゲーム開発者会議で、AMDは、Catalystのユーザー空間部分を、独自のカーネルブロブではなく、無料のオープンソースDRMカーネルモジュールに再構築する戦略変更を検討していると発表した。[27]
新しい AMDGPU カーネルモジュールとスタックのリリースは、2015 年 4 月に dri-devel メーリングリストで発表されました。[28] AMDGPU は公式にはGCN 1.2 以降のグラフィックカードのみをサポートしていますが、[29]カーネルパラメータを介して GCN 1.0 および 1.1 グラフィックカード (Radeon ドライバーによってのみ公式にサポートされています) の実験的なサポートを有効にすることができます。[30] [31] libdrm 2.4.63 以降では、別のlibdrm、libdrm-amdgpu が含まれています。[32]
前の Radeon の段落で説明した radeonsi 3D コードは amdgpu でも使用されます。3D ドライバーには、radeon と amdgpu の両方のバックエンドがあります。
エヌビディア

NvidiaのプロプライエタリドライバであるNvidia GeForce driver for GeForceは、Windows x86 / x86-64、Linux x86/x86-64/ ARM、OS X 10.5以降、Solaris x86/x86-64、FreeBSD x86/x86-64で利用可能です。現在のバージョン はインターネットからダウンロードでき、一部のLinuxディストリビューションではリポジトリに含まれています。2013年10月4日のベータ版Nvidia GeForceドライバ331.13はEGLインターフェースをサポートしており、このドライバと連携してWaylandのサポートを可能にしています。[33] [34]
Nvidiaの無料オープンソースドライバーはnvと呼ばれています。[35]このドライバーには制限があり(2Dアクセラレーションのみをサポート)、Matthew Garrett、Dirk Hohndelらはソースコードがわかりにくいと指摘しています。[36] [37] [38] Nvidiaは2010年3月にnvを廃止し、 Fermi以降のGPUとDisplayPortのサポートを追加しないことを決定しました。[39]
2009年12月、Nvidiaは無料グラフィックスの取り組みをサポートしないことを発表しました。[40] 2013年9月23日、同社はGPUに関するドキュメントを公開すると発表した。[41]
Nouveau は、リバースエンジニアリングを通じて得られた情報にほぼ完全に基づいています。このプロジェクトは、Gallium3D を使用してX.Org/Wayland用の 3D アクセラレーションを作成することを目指しています。[42] 2012 年 3 月 26 日、Nouveau のDRMコンポーネントは安定しているとマークされ、Linux カーネルのステージング領域から昇格されました。[43] Nouveau は、 Tesla (およびそれ以前)、Fermi、Kepler、およびMaxwellベースの GPU をサポートしています。[44] 2014 年 1 月 31 日、Nvidia の従業員 Alexandre Courbot は、Nouveau に GK20A ( Tegra K1 )の初期サポートを追加する広範なパッチセットをコミットしました。 [45] 2014 年 6 月、Codethink は、EGLとTegra K1上の「100% オープンソースのグラフィックス ドライバー スタック」を使用して、 Linux カーネル3.15でWaylandベースのWestonコンポジターを実行したと報告されています。[46]機能マトリックスが利用可能です。[47] 2014年7月、Nouveauはリクロックサポートが欠如していたため、Nvidia GeForceドライバを上回る性能を発揮できなかった。Tegra-reは、Tegra K1より前のnVidiaのVLIWベースのTegraシリーズのGPUをリバースエンジニアリングするプロジェクトである。[48]
Nvidiaは、OEMを通じて、またLinux for Tegra(旧L4T)開発キットの一部として、Tegra用の独自のデバイスドライバーを配布しています。[49] NvidiaとパートナーのAvionic Designは、2012年4月にメインラインLinuxカーネルのアップストリームにGrate(Tegra用の無料のオープンソースドライバー)を提出する作業を進めていました。[50] [51]同社の共同設立者兼CEOは、2013年のGPUテクノロジーカンファレンス でUbuntu UnityとともにTegraプロセッサーのロードマップを発表しました。[52]
Linux 上の Pascal および Volta GPU のメモリ管理を実装する Nvidia の Unified Memory ドライバー (nvidia-uvm.ko) は、MIT ライセンスです。ソース コードは、nvidia-uvm.ko をサポートするシステムの Nvidia Linux ドライバー ダウンロードで入手できます。
2022年5月、Nvidiaは、GPL / MITデュアルライセンスでGPU ロード可能カーネルモジュールをオープンソース化する新しいイニシアチブとポリシーを発表しましたが、アルファ品質の新しいモデルのみです。ただし、「これらの変更はカーネルモジュール用であり、ユーザーモードコンポーネントは変更されていません。ユーザーモードはクローズドソースのままであり、ドライバーとCUDAツールキットのビルド済みバイナリとともに公開されます。」と述べています。[53]
インテル
Intelは、PowerVRベースのチップを除いて、自社のグラフィックチップ用のオープンソースドライバを制作(または委託)してきた歴史がある。[54]同社の2D X.Orgドライバはxf86-video-intelと呼ばれる。Linuxカーネルのカーネルモード設定ドライバは、ビデオモードの切り替えにビデオBIOSを使用しません。一部のBIOSはモードの範囲が限られているため、これによりIntelビデオアダプタでサポートされているモードへのより信頼性の高いアクセスが提供される。
同社は2011年に、特にSandy Bridgeやそれ以降のハードウェアにおいて、 Windowsの同等品に近づくパフォーマンスを実現するために、無料のLinuxドライバの最適化に取り組んだ。パフォーマンスの最適化により、Intelドライバは特定のタスクにおいて独自のWindowsドライバを上回るパフォーマンスを発揮できるようになった。 [55] [ 56] [57]一部のパフォーマンス強化は、古いハードウェアのユーザーにもメリットをもたらす可能性がある。[58]
Linuxカーネル3.12では、 IntelのLLC(Last Level Cache、L4-Cache、Crystalwell、Iris Pro)のサポートが追加されました。[59] [60] 2013年には、同社には20〜30人のフルタイムのLinuxグラフィックス開発者がいました。[61]
マトロックス
Matrox は、Matrox Mystique、Parhelia、G200、G400、G550を開発、製造しています。同社は G550 より古いチップセットに対しては無料のオープンソース ドライバーを提供していますが、G550 より新しいチップセットはクローズドソース ドライバーでサポートされています。
S3グラフィックス
S3 Graphicsは、OpenChromeがサポートするS3 Trio、ViRGE、Savage、Chromeを開発しています。[62]
アーム株式会社
Arm Ltdは、半導体の知的財産コアのライセンス供与を行うファブレス半導体企業である。ARM命令セットとそれに基づくCPUのライセンス供与で知られているが、 MaliシリーズのGPUや、最近ではレイトレーシングをサポートするImortalis GPUの開発とライセンス供与も行っている。2012年1月21日、Phoronixは、Luc VerhaegenがArm MaliシリーズのGPU(具体的にはMali-200およびMali-400バージョン)を対象としたリバースエンジニアリングの試みを推進していると報じた。Limaとして知られるリバースエンジニアリングプロジェクトは、2012年2月4日にFOSDEMで発表された。 [63] [64] 2013年2月2日、Verhaegenは、Limaドライバー上で実行されるtimedemoモードでQuake III Arenaのデモを行った。 [65] 2018年5月、Limaの開発者がLinuxカーネルに組み込むためのドライバーを投稿した。[66] 2019年5月現在、LimaドライバはメインラインLinuxカーネルの一部となっている。[67]
Panfrostは、Mali Txxx(Midgard)およびGxx(Bifrost)GPU用のリバースエンジニアリングされたドライバーです。Panfrostの紹介は、X.Org Developer's Conference 2018で発表されました。2019年5月現在、PanfrostドライバーはメインラインLinuxカーネルの一部となっています。[68]
ARMは、フリーでオープンソースのライセンスでライセンスされているグラフィックスアクセラレーションハードウェアのサポートを提供する意向を示していない。しかし、ARMの従業員は、2015年12月と2016年4月に、 ARM HDLCDディスプレイコントローラとMali DP500、DP550、DP650 SIPブロックをサポートするためのLinuxカーネルのパッチを送信した。 [69] [70]
イマジネーションテクノロジーズ
イマジネーションテクノロジーズは、 PowerVR GPUを含む半導体知的財産コアの開発とライセンス供与を行うファブレス半導体企業です。インテルは数多くのPowerVRベースのGPUを製造しています。PowerVR GPUはモバイルSoCで広く使用されています。組み込みデバイスで広く使用されているため、フリーソフトウェア財団はPowerVRドライバーのリバースエンジニアリングを最優先プロジェクトリストに載せています。[71] 2022年3月現在、イマジネーションは2014年のRogueアーキテクチャベースのPowerVR GX6250と、より最近のAシリーズアーキテクチャベースのAXE-1-16MおよびBXS-4-64 GPU用のFOSSドライバーを提供しています。[72]
ヴィヴァンテ
Vivante Corporation は、半導体の知的財産コアのライセンス供与と GCxxxx シリーズの GPU の開発を行っているファブレス半導体企業です。Vivante 独自のクローズドソース Linux ドライバは、カーネル部分とユーザー空間部分で構成されています。カーネル コンポーネントはオープン ソース ( GPL ) ですが、GLES(2) 実装と HAL ライブラリで構成されるユーザー空間コンポーネントはオープン ソースではありません。これらにドライバ ロジックの大部分が含まれています。
Wladimir J. van der Laan は、ブロブの動作を研究し、コマンドストリームダンプを調べて操作することで、状態ビット、コマンドストリーム、シェーダーISA を発見し、文書化した。Etnaviv Gallium3D ドライバーは、この文書に基づいて書かれている。Van der Laan の仕事は Lima ドライバーに触発されたもので、プロジェクトは機能的だが最適化されていない Gallium3D LLVM ドライバーを生み出した。Etnaviv ドライバーは、いくつかのベンチマークで Vivante の独自コードよりも優れたパフォーマンスを示し、Vivante の GC400、GC800、GC1000、GC2000、GC3000、GC7000 シリーズをサポートしている。[73] 2017 年 1 月、Etnaviv は OpenGL ES 2.0 と Desktop OpenGL 2.1 の両方をサポートしてMesaに追加されました。[74]
クアルコム
Qualcomm はAdreno (旧 ATI Imageon ) モバイル GPU シリーズを開発しており、これをSnapdragon モバイル SoC シリーズの一部として組み込んでいる。PhoronixとSlashdot は2012年に、Lima ドライバに触発された Rob Clark が Adreno GPU シリーズのドライバのリバースエンジニアリングに取り組んでいると報じた。[75] [76]参照されたブログ投稿で、Clark は、このプロジェクトを余暇に行なっており、Qualcomm プラットフォームがオープン 3D グラフィックスに取り組むための唯一の実行可能なターゲットであると書いている。彼の雇用主 ( Texas InstrumentsとLinaro ) は、彼の主なターゲットであったImagination PowerVRとARM Maliコアと提携していた。彼は 2D サポート用の作業用コマンド ストリームを持っており、3D コマンドも同じ特性を持っているようだった。 [77]ドライバ コードはGitorious "freedreno" [78]で公開され 、Mesa に移動された。[79] [80] 2012年には実用的なシェーダアセンブラが完成し、[81]リバースエンジニアリングされたシェーダコンパイラを使用して、テクスチャマッピング [82] とフォンシェーディング [83] のデモバージョンが開発されました。クラークは、2013年2月2日のFOSDEMでデスクトップ合成、XBMCメディアプレーヤー、Quake III Arenaを実行するFreedrenoのデモを行いました。 [84]
2013年8月、freedrenoのカーネルコンポーネント(MSMドライバ)がメインラインに受け入れられ、Linuxカーネル3.12以降で利用可能になりました。[85] DDXドライバは、 2014年7月にX.Org Serverバージョン1.16以上を必要とするサーバー管理ファイル記述子のサポートを獲得しました。[86] 2016年1月、Mesa Gallium3DスタイルのドライバはAdreno 430のサポートを獲得しました。 [87]同年11月、ドライバはAdreno 500シリーズのサポートを追加しました。[88] Freedrenoは、 96Boards Dragonboard 410cやNexus 7(2013)などのデバイスで、従来のLinuxディストリビューション( DebianやFedoraなど)やAndroidで使用できます。
ブロードコム

Broadcomは、SoCの一部としてVideoCore GPUシリーズの開発と設計を行っています。Raspberry Piで使用されているため、VideoCore用のFOSSドライバーには大きな関心が寄せられています。[90] Raspberry Pi Foundationは、Broadcomと協力して、2012年10月24日に「GPUを駆動するすべてのARM(CPU)コード」をオープンソース化すると発表しました。[要出典]しかし、この発表は誤解を招くものでした。リバースエンジニアリングされたLimaドライバーの作者によると、新しくオープンソース化されたコンポーネントは、ARM CPUとVideoCore間のメッセージパッシングのみを可能にし、Videocoreへの洞察や追加のプログラム可能性はほとんど提供しませんでした。[91] Videocore GPUは、処理を扱うRTOSを実行します。ビデオアクセラレーションは、独自のGPU用にコード化されたRTOSファームウェアで行われますが、そのファームウェアは、その時点ではオープンソース化されていませんでした。[92]独自GPUをターゲットにしたツールチェーンも文書化された命令セットも存在しなかったため、ファームウェアのソースコードが利用可能になったとしても、その利点を活かすことはできなかった。Videocoreivプロジェクト[93]は、VideoCore GPUを文書化しようとした。
2014年2月28日(ラズベリーパイ2周年)に、ブロードコムとラズベリーパイ財団は、VideoCore IVグラフィックコアの完全なドキュメントと、3条項BSDライセンスの下でのグラフィックスタックの完全なソースリリースを発表しました。[94] [95]フリーライセンスの3Dグラフィックコードは、2014年8月29日にMesaにコミットされ、[96] Mesaの10.3リリースで初めて登場しました。
その他のベンダー
Silicon Integrated SystemsとVIA Technologiesはオープンソースドライバにあまり関心を示していないが、両社ともFOSS開発者によってX.Orgに統合されたソースコードを公開している。 [38] 2008年7月、VIAはLinuxとオープンソースコミュニティにおけるイメージを向上させるために、自社製品のドキュメントを公開した。[97]同社はオープンソースコミュニティと協力してドキュメントと実用的なDRMドライバを提供することに失敗し、Linuxサポートへの期待は満たされなかった。[98] 2011年1月6日、VIAはもはやフリーグラフィックスイニシアチブのサポートに興味がないことが発表された。[99]
DisplayLink は、 Linuxやその他のプラットフォームで USB グラフィックス テクノロジのサポートを実現することを目標とした、オープンソース プロジェクト Libdlo [100]を発表しました。このコードはLGPLライセンス[101]で利用可能ですが、 X.Orgドライバには統合されていません。DisplayLink グラフィックス サポートは、メインラインのカーネル udlfb ドライバ (fbdev 付き) および udl/drm ドライバを通じて利用できます。udl/drm ドライバは、2012 年 3 月時点では drm-next ツリーでのみ利用可能でした。
ハードウェア関連以外のベンダーも、無料のグラフィックスの取り組みを支援する場合があります。Red Hatには、Radeon ソフトウェアに取り組んでいるフルタイムの従業員が 2 人 (David Airlie と Jérôme Glisse) います。[102]また、Fedora プロジェクトは、新しいLinux ディストリビューション バージョンのリリース前に、無料のグラフィックス ドライバーをテストするためのFedora Graphics Test Week イベントを後援しています。 [103]開発やサポートを提供している他の企業には、NovellやVMware などがあります。
オープンハードウェアプロジェクト


Project VGAは、低予算でオープンソースのVGA互換ビデオカードを作成することを目指しています。[104] Open Graphics Projectは、オープンハードウェアGPUの作成を目指しています。Open Graphics Device v1には、デュアルDVI-I出力と100ピンIDCコネクタがあります。2010年9月、最初の25枚のOGD1ボードが助成金申請と購入のために利用可能になりました。[105]デスクトップコンピュータではなく組み込みグラフィックスをターゲットにしたMilkymist システムオンチップは、VGA出力、制限付き頂点シェーダ、2Dテクスチャリングユニットをサポートしています。[106]
実験的なGPGPUプロセッサであるNyuzi [107]には、 System Verilogで記述された合成可能なハードウェア設計、命令セットエミュレータ、LLVMベースのC-C++コンパイラ、ソフトウェアライブラリが含まれており、並列ソフトウェアとハードウェアのテストと調査を行っています。Terasic DE2-115フィールドプログラマブルゲートアレイボード上で実行できます。[108] [109]
プロジェクトでFPGAを使用する場合、通常は部分的に(または完全に)クローズドソースのツールチェーンを使用します。ただし、現在、LatticeベースのFPGA(特にiCE40ボードとECP5ボード)用のオープンソースツールチェーンがいくつか利用可能で、それぞれProject IceStorm [110]とTrellis [111]を使用しています。また、前述のFPGAツールチェーンと、XilinxベースのFPGA用の初期段階のオープンソースツールチェーンを含む、SymbiFlow [112]と呼ばれる「FPGAのGCC」を作成するための大規模な継続的な取り組みもあります。
参照
参考文献
- ^ テオ・デ・ラート(2006-12-03)。 「ハードウェアのオープンドキュメント」。OpenCON 2006 のプレゼンテーション スライド。2007 年 2 月 1 日に取得。
- ^ 「デバイス ドライバーにおける「バイナリ」の意味は何ですか?」2017 年11 月 14 日閲覧。
- ^ 「3.9: "Blob!"」。OpenBSD 。 2007年2月12日閲覧。
- ^ 「Linux - Rapid7 アドバイザリ R7-0025 は NVIDIA Unix ドライバーにどのような影響を与えますか?」
- ^ "a/lt-バイナリ"。
- ^ Kroah-Hartman, Greg. 「Linux カーネルに関する神話、嘘、真実」。Linux カーネル モンキー ログ。
- ^ Peter Gutmann (2006-12-26). 「Windows Vista コンテンツ保護のコスト分析」。2007-01-28に閲覧。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ Linux Weekly News、2006 年 8 月 14 日: X.org、ディストリビュータ、およびプロプライエタリ モジュール
- ^ Greg Kroah-Hartman (2006)。「Linux カーネルに関する神話、嘘、真実」。Linux シンポジウム。
- ^ 「Linux カーネル ドライバー インターフェイス」。2013 年 11 月 4 日時点のオリジナルよりアーカイブ。2014 年 3 月 4 日閲覧。
- ^ 「SamsungGalaxyBackdoor」. 2014年2月4日.
- ^ 「IDCによると、世界のスマートフォン出荷台数においてAndroidが80%のシェアに迫る一方、iOSとBlackBerryのシェアは低下」2013年8月7日。
- ^ 「Atomic Display Framework」。
- ^ 「Direct3D 9 状態トラッカー」。2013年7月16日。2013年7月20日時点のオリジナルよりアーカイブ。2017年11月15日閲覧。
- ^ 「/doc/Documentation/fb/ のインデックス」 。2017年11 月 15 日閲覧。
- ^ Stable Debian.org の Debian パッケージ Firmware-linux-nonfree の詳細
- ^ 「Radeon Feature」 。 2017年11月15日閲覧。
- ^ ab 「LinuxカーネルとMesaドライバーでの初期VCEサポート」2014年2月4日。
- ^ 「drm-next-3.15 Feb 18」。2014年2月18日。
- ^ “drm-next-3.15 Mar 04”. 2014年3月4日.
- ^ 「AMD 開発者ガイド」。2013 年 7 月 16 日時点のオリジナルよりアーカイブ。
- ^ 「AMD が提供するドキュメント」。
- ^ 「AMD 3D ドキュメント リスト」。2013 年 10 月 7 日時点のオリジナルよりアーカイブ。
- ^ 「AMD、グラフィックス仕様を公開」LWN.net 2007-09-05 2014-07-15閲覧。
- ^ 「AMD: NDAなしのGPU仕様!」 2007年9月10日. 2014年7月15日閲覧。
- ^ David Airlie (2007-09-13). 「AMD hand me specs on a CD」。2012-10-22時点のオリジナルよりアーカイブ。2014-07-15閲覧。
- ^ 「AMD、新たなLinuxドライバー戦略を検討中」2014年3月22日。 2014年3月23日閲覧。
- ^ 「AMDGPU ドライバーの初期リリース」 2015 年 4 月 20 日. 2016 年 4 月 26 日閲覧。
- ^ 「AMD、統合Linuxドライバー戦略と新しいカーネルドライバーで前進」Phoronix。
- ^ 「AMDGPU ドライバーのドキュメント」。Freedesktop.org。
- ^ 「AMD、GCN 1.0 / Southern Islands GPU 向けの最初の AMDGPU ドライバー サポートを開始」。Phoronix。
- ^ "libdrm 2.4.63". 2015年8月14日.
- ^ 「32 ビット プラットフォームでの EGL のサポート」。2013 年 10 月 4 日。2014 年 7 月 15 日に閲覧。
- ^ 「lib32-nvidia-utils 340.24-1 ファイルリスト」. 2014-07-15.
- ^ 「X.org nv ドライバー ページ」 2013-05-20.
- ^ 「Dirk Hohndel によるパッチ」 1998-11-18。2014-02-01 にオリジナルからアーカイブ。2014-07-15に取得。...
このような難読化されたコードには反対です。私たちの基準では、これはフリーソフトウェアとは見なされません。
- ^ 「Nouveau – コミュニティと過去、現在、そして将来の発展」(PDF)。2011年9月13日。 2014年7月15日閲覧。
- ^ ab David M. Airlie (2006-07-19). 「オープンソースのグラフィック ドライバー - 子猫を 殺すことはない」(PDF) 。Linux シンポジウム議事録第 1 巻。カナダ、オンタリオ州オタワ。2007年 2 月 8 日のオリジナル(PDF)からアーカイブ。2007年 1 月 28 日閲覧。
- ^ 「Nvidia が「NV」を廃止」Phoronix 2010-03-26.
- ^ 「最近の Nouveau の取り組みに対する Nvidia の対応」Phoronix 2009-12-14。
- ^ 「Nvidia が自社 GPU の特定の側面に関する公開ドキュメントのリリースを提案」 2013 年 9 月 23 日. 2013 年 9 月 24 日閲覧。
- ^ 「Nouveau: nVidia カード用の高速オープンソース ドライバー」。2014 年 7 月 23 日時点のオリジナルよりアーカイブ。2006年 8 月 10 日閲覧。
- ^ 「Nouveau ドライバーがステージングを卒業」LWN.net 2012-03-23.
- ^ 「Nvidia のエンジニアリング名」。
- ^ 「drm/nouveau: GK20A (Tegra K1) の初期サポート」 2014-01-31.
- ^ 「Codethink が NVIDIA Jetson TK1 を Linux 3.15、Wayland で実行可能に」Phoronix 2014-06-12。
- ^ 「Nouveau Driver Feature Matrix」 。 2017年11月16日閲覧。
- ^ “Tegra-re”. GitHub . 2017年11月16日閲覧。
- ^ 「Linux For Tegra Archive」。2014年1月30日。 2017年11月16日閲覧。
- ^ Mayo, Jon (2012-04-20). 「[RFC 0/4] NVIDIA Tegra DRM サポートの追加」. dri-devel (メーリング リスト) . 2012-08-21に取得。
- ^ Larabel, Michael (2012-04-11). 「NVIDIA Tegra 2 DRM/KMS ドライバーが話題に」. Phoronix Media . 2012-08-21閲覧。
- ^ “GTC 2013: NVIDIA の Tegra ロードマップ (6/11)”。YouTube。2013年3月19日。2021年12月21日時点のオリジナルよりアーカイブ。2013年7月10日閲覧。
- ^ 「NVIDIA、オープンソースのGPUカーネルモジュールをリリース」2022年5月19日。 2022年6月7日閲覧。
- ^ グラフィック カード メーカーの概要と Ubuntu との互換性 Ubuntu Gamer、2011 年 1 月 10 日 (Luke Benstead による記事) (記事のコピー)
- ^ 「Intel Linux SNB のパフォーマンスが向上」。Phoronix 2011 年 3 月 22 日。2011 年3月 23 日閲覧。
- ^ 「Intel Sandy Bridge のパフォーマンスが再び向上」。Phoronix 2011 年 3 月 31 日。2011年 3 月 31 日閲覧。
- ^ 「Intel SNB Linux ドライバーは Windows ドライバーより高速」。Phoronix 2011-05-23 。2011-05-23閲覧。
- ^ 「Intel Ironlake グラフィックス パフォーマンスの歴史的考察」。Phoronix。2011年5 月 25 日。2011年 5 月 25 日閲覧。
- ^ 「drm/i915: 利用可能な場合はデフォルトで eLLC/LLC を使用する」。
- ^ 「drm/i915: Iris のディスプレイ プレーンにライトスルー キャッシュを使用する」。
- ^ 「Intel には 20~30 人のフルタイム Linux グラフィックス開発者がいます」。2013 年 2 月 2 日。
- ^ 「OpenChrome」 。 2017年11月16日閲覧。
- ^ phoronix (2012年2月6日). 「Phoronix.com - FOSDEM 2012 - Open-Source ARM Mali」。2021年12月21日時点のオリジナルよりアーカイブ – YouTube経由。
- ^ Phoronix、2012 年 1 月 21 日: オープンソースのリバースエンジニアリングされた Mali GPU ドライバー
- ^ 「Quake 3 Arena タイムデモが Lima ドライバーの上に登場!」。2013 年 2 月 9 日時点のオリジナルよりアーカイブ。
- ^ 「Lima DRM ドライバー [LWN.net]」。lwn.net。
- ^ drm/lima: ARM Mali4xx GPU 用ドライバー}
- ^ drm/panfrost: 初期 panfrost ドライバを追加
- ^ 「drm: ARM HDLCD ディスプレイ コントローラのサポートを追加」。Linuxカーネル メーリング リスト。2015 年 12 月 11 日。
- ^ 「ARM Mali ディスプレイ コントローラーの初期サポート」。Linuxカーネル メーリング リスト。2016 年 4 月 1 日。
- ^ フリーソフトウェア財団、2005年4月25日: 優先度の高いフリーソフトウェアプロジェクト
- ^ 「Imagination Tech、Mesa向けオープンソースPowerVR Vulkanドライバーを公開」www.phoronix.com . 2022年4月19日閲覧。
- ^ "laanwj/etna_viv". GitHub .
- ^ "etnaviv: Vivante GPU 用のガリウム ドライバー".
- ^ Michael Larabel (2012 年 4 月 14 日)。「Snapdragon 用のオープンソース グラフィック ドライバー」。Phoronix。2012年4 月 15 日閲覧。
- ^ Soulskill (2012 年 4 月 14 日). 「オープンソースの Qualcomm GPU ドライバーが公開されました」. Slashdot . 2012 年4 月 15 日閲覧。
- ^ Rob Clark (2012 年 4 月 14 日). 「バイナリ ブロブに反撃する!」 Linaro . 2012 年4 月 15 日閲覧。
- ^ Freedreno、2012年4月15日 2012年10月24日アーカイブ、Wayback Machine
- ^ 「Mesa/Gallium3D が初の ARM SoC GPU ドライバーを入手 - Phoronix」。
- ^ 「Mesa (マスター): r600g: Richland APU PCI ID を追加」。2013 年 3 月 15 日。
- ^ Rob Clark (2012 年 7 月 29 日). 「freedreno アップデート: 最初のレンダリング シェーダー アセンブラー!」。2012 年8 月 16 日閲覧。
- ^ Rob Clark (2012年8月5日). 「テクスチャ付きキューブ(フルスクリーン!)」2012年8月16日閲覧。
- ^ Rob Clark (2012年8月15日). 「オープンソースのlolscat!」2012年8月16日閲覧。
- ^ 「Open ARM GPU ドライバー – Freedreno」。FOSDEM 2013-02-02 。2014-07-15閲覧。
- ^ 「Rob Clark の MSM ドライバーをマージする」kernel.org 2013-08-28 2014-06-04閲覧。
- ^ "xf86-video-freedreno 1.2.0". freedesktop.org . 2014-07-14.
- ^ 「adreno 430 のサポートを追加」 。2017年11 月 15 日閲覧。
- ^ 「Index Mesa-Mesa」 。 2017年11月15日閲覧。
- ^ Anholt, Eric (2014-06-17). 「Broadcom での新しい仕事」。2015-04-07 時点のオリジナルよりアーカイブ。
- ^ 「Raspberry Pi GPU 上の Phoronix」。
- ^ 「オープンソース ARM ユーザーランド - Raspberry Pi」。2012 年 10 月 24 日。
- ^ 「オープンソース ARM ユーザーランド - Raspberry Pi」。2012年10月24日。2012年10月30日時点のオリジナルよりアーカイブ。2012年11月1日閲覧。
- ^ "hermanhermitage/videocoreiv". GitHub .
- ^ 「Raspberry Pi がオープンソース グラフィック ドライバーの計画で 2 周年を迎える」2014 年 2 月 28 日。
- ^ Upton, Eben (2014年2月28日). 「Broadcomからの誕生日プレゼント - Raspberry Pi」. Raspberry Pi Foundation . 2019年7月8日閲覧。
- ^ 「vc4: 初期スケルトン ドライバーのインポート」。Mesa 3D グラフィックス ライブラリ。2014 年 8 月 9 日。
- ^ Michael Larabel (2008-07-26). 「VIA が 3 つのプログラミング ガイドを公開」. Phoronix . 2008-08-04閲覧。
- ^ Michael Larabel (2009-11-21). 「VIA の Linux TODO リスト... 2011 年を楽しみに待つべきか?」. Phoronix . 2009-12-30閲覧。
- ^ VIA のオープン Linux グラフィック ドライバーが窓から投げ落とされるPhoronix、2011 年 1 月 6 日 ( Michael Larabelによる記事)
- ^ 「Libdlo」 。 2017年11月16日閲覧。
- ^ 「DisplayLink が USB グラフィックス プロセッサ用の Linux ソース コードをリリース」(プレス リリース)。DisplayLink。2009 年 5 月 15 日。2009 年5 月 15 日閲覧。
- ^ AMD が別のオープンソース ドライバー開発者を雇用Phoronix、2010 年 12 月 11 日 ( Michael Larabelによる記事)
- ^ Fedora グラフィック テスト ウィークPhoronix、2011 年 2 月 22 日 ( Michael Larabelによる記事)
- ^ 「低予算、オープンソース、VGA 互換ビデオ カード、Project VGA のホーム」。090503 wacco.mveas.com
- ^ 「Linux Fund: OGD1」。Open Graphics Project。2010年9月23日。 2011年11月4日閲覧。
- ^ Bourdeauducq, Sebastien (2010 年 6 月)。「ビデオ合成のためのパフォーマンス主導型 SoC アーキテクチャ」(PDF)。2011 年 7 月 27 日のオリジナル(PDF)からアーカイブ。2010年 11 月 5 日に取得。
- ^ 「 Nyuziは実験的な GPGPU プロセッサです」。GitHub。2021年 6 月。
- ^ 「SOC テスト環境」。GitHub。
- ^ 「Terasic DE2-115 FPGA ボード上で実行」。GitHub。
- ^ 「Project IceStormホームページ」。2022年1月21日。
- ^ 「Project Trellis リポジトリ」。GitHub 。 2021年5月30日。
- ^ 「SymbiFlowホームページ」。
外部リンク
- Intel の Linux グラフィック ドライバー
- Linux に最適なグラフィック カード 2017-03-25 にWayback Machineでアーカイブ
- NVIDIA の Unix ドライバー ポータル ページ
- プロジェクトVGA
- Gallium3D の Direct3D 9 状態トラッカー
- d3d1x: Gallium 用の新しい Direct3D 10/11 COM 状態トラッカーを追加
- Freedreno ホームページ
- Freedreno/Gallium アップデート
- Phoronix テストスイート
- 3 つのグラフィック ドライバー (Nouveau、amdgpu、Etnaviv) のステータス更新LWN.net 2015
