Content deleted Content added
Citation bot (talk | contribs) Add: date. | Use this bot. Report bugs. | Suggested by Abductive | #UCB_toolbar |
Jerryobject (talk | contribs) MOS:FIRSTABBReviation define-clarify before parenthetic WP:ABBR. WP:LINKs: update-standardize, needless underscores > spaces. WP:SLASH > WP:DASH. |
||
(29 intermediate revisions by 19 users not shown) | |||
Line 1:
{{Multiple issues|
{{Technical|date=November 2017}}
{{
}}
{{
[[File:Linux kernel and OpenGL video games.svg|thumb|300px|alt=Flowchart with Tux, the Linux penguin|Data and instructions are sent to the [[
A '''free and open-source graphics device driver''' is a [[software stack]] which controls computer-[[
Drivers without freely (and legally)
In rare cases, a manufacturer's driver source code is available on the Internet without a [[free license]]. This means that the code can be studied and altered for personal use, but the altered (and usually the original) source code cannot be freely distributed. Solutions to bugs in the driver cannot be easily shared in the form of modified versions of the driver. Therefore, the utility of such drivers is significantly reduced in comparison to free and open-source drivers.
Line 18:
[[File:Linux Graphics Stack 2013.svg|thumb|right|500px|alt=Flowchart; see caption|Illustration of the Linux graphics stack]]
There are objections to binary-only drivers based on copyright, security, reliability and development concerns. As part of a wider campaign against [[binary blob]]s, [[OpenBSD]] lead developer [[Theo de Raadt]] said that with a binary driver there is "no way to fix it when it breaks (and it will break)"; when a product which relies on binary drivers is declared to be [[end-of-life (product)|end-of-life]] by the manufacturer, it is effectively "broken forever."<ref name=opencon-2006>{{cite web|
Binary drivers often do not work with current versions of open-source software, and
In the [[Linux kernel]] development community, [[Linus Torvalds]] has made strong statements on the issue of binary-only modules: "I ''refuse'' to even consider tying my hands over some binary-only module ... I want people to know that when they use binary-only modules, it's ''their'' problem".<ref>{{cite web|url=https://lwn.net/1999/0211/a/lt-binary.html|title=a/lt-binary}}</ref> Another kernel developer, [[Greg Kroah-Hartman]], has said that a binary-only kernel module does not comply with the kernel's license (the [[GNU General Public License]]); it "just violates the GPL due to fun things like derivative works and linking and other stuff."<ref>{{cite web|url=http://www.kroah.com/log/linux/ols_2006_keynote.html|title=Myths, Lies, and Truths about the Linux kernel|first=Greg|last=Kroah-Hartman|publisher=linux kernel monkey log}}</ref> Writer and computer scientist [[Peter Gutmann (computer scientist)|Peter Gutmann]] has expressed concern that the [[digital rights management]] scheme in Microsoft's [[Windows Vista]] operating system may limit the availability of the documentation required to write open drivers, since it "requires that the operational details of the device be kept confidential."<ref name=vista-cost>{{cite journal |
In the case of binary drivers, there are objections due to [[free software]] philosophy, software quality and [[computer insecurity|security]] concerns.<ref>[https://lwn.net/Articles/195351/ Linux Weekly News, Aug 14, 2006: ''X.org, distributors, and proprietary modules'']</ref> In 2006, [[Greg Kroah-Hartman]] concluded that:
The Linux kernel has never maintained a stable in-kernel [[application binary interface]].<ref>{{cite web|url=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/stable_api_nonsense.txt |title=The Linux Kernel Driver Interface |access-date=2014-03-04 |url-status=dead |archive-url=https://archive.today/20131104101751/https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/stable_api_nonsense.txt |archive-date=2013-11-04
=== {{anchor|From a hardware developer's perspective}}Hardware developer's view ===
Line 38 ⟶ 37:
The [[desktop computer]] market was long dominated by PC hardware using the [[x86]]/[[x86-64]] instruction set and GPUs available for the PC. With three major competitors (Nvidia, AMD and Intel). The main competing factor was the price of hardware and raw performance in 3D computer games, which is greatly affected by the efficient translation of API calls into GPU opcodes. The display driver and the [[video decoder]] are inherent parts of the graphics card: hardware designed to assist in the calculations necessary for the decoding of video streams. As the market for PC hardware has dwindled, it seems unlikely that new competitors will enter this market and it is unclear how much more knowledge one company could gain by seeing the source code of other companies' drivers.
The mobile sector presents a different situation. The functional blocks (the [[application-specific integrated circuit]] display driver,
During the second quarter of 2013 79.3
== Software architecture ==
[[File:Gallium3D vs DRI graphics driver model.svg|thumb|alt=Illustration of differences between Gallium3D and Direct Rendering Infrastructure models|
[[File:Gallium3D example matrix.svg|thumb|alt=Driver example matrix|An example matrix of the Gallium3D driver model. With the introduction of the Gallium3D tracker and WinSys interfaces, 18 modules are required instead of 36. Each WinSys module can work with each Gallium3D device driver module and each State Tracker module.]]
Free and open-source drivers are primarily developed on and for [[Linux]] by Linux kernel developers, third-party programming enthusiasts and employees of companies such as [[Advanced Micro Devices]]. Each driver has five parts:
Line 75 ⟶ 48:
# A Linux kernel component [[KMS driver]] (the [[display controller]] driver)
# A libDRM user-space component (a wrapper library for DRM system calls, which should only be used by Mesa 3D)
# A [[Mesa 3D]] user-space component. This component is hardware-specific; it is executed on the CPU and translates OpenGL commands, for example, into machine code for the GPU. Because the device driver is split, [[Marshalling (computer science)|marshalling]] is possible. Mesa 3D is the only free and open-source implementation of [[OpenGL]], [[OpenGL ES]], [[OpenVG]], [[GLX]], [[EGL (API)|EGL]] and [[OpenCL]]. In July 2014, most of the components conformed to [[Gallium3D]] specifications. A fully functional State Tracker for [[Direct3D]] version 9 is written in [[C (programming language)|C]], and an unmaintained tracker for Direct3D versions 10 and 11 is written in [[C++]].<ref>{{cite web|url=http://lists.freedesktop.org/archives/mesa-dev/2013-July/041900.html|title=Direct3D 9 state tracker|date=16 July 2013 |access-date=15 November 2017|archive-url=https://web.archive.org/web/20130720011019/https://lists.freedesktop.org/archives/mesa-dev/2013-July/041900.html|archive-date=20 July 2013|url-status=live}}</ref> [[Wine (software)|Wine]] has Direct3D version 9. Another Wine component translates Direct3D calls into OpenGL calls, working with OpenGL.
# [[Device Dependent X]] (DDX), another 2D graphics device driver for [[X.Org Server]]
Line 95 ⟶ 68:
{{See also|List of AMD graphics processing units|List of AMD accelerated processing unit microprocessors}}
[[File:Linux AMD graphics stack.svg|thumb|alt=Diagram|Linux device drivers for AMD hardware in August 2016]]
[[File:Glxinfo with glxgears screenshot.png|thumb|Screenshot of <code>glxinfo</code> showing OpenGL information with <code>glxgears</code> running on a Linux system with [[AMDgpu (Linux kernel module)|AMDGPU]] kernel module]]
[[Advanced Micro Devices|AMD's]] proprietary driver, [[AMD Catalyst]] for their [[Radeon]], is available for Microsoft Windows and Linux (formerly fglrx). A current version can be downloaded from AMD's site, and some Linux distributions contain it in their repositories. It is in the process of being replaced with an AMDGPU-PRO hybrid driver combining the open-source kernel, X and Mesa multimedia drivers with closed-source OpenGL, OpenCL and Vulkan drivers derived from Catalyst.
Line 103 ⟶ 77:
*R200 supports the [[Radeon R200|R200]] series.
*R300g supports pre-[[unified shader model]] microarchitectures: [[Radeon R300|R300]], [[Radeon R400|R400]] and [[Radeon R500|R500]].
*R600g supports all [[TeraScale (microarchitecture)|TeraScale (VLIW5/4)]]-based GPUs: [[Radeon R600|R600]], [[Radeon R700|R700]], [[Radeon HD 5000
*Radeonsi supports all [[Graphics Core Next]]-based GPUs: [[Radeon HD 7000
An up-to-date feature matrix is available,<ref>{{cite web|url=http://xorg.freedesktop.org/wiki/RadeonFeature|title=Radeon Feature|access-date=15 November 2017}}</ref> and there is support for [[Video Coding Engine]]<ref name="VCE">{{cite web |url=http://lists.freedesktop.org/archives/mesa-dev/2014-February/053203.html |title=initial VCE support in Linux kernel and in the Mesa driver|date=4 February 2014}}</ref> and [[Unified Video Decoder]].<ref>{{cite web |url=http://lists.freedesktop.org/archives/dri-devel/2014-February/054159.html |title=drm-next-3.15 Feb 18|date=18 February 2014}}</ref><ref>{{cite web |url=http://lists.freedesktop.org/archives/dri-devel/2014-March/054999.html |title=drm-next-3.15 Mar 04|date=4 March 2014}}</ref> The free and open-source Radeon graphics device drivers are not reverse-engineered, but are based on documentation released by AMD without the requirement to sign a [[non-disclosure agreement]] (NDA).<ref>{{cite web |url=http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/ |title=AMD Developer Guides |url-status=dead |archive-url=https://web.archive.org/web/20130716090237/http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/ |archive-date=2013-07-16
In addition to providing the necessary documentation, AMD employees contribute code to support their hardware and features.<ref name="VCE" />
Line 118 ⟶ 92:
The release of the new AMDGPU kernel module and stack was announced on the dri-devel mailing list in April 2015.<ref>{{cite web|url=http://lists.freedesktop.org/archives/dri-devel/2015-April/081501.html |title=Initial AMDGPU driver release |date=2015-04-20 |access-date=2016-04-26}}</ref> Although AMDGPU only officially supports [[Graphics Core Next|''GCN'']] 1.2 and later graphics cards,<ref>{{cite web|title=AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver|url=https://www.phoronix.com/scan.php?page=article&item=amd_bordeaux_strategy&num=1|website=Phoronix}}</ref> experimental support for GCN 1.0 and 1.1 graphics cards (which are only officially supported by the Radeon driver) may be enabled via a kernel parameter.<ref>{{cite web|title=AMDGPU driver documentation|url=https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html|website=Freedesktop.org}}</ref><ref>{{cite web|title=AMD Unleashes Initial AMDGPU Driver Support For GCN 1.0 / Southern Islands GPUs|url=https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-SI-Experimental-Code|website=Phoronix}}</ref> A separate [[Direct Rendering Manager|libdrm]], libdrm-amdgpu, has been included since libdrm 2.4.63.<ref>{{cite web |url=https://lwn.net/Articles/654542/ |title=libdrm 2.4.63 |date=2015-08-14}}</ref>
The radeonsi 3D code mentioned in the
=== {{anchor|History of nouveau}}Nvidia ===
Line 125 ⟶ 99:
[[Nvidia]]'s proprietary driver, [[Nvidia GeForce driver]] for [[GeForce]], is available for [[Windows]] [[x86]]/[[x86-64]], [[Linux]] x86/x86-64/[[ARM architecture|ARM]], [[Mac OS X Leopard|OS X 10.5]] and later, [[Solaris (operating system)|Solaris]] x86/x86-64 and [[FreeBSD]] x86/x86-64. A current version can be downloaded from the Internet, and some Linux distributions contain it in their repositories. The 4 October 2013 [[Software release life cycle|beta]] Nvidia GeForce driver 331.13 supports the [[EGL (API)|EGL]] interface, enabling support for [[Wayland (display server protocol)|Wayland]] in conjunction with this driver.<ref>{{cite web|url=http://www.nvidia.com/object/linux-display-amd64-331.13-driver.html |title=Support for EGL on 32-bit platforms |date=2013-10-04 |access-date=2014-07-15}}</ref><ref>{{cite web |url=https://www.archlinux.org/packages/multilib/x86_64/lib32-nvidia-utils/files/ |title=lib32-nvidia-utils 340.24-1 File List |date=2014-07-15}}</ref>
Nvidia's free and open-source driver is named nv.<ref>{{cite web|url=http://xorg.freedesktop.org/wiki/nv|title=X.org nv driver page|date=2013-05-20}}</ref> It is limited (supporting only 2D acceleration), and [[Matthew Garrett]], [[Dirk Hohndel]] and others have called its source code confusing.<ref>{{cite web |url=http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/Attic/README.RIVATNT.diff?r1=1.1.2.2&r2=1.1.2.3&hideattic=0&only_with_tag=xf-3_3_3 |title=Patch by Dirk Hohndel |date=1998-11-18 |access-date=2014-07-15 |quote=... opposed to such obfuscated code. We do not regard this as free software according to our standards |url-status=dead |archive-url=https://web.archive.org/web/20140201173132/http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/Attic/README.RIVATNT.diff?r1=1.1.2.2&r2=1.1.2.3&hideattic=0&only_with_tag=xf-3_3_3 |archive-date=2014-02-01
In December 2009, Nvidia announced they would not support free graphics initiatives.<ref name="NvidiaNouveau">{{cite web |url=https://www.phoronix.com/scan.php?page=news_item&px=NzgwNQ |title=Nvidia's Response To Recent Nouveau Work |publisher=[[Phoronix]] |date=2009-12-14}}</ref> On 23 September 2013,
Nouveau is based almost entirely on information gained through [[reverse engineering]]. This project aims to produce 3D acceleration for X.Org/[[Wayland (display server protocol)|Wayland]] using [[Gallium3D]].<ref>{{cite web |url=http://nouveau.freedesktop.org/wiki/ |title=Nouveau: Accelerated Open Source driver for nVidia cards |access-date=2006-08-10 |archive-date=2014-07-23 |archive-url=https://web.archive.org/web/20140723185723/http://nouveau.freedesktop.org/wiki/ |url-status=dead
Nvidia distributes proprietary device drivers for Tegra through OEMs and as part of its Linux for Tegra (formerly L4T) development kit.<ref>{{cite web|url=https://developer.nvidia.com/linux-tegra|title=Linux For Tegra Archive|date=30 January 2014|access-date=16 November 2017}}</ref> Nvidia and a partner, [[Avionic Design]], were working on submitting Grate (free and open-source drivers for Tegra) upstream of the mainline Linux kernel in April 2012.<ref>{{cite mailing list
|url=https://www.phoronix.com/scan.php?page=news_item&px=MTA4NjA
|title=A NVIDIA Tegra 2 DRM/KMS Driver Tips Up
|
|publisher=Phoronix Media |access-date=2012-08-21}}</ref>
The company's co-founder and CEO laid out the Tegra processor roadmap with Ubuntu Unity at the 2013 [[GPU Technology Conference]].<ref>{{cite web|url=https://www.youtube.com/watch?v=8kIQWWJs_po&t=9m35s
Nvidia's Unified Memory driver (nvidia-uvm.ko), which implements memory management for Pascal and Volta GPUs on Linux, is MIT licensed. The source code is available in the Nvidia Linux driver downloads on systems that support nvidia-uvm.ko.
In May 2022, Nvidia
=== Intel ===
{{See also|List of Intel graphics processing units|Intel GMA#Linux|Intel
[[Intel]] has a history of producing (or commissioning) open-source drivers for its graphics chips, with the exception of their [[Intel GMA#PowerVR GPU based|PowerVR-based]] chips.<ref name="ubuntugamer">[https://web.archive.org/web/20110113115606/http://www.ubuntugamer.com/2011/01/ubuntu-graphics-driver-overview/ An overview of graphic card manufacturers and how well they work with Ubuntu] Ubuntu Gamer, January 10, 2011 (Article by Luke Benstead); ([http://xtrabuntu.blogspot.com/2011/02/overview-of-graphic-card-manufacturers.html copy of the article])</ref> Their 2D X.Org driver is called xf86-video-intel. The kernel mode-setting driver in the Linux kernel does not use the [[
▲[[Intel]] has a history of producing (or commissioning) open-source drivers for its graphics chips, with the exception of their [[Intel GMA#PowerVR GPU based|PowerVR-based]] chips.<ref name="ubuntugamer">[https://web.archive.org/web/20110113115606/http://www.ubuntugamer.com/2011/01/ubuntu-graphics-driver-overview/ An overview of graphic card manufacturers and how well they work with Ubuntu] Ubuntu Gamer, January 10, 2011 (Article by Luke Benstead); ([http://xtrabuntu.blogspot.com/2011/02/overview-of-graphic-card-manufacturers.html copy of the article])</ref> Their 2D X.Org driver is called xf86-video-intel. The kernel mode-setting driver in the Linux kernel does not use the [[Video BIOS]] for switching [[display resolution|video modes]]; since some BIOSes have a limited range of modes, this provides more reliable access to those supported by Intel video adapters.
The company worked on optimizing their free [[Linux]] drivers for performance approaching their [[Microsoft Windows|Windows]] counterparts, especially on [[Sandy Bridge]] and newer hardware where performance optimizations have allowed the Intel driver to outperform their proprietary Windows drivers in certain tasks, in 2011.<ref>{{cite web
|url
|title
|publisher
|date
|access-date
}}</ref><ref>{{cite web
|url
|title
|publisher
|date
|access-date
}}</ref><ref>{{cite web
|url
|title
|publisher
|date
|access-date
}}</ref> Some of the performance enhancements may also benefit users of older hardware.<ref>{{cite web
|url
|title
|publisher
|date
|access-date
}}</ref>
Support for Intel's LLC (Last Level Cache, L4-Cache, [[Crystalwell]] and Iris Pro) was added in Linux kernel 3.12
=== Matrox ===
Line 186 ⟶ 159:
[[S3 Graphics]] develops the [[S3 Trio]], [[S3 ViRGE|ViRGE]], [[S3 Savage|Savage]] and [[S3 Chrome|Chrome]], supported by OpenChrome.<ref>{{cite web|url=https://www.freedesktop.org/wiki/Openchrome/|title=OpenChrome|access-date=16 November 2017}}</ref>
=== {{anchor|ARM|Arm}}Arm
[[Arm
Panfrost is a reverse-engineered driver effort for Mali Txxx (Midgard) and Gxx (Bifrost) GPUs. [https://xdc2018.x.org/slides/Panfrost-XDC_2018.pdf Introducing Panfrost] talk was presented at X.Org Developer's Conference 2018. As of May 2019, the Panfrost driver is part of the mainline Linux kernel.<ref>[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/gpu/drm/panfrost?id=f3ba91228e8e917e5bd6c4b72bfe846933d17370 drm/panfrost: Add initial panfrost driver]</ref>
ARM has indicated no intention of providing support for their graphics acceleration hardware licensed under a free and open-source license. However, ARM employees sent patches for the Linux kernel to support their ARM HDLCD [[display controller]] and Mali DP500, DP550 and DP650 SIP blocks in December 2015 and April 2016.<ref>{{cite web |url=https://lwn.net/Articles/667575/ |title=drm: Add support for the ARM HDLCD display controller
=== Imagination Technologies ===
[[Imagination Technologies]] is a fabless semiconductor company which develops and licenses [[semiconductor intellectual property core]]s, among which are the [[PowerVR]] GPUs. Intel has manufactured a number of [[Comparison of Intel graphics processing units#PowerVR based|PowerVR-based]] GPUs. PowerVR GPUs are widely used in mobile [[
=== Vivante ===
Line 206 ⟶ 179:
[[Qualcomm]] develops the [[Adreno]] (formerly ATI [[Imageon]]) mobile GPU series, and includes it as part of their [[Snapdragon (system on chip)|Snapdragon mobile SoC series]]. [[Phoronix]] and [[Slashdot]] reported in 2012 that Rob Clark, inspired by the Lima driver, was working on reverse-engineering drivers for the Adreno GPU series.<ref>{{cite web
|url=https://www.phoronix.com/scan.php?page=article&item=qualcomm_freedreno
|title=An Open-Source Graphics Driver
|
|date=14 April 2012
|publisher=Phoronix
Line 213 ⟶ 186:
|url=http://linux.slashdot.org/story/12/04/14/219230/open-source-qualcomm-gpu-driver-published
|title=Open-Source Qualcomm GPU Driver Published
|
|date=14 April 2012
|publisher=Slashdot
Line 219 ⟶ 192:
|url=http://bloggingthemonkey.blogspot.se/2012/04/fighting-back-against-binary-blobs.html
|title=Fighting back against binary blobs!
|
|date=14 April 2012
|publisher=Linaro
|access-date=15 April 2012}}</ref> The driver code was published on [[Gitorious]] "freedreno",<ref>[https://gitorious.org/freedreno/ Freedreno, 15 April 2012] {{webarchive|url=https://web.archive.org/web/20121024233408/https://gitorious.org/freedreno/ |date=24 October 2012
and has been moved to Mesa.<ref>{{cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=MTMyNTE|title=Mesa/Gallium3D Gets Its First ARM SoC GPU Driver - Phoronix}}</ref><ref>{{cite web |url=http://lists.freedesktop.org/archives/mesa-commit/2013-March/042190.html |title
|
|
|last1=Clark
|
|
demonstration versions were developed for [[texture mapping]]<ref>{{cite web
|
|
|last1=Clark
|
|
|
|
|last1=Clark
|
|
Clark demonstrated Freedreno running desktop compositing, the [[XBMC]] media player and [[Quake III Arena]] at [[FOSDEM]] on February 2, 2013.<ref>{{cite web |url=https://archive.fosdem.org/2013/schedule/event/operating_systems_open_arm_gpu/ |title=Open ARM GPU drivers – Freedreno |publisher=[[FOSDEM]] |date=2013-02-02 |access-date=2014-07-15}}</ref>
In August 2013, the kernel component of freedreno (MSM driver) was accepted into mainline and is available in Linux kernel 3.12 and later.<ref>{{cite web |
=== Broadcom ===
{{See also|VideoCore}}
[[File:Mesa_layers_of_crap_2016.svg|thumb|alt=Software diagram|The Mesa driver for VideoCore4, VC4, was written from scratch by Broadcom's Eric Anholt.<ref>{{cite web|url=http://anholt.livejournal.com/44239.html?nojs=1 |title=New Job at Broadcom |
[[Broadcom]] develops and designs the [[VideoCore]] GPU series as part of their [[System on a chip|SoCs]]. Since it is used by the [[Raspberry Pi]], there has been considerable interest in a FOSS driver for VideoCore.<ref>{{cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=MTA1MTc|title=Phoronix on the Raspberry Pi GPU}}</ref> The Raspberry Pi Foundation, in co-operation with Broadcom, announced on October 24, 2012, that they open-sourced "all the ARM (CPU) code that drives the GPU".{{citation needed|date=November 2017}} However, the announcement was misleading; according to the author of the reverse-engineered Lima driver, the newly open-sourced components only allowed message-passing between the ARM CPU and VideoCore but offered little insight into Videocore and little additional programability.<ref>{{cite web|url=https://www.raspberrypi.org/blog/open-source-arm-userspace/#comment-34981|title=Open Source ARM userland - Raspberry Pi|date=24 October 2012}}</ref> The Videocore GPU runs an [[Real-time operating system|RTOS]] which handles the processing; video acceleration is done with RTOS firmware coded for its proprietary GPU, and the firmware was not open-sourced on that date.<ref>{{cite web|url=http://www.raspberrypi.org/archives/2221|title=Open Source ARM userland - Raspberry Pi|date=24 October 2012|access-date=1 November 2012|archive-date=30 October 2012|archive-url=https://web.archive.org/web/20121030180058/http://www.raspberrypi.org/archives/2221|url-status=dead}}</ref> Since there was neither a [[toolchain]] targeting the proprietary GPU nor a documented [[instruction set]], no advantage could be taken if the firmware source code became available. The Videocoreiv project<ref>{{cite web|url=https://github.com/hermanhermitage/videocoreiv/wiki/VideoCore-IV---BCM2835-Overview|title=hermanhermitage/videocoreiv|website=[[GitHub]]}}</ref> attempted to document the VideoCore GPUs.
On February 28, 2014 (the Raspberry Pi's second anniversary), Broadcom and the Raspberry Pi Foundation announced the release of full documentation for the VideoCore IV graphics core and a complete source release of the graphics stack under a [[3-clause BSD license]].<ref name=2thbirthday>{{cite web|url=https://arstechnica.com/information-technology/2014/02/raspberry-pi-marks-2nd-birthday-with-plan-for-open-source-graphics-driver/|title=Raspberry Pi marks 2nd birthday with plan for open source graphics driver|date=28 February 2014}}</ref><ref name="openvideocore">{{cite web|url=https://www.raspberrypi.org/blog/a-birthday-present-from-broadcom/|title=A birthday present from Broadcom - Raspberry Pi|date=28 February 2014|publisher=Raspberry Pi Foundation|first=Eben|last=Upton|access-date=8 July 2019}}</ref> The free-license 3D graphics code was committed to Mesa on 29 August 2014,<ref>{{cite web |url=http://cgit.freedesktop.org/mesa/mesa/commit/?id=1850d0a1cbf044dc4d29b7a9ede2c634f667d853 |title=vc4: Initial skeleton driver import |publisher=The Mesa 3D Graphics Library |date=2014-08-09}}</ref> and first appeared on Mesa's 10.3 release.
=== Other vendors ===
Although [[Silicon Integrated Systems]] and [[VIA Technologies]] have expressed limited interest in open-source drivers, both have released source code which has been integrated into [[X.Org Server|X.Org]] by FOSS developers.<ref name=killing-kittens/> In July 2008, VIA opened documentation of their products to improve its image in the Linux and open-source communities.<ref>{{cite web |
[[DisplayLink]] announced an open-source project, Libdlo,<ref>{{cite web|url=https://libdlo.freedesktop.org/wiki/|title=Libdlo|access-date=16 November 2017}}</ref> with the goal of bringing support for their [[USB graphics]] technology to [[Linux]] and other platforms. Its code is available under the [[GNU Lesser General Public License|LGPL]] license,<ref>{{cite press release |title=DisplayLink Releases Linux Source Code for its USB Graphics Processors |url=http://www.displaylink.com/news/news150509.htm |publisher=DisplayLink |date=2009-05-15 |access-date=2009-05-15}}</ref> but it has not been integrated into an [[X.Org Server|X.Org]] driver. DisplayLink graphics support is available through the kernel udlfb driver (with fbdev) in mainline and udl/drm driver, which in March 2012 was only available in the drm-next tree.
Non-hardware-related vendors may also assist free graphics initiatives. [[Red Hat]] has two full-time employees (David Airlie and Jérôme Glisse) working on Radeon software,<ref>[https://www.phoronix.com/scan.php?page=news_item&px=ODg5Nw AMD's Hiring Another Open-Source Driver Developer] [[Phoronix]], December 11, 2010 (
== Open hardware projects ==
Line 268 ⟶ 241:
The Nyuzi,<ref>{{cite web|url=https://github.com/jbush001/NyuziProcessor/|title=Nyuzi is an experimental GPGPU processor|website=[[GitHub]]|date=June 2021}}</ref> an experimental GPGPU processor, includes a synthesizable hardware design written in [[System Verilog]], an instruction set emulator, an [[LLVM]]-based C-C++ compiler, software libraries and tests and explores parallel software and hardware. It can run on a Terasic DE2-115 [[field-programmable gate array]] board.<ref>{{cite web|url=https://github.com/jbush001/NyuziProcessor/wiki/SOC-Test-Environment|title=SOC Test Environment|website=[[GitHub]]}}</ref><ref>{{cite web|url=https://github.com/jbush001/NyuziProcessor/tree/master/hardware/fpga/de2-115|title=Running on Terasic DE2-115 FPGA board|website=[[GitHub]]}}</ref>
If a project uses FPGAs, it generally has a partially (or completely) closed-source toolchain. There are currently a couple of open-source toolchains available, however, for Lattice-based FPGAs (notably for iCE40 and ECP5 boards) which utilize Project IceStorm,<ref>{{cite web|url=http://www.clifford.at/icestorm/|title=Project IceStorm Homepage|date=21 January 2022
== See also ==
{{Portal|Free and open-source software}}
* [[3D computer graphics]]
* [[Cell (
* [[Direct Rendering Infrastructure]] (DRI)
* [[Intel GMA]]
Line 279 ⟶ 252:
== References ==
{{Reflist
== External links ==
{{Wikibooks|Open Source}}
* [http://www.intellinuxgraphics.com/ Linux graphics drivers from Intel]
* [http://howtouselinux.net/best-graphics-card-for-linux/ Best Graphics Card For Linux] {{Webarchive|url=https://web.archive.org/web/20170325043742/http://howtouselinux.net/best-graphics-card-for-linux/ |date=2017-03-25}}
* [http://www.nvidia.com/object/unix.html NVIDIA's Unix drivers portal page]
* [http://wacco.mveas.com/ Project VGA]
* [http://lists.freedesktop.org/archives/mesa-dev/2013-July/041900.html Direct3D 9 state tracker on Gallium3D]
* [http://cgit.freedesktop.org/mesa/mesa/commit/?id=92617aeac109481258f0c3863d09c1b8903d438b d3d1x: add new Direct3D 10/11 COM state tracker for Gallium]
* {{GitHub|freedreno}}
* [https://archive.fosdem.org/2013/schedule/event/freedreno/ Freedreno/Gallium update]
* [http://www.phoronix-test-suite.com/ Phoronix Test Suite]
Line 298 ⟶ 271:
{{DEFAULTSORT:Graphics Hardware And Foss}}
[[Category:Direct Rendering Infrastructure]]
[[Category:Free and open-source software]]
[[Category:Graphics hardware]]
[[Category:Linux drivers]]
|