Gallium3D
Encyclopedia
Gallium3D is a free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 library for 3D graphics
3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...

 device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

s being developed by VMware
VMware
VMware, Inc. is a company providing virtualization software founded in 1998 and based in Palo Alto, California, USA. The company was acquired by EMC Corporation in 2004, and operates as a separate software subsidiary ....

, after they acquired Tungsten Graphics – the original authors.

The Gallium3D library operates as a layer between the graphics API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 and the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 with the primary goal of making driver development easier, bundling otherwise duplicated code of several different drivers at a single point, and to support modern hardware architectures. This is done by providing a better division of labor, for example, leaving memory management to the kernel DRI
Direct Rendering Infrastructure
In computing, the Direct Rendering Infrastructure is an interface and a free software implementation used in the X Window System to securely allow user applications to access the video hardware without requiring data to be passed through the X server. Its primary application is to provide...

 driver.

Gallium3D has been a part of Mesa since 2009 and is currently used by the free and open source graphics driver for Nvidia
NVIDIA
Nvidia is an American global technology company based in Santa Clara, California. Nvidia is best known for its graphics processors . Nvidia and chief rival AMD Graphics Techonologies have dominated the high performance GPU market, pushing other manufacturers to smaller, niche roles...

 (nouveau
Nouveau (graphics)
In computing, nouveau is a software project aiming to develop free software drivers for Nvidia graphics cards, by reverse engineering Nvidia's current proprietary drivers for Linux. This project by X.Org Foundation and freedesktop.org was initially based on the obfuscated 2D-only free and...

 project), ATI Radeon R300-R900
Radeon
Radeon is a brand of graphics processing units and random access memory produced by Advanced Micro Devices , first launched in 2000 by ATI Technologies, which was acquired by AMD in 2006. Radeon is the successor to the Rage line. There are four different groups, which can be differentiated by...

 and partially for Intel IGP driver too.

Differences from Mesa 3D

Gallium3D provides a unified API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 exposing standard hardware functions, such as shader
Shader
In the field of computer graphics, a shader is a computer program that is used primarily to calculate rendering effects on graphics hardware with a high degree of flexibility...

 units found on modern hardware. Thus, 3D APIs such as OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 1.x/2.x, OpenGL 3.x, OpenVG
OpenVG
OpenVG is a standard API designed for hardware-accelerated 2D vector graphics. It is aimed primarily at mobile phones, media and gaming consoles such as the PlayStation 3, and other consumer electronic devices. It will help manufacturers create flashier user interfaces that are less dependent on...

, GPGPU
GPGPU
General-purpose computing on graphics processing units is the technique of using a GPU, which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the CPU...

 infrastructure or even Direct3D
Direct3D
Direct3D is part of Microsoft's DirectX application programming interface . Direct3D is available for Microsoft Windows operating systems , and for other platforms through the open source software Wine. It is the base for the graphics API on the Xbox and Xbox 360 console systems...

 (as found in the Wine
Wine (software)
Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...

 compatibility layer) will need only a single front-end, called a state tracker, targeting the Gallium3D API. By contrast, Mesa 3D
Mesa 3D
Mesa 3D is an open source 3D computer graphics library that provides a generic OpenGL implementation for rendering three-dimensional graphics on multiple platforms. It was initially developed by Brian Paul in August 1993, and is still maintained by him today...

 requires a different back-end for each hardware platform and several other APIs need translation to OpenGL at the expense of added overhead.

Under Gallium3D, Direct Rendering Manager
Direct Rendering Manager
The Direct Rendering Manager is a component of the Direct Rendering Infrastructure, a system to provide efficient video acceleration on Unix-like operating systems, e.g...

 (DRM) kernel drivers will manage the memory and Direct Rendering Interface
Direct Rendering Infrastructure
In computing, the Direct Rendering Infrastructure is an interface and a free software implementation used in the X Window System to securely allow user applications to access the video hardware without requiring data to be passed through the X server. Its primary application is to provide...

 (DRI2) drivers will be more GPU processing oriented. This will resolve memory management problems whose solutions are considered unfeasible under Mesa 3D.

LLVM usage

In addition, using the modular structure of Gallium3D, there are works underway to leverage the LLVM
Low Level Virtual Machine
The Low Level Virtual Machine is a compiler infrastructure written in C++ that is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs written in arbitrary programming languages...

 compiler suite and create a module to optimize shader
Shader
In the field of computer graphics, a shader is a computer program that is used primarily to calculate rendering effects on graphics hardware with a high degree of flexibility...

 code on the fly.

The library represents each shader program using an extensible binary intermediate representation called Tungsten Graphics Shader Infrastructure (TGSI). When Gallium targets LLVM, the TGSI code is converted to the LLVM instruction set.

Current status

The first implemented and already partially working drivers are Cell
Cell (microprocessor)
Cell is a microprocessor architecture jointly developed by Sony, Sony Computer Entertainment, Toshiba, and IBM, an alliance known as "STI". The architectural design and first implementation were carried out at the STI Design Center in Austin, Texas over a four-year period beginning March 2001 on a...

 SPU and Intel GPU
Intel GMA
The Intel Graphics Media Accelerator, or GMA, is a series of Intel integrated graphics processors built into various motherboard chipsets....

 drivers. The r300g driver for ati r300-r500 cards is considered stable at this time. Work is currently in progress for ATI Radeon r600-r700, Evergreen and Northern Islands cards to provide gallium support. and the Nouveau
Nouveau (graphics)
In computing, nouveau is a software project aiming to develop free software drivers for Nvidia graphics cards, by reverse engineering Nvidia's current proprietary drivers for Linux. This project by X.Org Foundation and freedesktop.org was initially based on the obfuscated 2D-only free and...

 team is moving development to Gallium3D, including a solution for older fixed function NVIDIA cards which lack programmable shaders.

Gallium3D is designed to be platform-independent. As of February 2009, Gallium3D can run on Linux as well as FreeBSD kernels.

On 11 February 2009, the gallium-0.2 branch was merged into mainline Master branch of Mesa. Development is done in Mesa mainline.

On 1 May 2009, Zack Rusin from Tungsten Graphics added the OpenVG
OpenVG
OpenVG is a standard API designed for hardware-accelerated 2D vector graphics. It is aimed primarily at mobile phones, media and gaming consoles such as the PlayStation 3, and other consumer electronic devices. It will help manufacturers create flashier user interfaces that are less dependent on...

 state tracker to Mesa 3D, which enables Scalable Vector Graphics
Scalable Vector Graphics
Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...

 to be hardware-accelerated by any Gallium3D-based driver.

, Nouveau development is done exclusively for the Gallium framework. The old DRI driver was removed from the master branch of the mesa repository on Freedesktop.org.

The first Mesa3D release including Gallium3D was version 7.5 on 17 July 2009.

, There are two Gallium3D drivers for ATI hardware known as r300g and r600g for R100-R500 and R600-Evergreen GPUs respectively. Initial support for the Evergreen GPUs was added to the r600g driver on 2010-09-10.

On 21 September 2010, major commits were made to the code to support Direct3D 10 and 11. In time, this might offer the ability to use recent Direct3D implementations on GNU/Linux systems.

At November 2011, Intel 965g and Cell gallium drivers were removed from the master branch of Mesa as unmaintained and broken.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK