HOME

TheInfoList



OR:

A free and open-source graphics device driver is a
software stack In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on ...
which controls computer-graphics hardware and supports graphics-rendering
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
s (APIs) and is released under a
free and open-source software Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
license. Graphics
device driver In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
s are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the
display driver In electronics/computer hardware, a display driver is usually a semiconductor integrated circuit (but may alternatively comprise a state machine made of discrete logic and other components) which provides an interface function between a micr ...
is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the
Mesa A mesa is an isolated, flat-topped elevation, ridge, or hill, bounded from all sides by steep escarpments and standing distinctly above a surrounding plain. Mesas consist of flat-lying soft sedimentary rocks, such as shales, capped by a ...
project. The driver is made up of a
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
, a rendering API, and software which manages access to the graphics hardware. Drivers without freely (and legally) -available source code are commonly known as ''binary drivers''. Binary drivers used in the context of operating systems that are prone to ongoing development and change (such as Linux) create problems for end users and package maintainers. These problems, which affect system stability, security and performance, are the main reason for the independent development of free and open-source drivers. When no technical documentation is available, an understanding of the underlying hardware is often gained by clean-room reverse engineering. Based on this understanding, device drivers may be written and legally published under any
software license A software license is a legal instrument governing the use or redistribution of software. Since the 1970s, software copyright has been recognized in the United States. Despite the copyright being recognized, most companies prefer to sell lic ...
. 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.


Problems with proprietary drivers


Software developer's view

There are objections to binary-only drivers based on copyright, security, reliability and development concerns. As part of a wider campaign against binary blobs,
OpenBSD OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
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 by the manufacturer, it is effectively "broken forever." The project has also stated that binary drivers "hide bugs and workarounds for bugs", an observation which has been somewhat vindicated by flaws found in binary drivers (including an exploitable bug in Nvidia's 3D drivers discovered in October 2006 by Rapid7). It is speculated that the bug has existed since 2004; Nvidia has denied this, asserting that the issue was only communicated to them in July 2006 and the 2004 bug was a bug in X.Org (not in Nvidia's driver). Binary drivers often do not work with current versions of open-source software, and rarely support development snapshots of open-source software; it is usually not directly possible for a developer to use Nvidia's or ATI's proprietary drivers with a development snapshot of an X server or a development snapshot of the Linux kernel. Features like kernel mode-setting cannot be added to binary drivers by anyone but the vendors, which prevents their inclusion if the vendor lacks capacity or interest. In the
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
development community,
Linus Torvalds Linus Benedict Torvalds ( , ; born 28 December 1969) is a Finnish software engineer who is the creator and lead developer of the Linux kernel. He also created the distributed version control system Git. He was honored, along with Shinya Yam ...
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". Another kernel developer,
Greg Kroah-Hartman Greg Kroah-Hartman is a major Linux kernel developer. , he is the Linux kernel maintainer for the branch, the staging subsystem, USB, driver core, debugfs, kref, kobject, and the sysfs kernel subsystems, Userspace I/O (with Hans J. Koch), ...
, has said that a binary-only kernel module does not comply with the kernel's license (the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
); it "just violates the GPL due to fun things like derivative works and linking and other stuff." Writer and computer scientist Peter Gutmann has expressed concern that the
digital rights management Digital rights management (DRM) is the management of legal access to digital content. Various tools or technological protection measures, such as access control technologies, can restrict the use of proprietary hardware and copyrighted works. DRM ...
scheme in Microsoft's
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
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." In the case of binary drivers, there are objections due to
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
philosophy, software quality and
security Security is protection from, or resilience against, potential harm (or other unwanted coercion). Beneficiaries (technically referents) of security may be persons and social groups, objects and institutions, ecosystems, or any other entity or ...
concerns. In 2006,
Greg Kroah-Hartman Greg Kroah-Hartman is a major Linux kernel developer. , he is the Linux kernel maintainer for the branch, the staging subsystem, USB, driver core, debugfs, kref, kobject, and the sysfs kernel subsystems, Userspace I/O (with Hans J. Koch), ...
concluded that:
"Closed source Linux kernel modules are illegal. That's it, it is very simple. I've had the misfortune of talking to a lot of different IP lawyers over the years about this topic, and every one that I've talked to all agree that there is no way that anyone can create a Linux kernel module, today, that can be closed source. It just violates the GPL due to fun things like
derivative works In copyright law, a derivative work is an expressive creation that includes major copyrightable elements of a first, previously created original work (the underlying work). The derivative work becomes a second, separate work independent from t ...
and linking."
The Linux kernel has never maintained a stable in-kernel
application binary interface An application binary interface (ABI) is an interface exposed by software that is defined for in-process machine code access. Often, the exposing software is a library, and the consumer is a program. An ABI is at a relatively low-level of a ...
. There are also concerns that proprietary drivers may contain backdoors, like the one found in
Samsung Galaxy Samsung Galaxy (; stylized as SΛMSUNG Galaxy since 2015 (except Japan where it omitted the Samsung branding up until 2023), previously stylized as Samsung GALAXY; abbreviated as SG) is a series of computing, Android mobile computing and wear ...
-series modem drivers.


