
フリーかつオープンソースのグラフィックスデバイスドライバは、コンピュータグラフィックスハードウェアを制御し、グラフィックスレンダリングアプリケーションプログラミングインターフェイス(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年、グレッグ・クロー・ハートマンは次のように結論づけた。
クローズドソースのLinuxカーネルモジュールは違法です。それだけです。とても単純です。私は長年にわたり、この件に関して多くの知的財産弁護士と話をする機会に恵まれましたが、話をした弁護士全員が、今日ではクローズドソースの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ハードウェア市場が縮小するにつれて、新しい競合相手がこの市場に参入する可能性は低いと思われます。また、他社のドライバのソースコードを見ることで、1社がどれだけの知識を得られるかは不明です。
モバイル分野では状況が異なります。ハードウェアデバイスが大きく異なるため、機能ブロック(特定用途向け集積回路ディスプレイドライバ、2Dおよび3Dアクセラレーション、ビデオのデコードおよびエンコード)は、チップ上の独立した半導体知的財産(SIP)ブロックとなっています。一部のポータブルメディアプレーヤーは、ビデオデコードを高速化するディスプレイドライバを必要としますが、3Dアクセラレーションは必要としません。開発目標は、純粋な3Dパフォーマンスだけでなく、システム統合、消費電力、2D機能も考慮することです。また、ディスプレイを更新する従来の方法(Vsync )を廃止し、サンプルアンドホールド技術をより効果的に活用して消費電力を削減するアプローチもあります。
2013 年第 2 四半期には、世界中で販売されたスマートフォンの 79.3% がAndroidのバージョンを実行しており、[ 12 ] Linux カーネルがスマートフォンを支配しています。ハードウェア開発者は、ハードウェア用の Linux ドライバを提供するインセンティブがありますが、競争のため、これらのドライバを無料かつオープンソースにするインセンティブはありません。追加の問題は、Atomic Display Framework (ADF)など、メインラインに受け入れられていない Linux カーネルへの Android 固有の拡張機能です。[ 13 ] ADF は 3.10 AOSP カーネルの機能で、Android の hwcomposer HALとカーネルドライバの間にdma-buf中心のフレームワークを提供します。ADF は、 DRM - KMSフレームワークと大きく重複しています。ADF はメインラインに受け入れられていませんが、同じ問題に対処する別のソリューション群 (アトミック モード設定として知られています) が開発中です。libhybrisなどのプロジェクトは、Android デバイスドライバを利用して、Android 以外の Linux プラットフォームで実行します。


フリーでオープンソースのドライバは、主にLinuxカーネル開発者、サードパーティのプログラミング愛好家、Advanced Micro Devicesなどの企業の従業員によってLinux上で開発されています。各ドライバは5つの部分から構成されています。
DRMはカーネル固有です。VESAドライバは一般的にどのオペレーティングシステムでも利用可能です。VESAドライバは、アクセラレーションなしでほとんどのグラフィックカードをサポートし、ディスプレイ解像度はメーカーによってビデオBIOSでプログラムされたセットに制限されます。[ 15 ]
Linuxのグラフィックススタックは、X Window Systemコアプロトコルによって迂回されながら進化してきた。


glxinfoのOpenGL情報を表示したスクリーンショットglxgearsAMD独自のRadeon向けドライバであるAMD Catalystは、Microsoft WindowsおよびLinux(旧称fglrx)向けに提供されています。最新バージョンはAMDのサイトからダウンロードでき、一部のLinuxディストリビューションのリポジトリにも含まれています。現在、Catalystから派生したクローズドソースのOpenGL、OpenCL、Vulkanドライバと、オープンソースのカーネル、X、Mesaマルチメディアドライバを組み合わせたハイブリッドドライバであるAMDGPU-PROへの置き換えが進められています。
ATI - AMD GPU用の FOSS ドライバはRadeon (xf86-video-ati または xserver-xorg-video-radeon) という名前で開発されています。ハードウェア アクセラレーションを有効にするには、独自のマイクロコードを GPU にロードする必要があります。[ 16 ]
Radeon 3D コードは、GPU テクノロジーに応じて 6 つのドライバに分割されています。radeon、r200、r300 クラシック ドライバと、r300g、r600g、radeonsi Gallium3Dドライバです。
最新の機能マトリックスが利用可能で、[ 17 ]ビデオ コーディング エンジン[ 18 ]と統合ビデオ デコーダー[ 19 ] [ 20 ]がサポートされています。無料のオープンソース Radeon グラフィックス デバイス ドライバはリバース エンジニアリングされたものではなく、秘密保持契約(NDA) に署名する必要なく AMD が公開したドキュメントに基づいています。[ 21 ] [ 22 ] [ 23 ]ドキュメントは 2007 年に徐々に公開され始めました。[ 24 ] [ 25 ] [ 26 ]
AMDの従業員は、必要なドキュメントを提供するだけでなく、ハードウェアと機能をサポートするコードも提供しています。[ 18 ]
Radeonグラフィックスデバイスドライバのすべてのコンポーネントは、世界中のコアコントリビューターと関係者によって開発されています。2011年には、r300gがCatalystを上回る性能を発揮するケースもありました。
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-amdgpuという別のlibdrmが含まれています。[ 32 ]
前述の Radeon の項で述べた radeonsi 3D コードは、amdgpu でも使用されます。この 3D ドライバには、radeon と amdgpu の両方に対応するバックエンドがあります。

Nvidiaの独自ドライバであるNvidia 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 は、GK20A ( Tegra K1 ) の初期サポートを Nouveau に追加する大規模なパッチ セットをコミットしました。[ 45 ] 2014 年 6 月、Codethink は、Tegra K1上でEGLと「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 ]
Nvidiaの統合メモリドライバ(nvidia-uvm.ko)は、Linux上でPascalおよびVolta GPUのメモリ管理を実装するもので、MITライセンスで提供されています。ソースコードは、nvidia-uvm.koをサポートするシステム上のNvidia Linuxドライバのダウンロードから入手できます。
2022 年 5 月、Nvidia は、デュアルGPL – MIT ライセンスでGPUロード可能カーネル モジュールをオープンソース化する新しいイニシアチブとポリシーを発表しましたが、アルファ品質の新しいモデルのみでした。しかし、「これらの変更はカーネル モジュールに関するものであり、ユーザー モード コンポーネントは変更されていません。ユーザー モードはクローズド ソースのままで、ドライバと CUDA ツールキットにプリビルド バイナリとともに公開されます。」と述べています。[ 53 ]オープンソース ドライバはその後製品版にアップグレードされ、現在ではRTX 20シリーズ以降の GPU に公式に推奨されています。[ 54 ] [ 55 ] Blackwell ( RTX 50世代) 以降の NVIDIA GPU アーキテクチャは、オープン ドライバでのみサポートされています。[ 56 ]
Intel はPowerVR ベースのチップを除いて、グラフィックチップ用のオープンソース ドライバを製造 (または委託) してきた歴史があります。[ 57 ]同社の 2D X.Org ドライバは xf86-video-intel と呼ばれています。Linux カーネルのカーネル モード設定ドライバは、ビデオ モードの切り替えにビデオ BIOSを使用しません。一部の BIOS はモードの範囲が限られているため、これにより Intel ビデオ アダプタでサポートされているモードに確実にアクセスできます。
同社は、特にSandy Bridge以降のハードウェアにおいて、パフォーマンスの最適化によりIntelドライバーが特定のタスクで独自のWindowsドライバーを上回ることができるようになったため、 Windowsドライバーに匹敵するパフォーマンスを実現するために、無料のLinuxドライバーの最適化に2011年に取り組んだ。 [ 58 ] [ 59 ] [ 60 ]パフォーマンスの向上の一部は、古いハードウェアのユーザーにもメリットがあるかもしれない。[ 61 ]
IntelのLLC(ラストレベルキャッシュ、L4キャッシュ、Crystalwell、Iris Pro)のサポートはLinuxカーネル3.12で追加されました。[ 62 ] [ 63 ] 2013年には、同社には20人から30人のフルタイムのLinuxグラフィックス開発者がいました。[ 64 ]
Matrox社は、 Matrox Mystique、Parhelia、G200、G400、G550を開発・製造しています。同社はG550より古いチップセット向けには無料のオープンソースドライバを提供していますが、G550より新しいチップセットはクローズドソースドライバでサポートされています。
S3 Graphicsは、OpenChromeによってサポートされているS3 Trio、ViRGE、Savage、Chromeを開発しています。[ 65 ]
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で発表されました。 [ 66 ] [ 67 ] 2013 年 2 月 2 日、Verhaegen は、Lima ドライバ上で動作するQuake III Arena をタイムデモ モードでデモしました。 [ 68 ] 2018 年 5 月、Lima の開発者が Linux カーネルへの組み込みのためにドライバを公開しました。[ 69 ] 2019年5月現在、LimaドライバはLinuxカーネルのメインラインの一部となっている。[ 70 ]
Panfrost は、Txxx (Midgard) およびそれ以降の世代をカバーする Mali (および Immortalis) GPU 用のオープンソースのドライバ スタックです。Panfrost を紹介する講演が X.Org Developer's Conference 2018 で発表されました。[ 71 ] 2019 年 5 月現在、Panfrost カーネル ドライバはメインライン Linux カーネルの一部となっています。[ 72 ]ユーザー空間側は、OpenGL ESとOpenGLを提供する Mesa の Panfrost ドライバと、 Vulkan を提供する PanVK ユーザー空間ドライバで構成されています。[ 73 ]
Collaboraは、第3世代以降のValhall GPU向けにPanthorカーネルドライバを開発しました。[ 74 ] MesaのPanfrostおよびPanVKユーザースペースドライバは、これらのGPUでPanthorカーネルドライバを使用しています。その後、Collaboraは、Collabora、Arm、およびGoogleの共同開発によるTyrカーネルドライバを発表しました。これはRustで記述されており、最終的にはPanthorカーネルドライバを置き換えるように設計されています。[ 75 ]
Imagination Technologiesは、半導体の知的財産コアを開発およびライセンス供与するファブレス半導体企業であり、その中にはPowerVR GPUも含まれています。IntelはPowerVRベースのGPUを多数製造しています。PowerVR GPUは、モバイルシステムオンチップ(SoC)デバイスで広く使用されています。組み込みデバイスで広く使用されているため、Free Software FoundationはPowerVRドライバのリバースエンジニアリングを優先度の高いプロジェクトリストに載せています。[ 76 ] 2022年3月現在、Imaginationは、2014年のRogueアーキテクチャベースのPowerVR GX6250と、より新しいAシリーズアーキテクチャベースのAXE-1-16MおよびBXS-4-64 GPU用のFOSSドライバを提供しています。[ 77 ]
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 シリーズをサポートしています。[ 78 ] 2017 年 1 月に、Etnaviv は OpenGL ES 2.0 と Desktop OpenGL 2.1 の両方をサポートする形でMesaに追加されました。[ 79 ]
Qualcomm はAdreno (旧 ATI Imageon ) モバイル GPU シリーズを開発し、Snapdragon モバイル SoC シリーズの一部として組み込んでいます。PhoronixとSlashdot は2012年に、Lima ドライバに触発された Rob Clark が Adreno GPU シリーズのドライバのリバース エンジニアリングに取り組んでいると報じました。[ 80 ] [ 81 ]参照されたブログ記事で、Clark は余暇にこのプロジェクトに取り組んでおり、オープン 3D グラフィックスに取り組むための唯一の実行可能なターゲットは Qualcomm プラットフォームであると書いています。彼の雇用主 ( Texas InstrumentsとLinaro ) はImagination PowerVRとARM Maliコアと提携しており、これらが彼の主なターゲットだったはずです。彼は 2D サポートのコマンド ストリームを動作させており、3D コマンドも同様の特性を持っているようでした。[ 82 ]ドライバ コードはGitorious の「freedreno」[ 83 ]に公開され 、Mesa に移動されました。[ 84 ] [ 85 ] 2012年に動作するシェーダーアセンブラが完成しました。[ 86 ]リバースエンジニアリングされたシェーダーコンパイラを使用して、テクスチャマッピング [ 87 ] およびフォンシェーディング [ 88 ] のデモ版が開発されました。クラークは、2013年2月2日のFOSDEMで、デスクトップ合成、XBMCメディアプレーヤー、およびQuake III Arenaを実行 するFreedrenoをデモしました。 [ 89 ]
2013 年 8 月、freedreno のカーネル コンポーネント (MSM ドライバ) がメインラインに採用され、Linux カーネル 3.12 以降で利用可能になりました。[ 90 ] DDXドライバは、 2014 年 7 月にX.Org Serverバージョン 1.16 以降を必要とするサーバー管理ファイル ディスクリプタのサポートを獲得しました。 [ 91 ] 2016 年 1 月、Mesa Gallium3D スタイルのドライバが Adreno 430 のサポートを獲得しました。[ 92 ]同年 11 月、このドライバは Adreno 500 シリーズのサポートを追加しました。[ 93 ] Freedreno は、従来の Linux ディストリビューション ( DebianやFedoraなど) およびAndroid上で、 96Boards Dragonboard 410cやNexus 7 (2013)などのデバイスで使用できます。

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