Hardware developer's view

When applications such as a 3D
game engine A game engine is a software framework primarily designed for the development of video games which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
or a
3D computer graphics software 3D computer graphics, sometimes called CGI, 3D-CGI or three-dimensional computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the purposes of perfor ...
shunt calculations from the CPU to the GPU, they usually use a special-purpose API like
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
or
Direct3D Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware ...
and do not address the hardware directly. Because all
translation Translation is the communication of the semantics, meaning of a #Source and target languages, source-language text by means of an Dynamic and formal equivalence, equivalent #Source and target languages, target-language text. The English la ...
(from API calls to GPU
opcode In computing, an opcode (abbreviated from operation code) is an enumerated value that specifies the operation to be performed. Opcodes are employed in hardware devices such as arithmetic logic units (ALUs), central processing units (CPUs), and ...
s) is done by the device driver, it contains specialized knowledge and is an object of optimization. Due to the history of the rigidity of proprietary driver development there has been a recent surge in the number of community-backed device drivers for desktop and mobile GPUs. Free and Open Hardware organizations like FOSSi, LowRISC, and others, would also benefit from the development of an open graphical hardware standard. This would then provide computer manufacturers, hobbyists, and the like with a complete, royalty-free platform with which to develop computing hardware and related devices. The
desktop computer A desktop computer, often abbreviated as desktop, is a personal computer designed for regular use at a stationary location on or near a desk (as opposed to a portable computer) due to its size and power requirements. The most common configuratio ...
market was long dominated by PC hardware using the
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
/
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
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 An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficienc ...
display driver, 2D and 3D acceleration and video decoding and encoding) are separate semiconductor intellectual property (SIP) blocks on the chip, since hardware devices vary substantially; some
portable media player A portable media player (PMP) or digital audio player (DAP) is a portable consumer electronics device capable of storing and playing digital media such as audio, images, and video files. Normally they refer to small, Electric battery, batter ...
s require a display driver that accelerates video decoding, but does not require 3D acceleration. The development goal is not only raw 3D performance, but system integration, power consumption and 2D capabilities. There is also an approach which abandons the traditional method ( Vsync) of updating the display and makes better use of
sample and hold In electronics, a sample and hold (also known as sample and follow) circuit is an analog device that samples (captures, takes) the voltage of a continuously varying analog signal and holds (locks, freezes) its value at a constant level for a ...
technology to lower power consumption. During the second quarter of 2013 79.3% of
smartphone A smartphone is a mobile phone with advanced computing capabilities. It typically has a touchscreen interface, allowing users to access a wide range of applications and services, such as web browsing, email, and social media, as well as multi ...
s sold worldwide were running a version of Android, and the Linux kernel dominates smartphones. Hardware developers have an incentive to deliver Linux drivers for their hardware but, due to competition, no incentive to make these drivers free and open-source. Additional problems are the Android-specific augmentations to the Linux kernel which have not been accepted in mainline, such as the Atomic Display Framework (ADF). ADF is a feature of 3.10 AOSP kernels which provides a dma-buf-centric framework between Android's hwcomposer HAL and the kernel driver. ADF significantly overlaps with the DRM- KMS framework. ADF has not been accepted into mainline, but a different set of solutions addressing the same problems (known as atomic mode setting) is under development. Projects such as libhybris harness Android device drivers to run on Linux platforms other than Android.


Software architecture

Free and open-source drivers are primarily developed on and for
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
by Linux kernel developers, third-party programming enthusiasts and employees of companies such as
Advanced Micro Devices Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a Information technology, hardware and F ...
. Each driver has five parts: # A Linux kernel component DRM # A Linux kernel component KMS driver (the
display controller A video display controller (VDC), also called a display engine or display interface, is an integrated circuit which is the main component in a video-signal generator, a device responsible for the production of a TV video signal in a computing ...
driver) # A libDRM user-space component (a wrapper library for DRM system calls, which should only be used by Mesa 3D) # A
Mesa 3D Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open-source software, open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware ...
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 is possible. Mesa 3D is the only free and open-source implementation of
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
,
OpenGL ES OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerate ...
,
OpenVG OpenVG is an API designed for hardware-accelerated 2D vector graphics. Its primary platforms are mobile phones, gaming & media consoles and consumer electronic devices. It was designed to help manufacturers create more attractive user interfac ...
, GLX, EGL and
OpenCL OpenCL (Open Computing Language) is a software framework, framework for writing programs that execute across heterogeneous computing, heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), di ...
. In July 2014, most of the components conformed to Gallium3D specifications. A fully functional State Tracker for
Direct3D Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware ...
version 9 is written in C, and an unmaintained tracker for Direct3D versions 10 and 11 is written in C++.
Wine Wine is an alcoholic drink made from Fermentation in winemaking, fermented fruit. Yeast in winemaking, Yeast consumes the sugar in the fruit and converts it to ethanol and carbon dioxide, releasing heat in the process. Wine is most often made f ...
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 The DRM is kernel-specific. A
VESA VESA (), formally known as Video Electronics Standards Association, is an American standards organization, technical standards organization for computer display standards. The organization was incorporated in California in July 1989To retrieve ...
driver is generally available for any operating system. The VESA driver supports most graphics cards without acceleration and at display resolutions limited to a set programmed in the Video BIOS by the manufacturer.


History

The Linux graphics stack has evolved, detoured by the X Window System core protocol. File:Linux graphics drivers 2D.svg, alt=Diagram of the earliest Linux kernal graphics stack, 2D drivers in the
X server X server may refer to: * a display server for the X Window System * X.Org Server, the X.Org Foundation's display server for the X Window System * HPE Integrity Superdome X Server, a line of HPE Integrity Servers HPE Integrity Servers is a ser ...
File:Linux graphics drivers Utah GLX.svg, alt=Another earliest-version diagram, Indirect rendering over GLX using Utah GLX File:Linux graphics drivers DRI early.svg, alt=Diagram of the Direct Rendering Infrastructure and the Direct Rendering Manager,
Direct Rendering Infrastructure The Direct Rendering Infrastructure (DRI) is the framework comprising the modern Linux graphics stack which allows unprivileged user-space programs to issue commands to graphics hardware without conflicting with other programs. The main use ...
and
framebuffer A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
File:Linux graphics drivers DRI current.svg, alt=Diagram of the 2013 Direct Rendering Infrastructure, with GPU access through the Direct Rendering Manager, All access goes through the
Direct Rendering Manager The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with Graphics processing unit, GPUs of modern video cards. DRM exposes an Application programming interface, API that user-space programs can use t ...
File:Linux graphics drivers DRI Wayland.svg, alt=Linux kernel diagram, with Wayland using EGL, In Linux kernel 3.12, render nodes are merged and mode setting split off. Wayland implements direct rendering over EGL.


Free and open-source drivers


ATI and AMD


Radeon

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. The FOSS drivers for ATI-AMD GPUs are being developed under the name Radeon (xf86-video-ati or xserver-xorg-video-radeon). They still must load proprietary microcode into the GPU to enable hardware acceleration. Radeon 3D code is split into six drivers, according to GPU technology: the radeon, r200 and r300 classic drivers and r300g, r600g and radeonsi Gallium3D drivers: *Radeon supports the R100 series. *R200 supports the R200 series. *R300g supports pre-
unified shader model In the field of 3D computer graphics, the unified shader model (known in Direct3D 10 as " Shader Model 4.0") refers to a form of shader hardware in a graphical processing unit (GPU) where all of the shader stages in the rendering pipeline A ...
microarchitectures: R300, R400 and R500. *R600g supports all TeraScale (VLIW5/4)-based GPUs: R600, R700, HD 5000 (Evergreen) and HD 6000 (Northern Islands). *Radeonsi supports all Graphics Core Next-based GPUs: HD 7000, HD 8000 and Rx 200 (Southern Islands, Sea Islands and Volcanic Islands). An up-to-date feature matrix is available, and there is support for Video Coding Engine and Unified Video Decoder. 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 A non-disclosure agreement (NDA), also known as a confidentiality agreement (CA), confidential disclosure agreement (CDA), proprietary information agreement (PIA), or secrecy agreement (SA), is a legal contract or part of a contract between at le ...
(NDA). Documentation began to be gradually released in 2007. In addition to providing the necessary documentation, AMD employees contribute code to support their hardware and features. All components of the Radeon graphics device driver are developed by core contributors and interested parties worldwide. In 2011, the r300g outperformed Catalyst in some cases.