Project VGA は、低予算のオープンソースVGA互換ビデオカードの作成を目指しています。[ 109 ] Open Graphics Project は、 オープンハードウェア GPU の作成を目指しました。2010 年 9 月に、最初の 25 枚の OGD1 ボードが助成金の申請と購入のために提供されました。[ 110 ]デスクトップ コンピュータではなく組み込みグラフィックスを対象とした Milkymist システムオン チップは、VGA 出力、限定的な頂点シェーダー、および 2D テクスチャリング ユニットをサポートしています。[ 111 ]
Nyuzi [ 112 ]は実験的な GPGPU プロセッサで、System Verilogで記述された合成可能なハードウェア設計、命令セットエミュレータ、LLVMベースの C-C++ コンパイラ、ソフトウェアライブラリ、テストを含み、並列ソフトウェアとハードウェアを研究しています。Terasic DE2-115フィールドプログラマブルゲートアレイボード上で実行できます。[ 113 ] [ 114 ]
プロジェクトで FPGA を使用する場合、一般的に部分的に (または完全に) クローズド ソースのツール チェーンが使用されます。ただし、現在、Lattice ベースの FPGA (特に iCE40 および ECP5 ボード用) 向けに、それぞれ Project IceStorm [ 115 ]および Trellis [ 116 ]を利用するオープンソース ツール チェーンがいくつか存在します。また、「FPGA の GCC」と呼ばれる SymbiFlow [ 117 ]を作成する大規模な継続的な取り組みもあり、これには前述の FPGA ツール チェーンと、Xilinx ベースの FPGA 向けの初期段階のオープンソース ツール チェーンが含まれています。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)…このような難読化されたコードに反対。当社の基準では、これはフリーソフトウェアとはみなされません。