AMDGPU

At the 2014
Game Developers Conference The Game Developers Conference (GDC) is an annual conference for video game developers. The event includes an expo, networking events, and awards shows like the Game Developers Choice Award for Game of the Year, Game Developers Choice Awards and ...
, AMD announced that they were exploring a strategy change to re-base the user-space part of Catalyst on a free and open-source DRM kernel module instead of their proprietary kernel blob. The release of the new AMDGPU kernel module and stack was announced on the dri-devel mailing list in April 2015. Although AMDGPU only officially supports ''GCN'' 1.2 and later graphics cards, 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. A separate libdrm, libdrm-amdgpu, has been included since libdrm 2.4.63. The radeonsi 3D code mentioned in the previous Radeon paragraph is also used with amdgpu; the 3D driver has back ends for both radeon and amdgpu.


Nvidia

Nvidia Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
's proprietary driver, Nvidia GeForce driver for GeForce, is available for
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
/
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
x86/x86-64/ ARM, OS X 10.5 and later, Solaris x86/x86-64 and
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
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
beta Beta (, ; uppercase , lowercase , or cursive ; or ) is the second letter of the Greek alphabet. In the system of Greek numerals, it has a value of 2. In Ancient Greek, beta represented the voiced bilabial plosive . In Modern Greek, it represe ...
Nvidia GeForce driver 331.13 supports the EGL interface, enabling support for Wayland in conjunction with this driver. Nvidia's free and open-source driver is named nv. It is limited (supporting only 2D acceleration), and Matthew Garrett, Dirk Hohndel and others have called its source code confusing. Nvidia decided to deprecate nv, not adding support for Fermi or later GPUs and
DisplayPort DisplayPort (DP) is a digital interface used to connect a video source, such as a Personal computer, computer, to a display device like a Computer monitor, monitor. Developed by the Video Electronics Standards Association (VESA), it can also car ...
, in March 2010. In December 2009, Nvidia announced they would not support free graphics initiatives. On 23 September 2013, the company announced that they would release some documentation of their GPUs. Nouveau is based almost entirely on information gained through
reverse engineering Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompl ...
. This project aims to produce 3D acceleration for X.Org/ Wayland using Gallium3D. On March 26, 2012, Nouveau's DRM component was marked stable and promoted from the staging area of the Linux kernel. Nouveau supports Tesla- (and earlier), Fermi-,
Kepler Johannes Kepler (27 December 1571 – 15 November 1630) was a German astronomer, mathematician, astrologer, natural philosopher and writer on music. He is a key figure in the 17th-century Scientific Revolution, best known for his laws of p ...
- and
Maxwell Maxwell may refer to: People * Maxwell (surname), including a list of people and fictional characters with the name ** James Clerk Maxwell, mathematician and physicist * Justice Maxwell (disambiguation) * Maxwell baronets, in the Baronetage of N ...
-based GPUs. On 31 January 2014, Nvidia employee Alexandre Courbot committed an extensive patch set which adds initial support for the GK20A ( Tegra K1) to Nouveau. In June 2014, Codethink reportedly ran a Wayland-based
Weston Weston may refer to: Places Australia * Weston, Australian Capital Territory, a suburb of Canberra * Weston, New South Wales * Weston Creek, a residential district of Canberra * Weston Park, Canberra, a park Canada * Weston, Nova Scotia * W ...
compositor with
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
3.15, using EGL and a "100% open-source graphics driver stack" on a Tegra K1. A feature matrix is available. In July 2014, Nouveau was unable to outperform the Nvidia GeForce driver due to missing re-clocking support. Tegra-re is a project which is working to reverse-engineer nVidia's
VLIW Very long instruction word (VLIW) refers to instruction set architectures that are designed to exploit instruction-level parallelism (ILP). A VLIW processor allows programs to explicitly specify instructions to execute in parallel computing, para ...
-based Tegra series of GPUs that predate Tegra K1. Nvidia distributes proprietary device drivers for Tegra through OEMs and as part of its Linux for Tegra (formerly L4T) development kit. 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. The company's co-founder and CEO laid out the Tegra processor roadmap with Ubuntu Unity at the 2013 GPU Technology Conference. 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 announced a new initiative and policy to open source its GPU
Loadable Kernel Module A loadable kernel module (LKM) is an executable library that extends the capabilities of a running kernel, or so-called ''base kernel'', of an operating system. LKMs are typically used to add support for new hardware (as device drivers) and/or ...
s with dual GPL/
MIT license The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility. Unl ...
, but only new models at
alpha Alpha (uppercase , lowercase ) is the first letter of the Greek alphabet. In the system of Greek numerals, it has a value of one. Alpha is derived from the Phoenician letter ''aleph'' , whose name comes from the West Semitic word for ' ...
quality. But said "These changes are for the kernel modules, while the user-mode components are untouched. The user-mode remains closed source and is published with prebuilt binaries in the driver and the CUDA toolkit." The open source driver has since been upgraded to production status and is now officially recommended for the RTX 20 series and later GPUs. Blackwell ( RTX 50 generation) and later NVIDIA GPU architectures are only supported by the open driver.


Intel

Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
has a history of producing (or commissioning) open-source drivers for its graphics chips, with the exception of their PowerVR-based chips.An overview of graphic card manufacturers and how well they work with Ubuntu
Ubuntu Gamer, January 10, 2011 (Article by Luke Benstead);

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 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 Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
drivers for performance approaching their
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
counterparts, especially on
Sandy Bridge Sandy Bridge is the List of Intel codenames, codename for Intel's 32 nm process, 32 nm microarchitecture used in the second generation of the Intel Core, Intel Core processors (Intel Core i7, Core i7, Intel Core i5, i5, Intel Core i3, i3). The Sa ...
and newer hardware where performance optimizations have allowed the Intel driver to outperform their proprietary Windows drivers in certain tasks, in 2011. Some of the performance enhancements may also benefit users of older hardware. Support for Intel's LLC (Last Level Cache, L4-Cache, Crystalwell and Iris Pro) was added in Linux kernel 3.12. In 2013, the company had 20 to 30 full-time Linux graphics developers.


Matrox

Matrox Matrox Graphics, Inc. is a producer of graphics card, video card components and equipment for personal computers and workstations. Based in Dorval, Quebec, Canada, it was founded in 1976 by Lorne Trottier and Branko Matić. The name is derived ...
develops and manufactures the Matrox Mystique, Parhelia, G200, G400 and G550. Although the company provides free and open-source drivers for their chipsets which are older than the G550; chipsets newer than the G550 are supported by a closed-source driver.


S3 Graphics

S3 Graphics S3 Graphics, Ltd. was an American computer graphics company. The company sold the S3 Trio, Trio, S3 ViRGE, ViRGE, S3 Savage, Savage, and S3 Chrome, Chrome series of graphics processors. Struggling against competition from 3dfx Interactive, ATI T ...
develops the S3 Trio, ViRGE, Savage and Chrome, supported by OpenChrome.


Arm Ltd

Arm Ltd is a
fab Fab or FAB may refer to: Commerce * Fab (brand), a frozen confectionery * Fab (website), an e-commerce design web site * Fab, a digital asset marketplace by Epic Games * The FAB Awards, a food and beverage award * FAB Link, a European electricity ...
less semiconductor company which licenses
semiconductor intellectual property core A semiconductor is a material with electrical conductivity between that of a conductor and an insulator. Its conductivity can be modified by adding impurities (" doping") to its crystal structure. When two regions with different doping level ...
s. Although they are known for the licensing the ARM instruction set and
CPUs A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary Processor (computing), processor in a given computer. Its electronic circuitry executes Instruction (computing), instructions ...
based on it, they also develop and license the Mali series of GPUs, and more recently Imortalis GPUs that support ray-tracing. On January 21, 2012,
Phoronix Phoronix Test Suite (PTS) is a free and open-source benchmark software for Linux and other operating systems. The Phoronix Test Suite, developed by Michael Larabel and Matthew Tippett, has been endorsed by sites such as Linux.com, LinuxPlanet ...
reported that Luc Verhaegen was driving a reverse-engineering attempt aimed at the Arm Mali series of GPUs (specifically, the Mali-200 and Mali-400 versions). The reverse-engineering project, known as Lima, was presented at
FOSDEM Free and Open source Software Developers' European Meeting (FOSDEM) is an annual software engineering conference. It is non-commercial and volunteer-organized with a focus on free and open-source software. Initiated in 2000, it is usually held d ...
on February 4, 2012. On February 2, 2013, Verhaegen demonstrated Quake III Arena in timedemo mode, running on top of the Lima driver. In May 2018, a Lima developer posted the driver for inclusion in the Linux kernel. As of May 2019, the Lima driver is part of the mainline Linux kernel. Panfrost is a reverse-engineered driver effort for Mali Txxx (Midgard) and Gxx (Bifrost) GPUs
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. 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 A video display controller (VDC), also called a display engine or display interface, is an integrated circuit which is the main component in a video-signal generator, a device responsible for the production of a TV video signal in a computing ...
and Mali DP500, DP550 and DP650 SIP blocks in December 2015 and April 2016.


Imagination Technologies

Imagination Technologies Imagination Technologies Group Limited is a British semiconductor and Computer software, software design company owned by Canyon Bridge Capital Partners, a private equity fund based in Beijing that is ultimately owned by the Chinese government. ...
is a fabless semiconductor company which develops and licenses
semiconductor intellectual property core A semiconductor is a material with electrical conductivity between that of a conductor and an insulator. Its conductivity can be modified by adding impurities (" doping") to its crystal structure. When two regions with different doping level ...
s, among which are the
PowerVR PowerVR is a division of Imagination Technologies (formerly VideoLogic) that develops hardware and software for 2D and 3D rendering, and for video encoding, video decoding, decoding, associated image processing and DirectX, OpenGL ES, OpenVG, and ...
GPUs. Intel has manufactured a number of PowerVR-based GPUs. PowerVR GPUs are widely used in mobile
SoCs SOCS (suppressor of cytokine signaling proteins) refers to a family of genes involved in inhibiting the JAK-STAT signaling pathway. Genes * CISH (gene), CISH * SOCS1 * SOCS2 * SOCS3 * SOCS4 * SOCS5 * SOCS6 * SOCS7 Structure All SOCS have certai ...
. Due to its wide use in embedded devices, the
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
has put reverse-engineering of the PowerVR driver on its high-priority project list. As of March 2022, Imagination ha
provided a FOSS driver
for it
Rogue architecture-based PowerVR GX6250 from 2014
and its more recent A-Series architecture-based AXE-1-16M an
BXS-4-64 GPUs


Vivante

Vivante Corporation is a fabless semiconductor company which licenses
semiconductor intellectual property core A semiconductor is a material with electrical conductivity between that of a conductor and an insulator. Its conductivity can be modified by adding impurities (" doping") to its crystal structure. When two regions with different doping level ...
s and develops the GCxxxx series of GPUs. A Vivante proprietary, closed-source Linux driver consists of kernel- and user-space parts. Although the kernel component is open-source ( GPL), the user-space components—consisting of the GLES(2) implementations and a HAL library—are not; these contain the bulk of the driver logic. Wladimir J. van der Laan found and documented the state bits, command stream and
shader In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as '' shading''. Shaders have evolved to perform a variety of s ...
ISA by studying how the blobs work, examining and manipulating command-stream dumps. The Etnaviv Gallium3D driver is being written based on this documentation. Van der Laan's work was inspired by the Lima driver, and the project has produced a functional-but-unoptimized Gallium3D LLVM driver. The Etnaviv driver has performed better than Vivante's proprietary code in some benchmarks, and it supports Vivante's GC400, GC800, GC1000, GC2000, GC3000 and GC7000 series. In January 2017, Etnaviv was added to
Mesa A mesa is an isolated, flat-topped elevation, ridge, or hill, bounded from all sides by steep escarpments and standing distinctly above a surrounding plain. Mesas consist of flat-lying soft sedimentary rocks, such as shales, capped by a ...
with both OpenGL ES 2.0 and Desktop OpenGL 2.1 support.


Qualcomm

Qualcomm Qualcomm Incorporated () is an American multinational corporation headquartered in San Diego, California, and Delaware General Corporation Law, incorporated in Delaware. It creates semiconductors, software and services related to wireless techn ...
develops the
Adreno Adreno is a series of graphics processing unit (GPU) semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs. History Adreno is an integrated graphics processing unit (GPU) within Qualcomm's Snapdrago ...
(formerly ATI Imageon) mobile GPU series, and includes it as part of their Snapdragon mobile SoC series.
Phoronix Phoronix Test Suite (PTS) is a free and open-source benchmark software for Linux and other operating systems. The Phoronix Test Suite, developed by Michael Larabel and Matthew Tippett, has been endorsed by sites such as Linux.com, LinuxPlanet ...
and
Slashdot ''Slashdot'' (sometimes abbreviated as ''/.'') is a social news website that originally billed itself as "News for Nerds. Stuff that Matters". It features news stories on science, technology, and politics that are submitted and evaluated by site ...
reported in 2012 that Rob Clark, inspired by the Lima driver, was working on reverse-engineering drivers for the Adreno GPU series. In a referenced blog post, Clark wrote that he was doing the project in his spare time and that the Qualcomm platform was his only viable target for working on open 3D graphics. His employers (
Texas Instruments Texas Instruments Incorporated (TI) is an American multinational semiconductor company headquartered in Dallas, Texas. It is one of the top 10 semiconductor companies worldwide based on sales volume. The company's focus is on developing analog ...
and Linaro) were affiliated with the
Imagination Imagination is the production of sensations, feelings and thoughts informing oneself. These experiences can be re-creations of past experiences, such as vivid memories with imagined changes, or completely invented and possibly fantastic scenes ...
PowerVR PowerVR is a division of Imagination Technologies (formerly VideoLogic) that develops hardware and software for 2D and 3D rendering, and for video encoding, video decoding, decoding, associated image processing and DirectX, OpenGL ES, OpenVG, and ...
and ARM Mali cores, which would have been his primary targets; he had working command streams for 2D support, and 3D commands seemed to have the same characteristics. The driver code was published on Gitorious "freedreno", and has been moved to Mesa. In 2012, a working shader assembler was completed; demonstration versions were developed for
texture mapping Texture mapping is a term used in computer graphics to describe how 2D images are projected onto 3D models. The most common variant is the UV unwrap, which can be described as an inverse paper cutout, where the surfaces of a 3D model are cut ap ...
and
phong shading In 3D computer graphics, Phong shading, Phong interpolation, or normal-vector interpolation shading is an interpolation technique for surface shading invented by computer graphics pioneer Bui Tuong Phong. Phong shading interpolates surface no ...
, using the reverse-engineered shader compiler. Clark demonstrated Freedreno running desktop compositing, the XBMC media player and Quake III Arena at
FOSDEM Free and Open source Software Developers' European Meeting (FOSDEM) is an annual software engineering conference. It is non-commercial and volunteer-organized with a focus on free and open-source software. Initiated in 2000, it is usually held d ...
on February 2, 2013. In August 2013, the kernel component of freedreno (MSM driver) was accepted into mainline and is available in Linux kernel 3.12 and later. The DDX driver gained support for server-managed
file descriptor In Unix and Unix-like computer operating systems, a file descriptor (FD, less frequently fildes) is a process-unique identifier (handle) for a file or other input/output resource, such as a pipe or network socket. File descriptors typically h ...
s requiring X.Org Server version 1.16 and above in July 2014. In January 2016, the Mesa Gallium3D-style driver gained support for Adreno 430; in November of that year, the driver added support for the Adreno 500 series. Freedreno can be used on devices such as 96Boards Dragonboard 410c and Nexus 7 (2013) in traditional Linux distributions (like
Debian Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
and Fedora) and on Android.


Broadcom

Broadcom Broadcom Inc. is an American multinational corporation, multinational designer, developer, manufacturer, and global supplier of a wide range of semiconductor and infrastructure software products. Broadcom's product offerings serve the data cen ...
develops and designs the VideoCore GPU series as part of their
SoCs SOCS (suppressor of cytokine signaling proteins) refers to a family of genes involved in inhibiting the JAK-STAT signaling pathway. Genes * CISH (gene), CISH * SOCS1 * SOCS2 * SOCS3 * SOCS4 * SOCS5 * SOCS6 * SOCS7 Structure All SOCS have certai ...
. Since it is used by the
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
, there has been considerable interest in a FOSS driver for VideoCore. 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". 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. The Videocore GPU runs an
RTOS A real-time operating system (RTOS) is an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints. A RTOS is distinct from a time-sharing operating system, such as Unix ...
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. Since there was neither a
toolchain A toolchain is a set of software development tools used to build and otherwise develop software. Often, the tools are executed sequentially and form a pipeline such that the output of one tool is the input for the next. Sometimes the term is us ...
targeting the proprietary GPU nor a documented
instruction set In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, s ...
, no advantage could be taken if the firmware source code became available. The Videocoreiv project 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. The free-license 3D graphics code was committed to Mesa on 29 August 2014, 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 by FOSS developers. In July 2008, VIA opened documentation of their products to improve its image in the Linux and open-source communities. The company has failed to work with the open-source community to provide documentation and a working DRM driver, leaving expectations of Linux support unfulfilled. On January 6, 2011, it was announced that VIA was no longer interested in supporting free graphics initiatives. DisplayLink announced an open-source project, Libdlo, with the goal of bringing support for their USB graphics technology to
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and other platforms. Its code is available under the
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
license, but it has not been integrated into an 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 Red Hat, Inc. (formerly Red Hat Software, Inc.) is an American software company that provides open source software products to enterprises and is a subsidiary of IBM. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North ...
has two full-time employees (David Airlie and Jérôme Glisse) working on Radeon software, and the Fedora Project sponsors a Fedora Graphics Test Week event before the launch of their new
Linux distribution A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
versions to test free graphics drivers. Other companies which have provided development or support include
Novell Novell, Inc. () was an American software and services company headquartered in Provo, Utah, that existed from 1980 until 2014. Its most significant product was the multi-platform network operating system known as NetWare. Novell technolog ...
and VMware.


Open hardware projects

Project VGA aims to create a low-budget, open-source VGA-compatible video card. 090503 wacco.mveas.com The Open Graphics Project aims to create an open-hardware GPU. The Open Graphics Device v1 has dual DVI-I outputs and a 100-pin IDC connector. In September 2010, the first 25 OGD1 boards were made available for grant application and purchase. The
Milkymist M-Labs (formerly known as the Milkymist Project) is a company that develops, manufactures, and sells open hardware devices and software. It is known for the Milkymist system-on-chip, System-On-Chip (SoC) which is a commercialized system-on-chip w ...
system on a chip A system on a chip (SoC) is an integrated circuit that combines most or all key components of a computer or Electronics, electronic system onto a single microchip. Typically, an SoC includes a central processing unit (CPU) with computer memory, ...
, targeted at embedded graphics instead of desktop computers, supports a VGA output, a limited vertex shader and a 2D texturing unit. The Nyuzi, an experimental GPGPU processor, includes a synthesizable hardware design written in
System Verilog SystemVerilog, technical standard, standardized as IEEE 1800 by the Institute of Electrical and Electronics Engineers (IEEE), is a Hardware description language, hardware description and hardware verification language commonly used to model, Har ...
, an instruction set emulator, an
LLVM LLVM, also called LLVM Core, is a target-independent optimizer and code generator. It can be used to develop a Compiler#Front end, frontend for any programming language and a Compiler#Back end, backend for any instruction set architecture. LLVM i ...
-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. 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, and Trellis, respectively. There is also a larger, ongoing effort to create the "GCC of FPGAs" called SymbiFlow which includes the aforementioned FPGA toolchains as well as an early-stage open-source toolchain for Xilinx-based FPGAs.


See also

*
3D computer graphics 3D computer graphics, sometimes called Computer-generated imagery, CGI, 3D-CGI or three-dimensional Computer-generated imagery, computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian coor ...
*
Cell (processor) The Cell Broadband Engine (Cell/B.E.) is a 64-bit multi-core processor and microarchitecture developed by Sony, Toshiba, and IBM—an alliance known as "STI". It combines a general-purpose PowerPC core, called the Power Processing Element (PPE), ...
*
Direct Rendering Infrastructure The Direct Rendering Infrastructure (DRI) is the framework comprising the modern Linux graphics stack which allows unprivileged user-space programs to issue commands to graphics hardware without conflicting with other programs. The main use ...
(DRI) *
Intel GMA The Intel Graphics Media Accelerator (GMA) is a series of integrated graphics processors introduced in 2004 by Intel, replacing the earlier Intel Extreme Graphics series and being succeeded by the Intel HD and Iris Graphics series. This serie ...
* Open Graphics Project


References


External links


Linux graphics drivers from Intel

Best Graphics Card For Linux



Project VGA



d3d1x: add new Direct3D 10/11 COM state tracker for Gallium

Freedreno homepage

Freedreno/Gallium update

Phoronix Test SuiteStatus updates for three graphics drivers
(Nouveau, amdgpu and Etnaviv) LWN.net 2015 {{DEFAULTSORT:Graphics Hardware And Foss Direct Rendering Infrastructure Free and open-source software Graphics hardware Linux drivers