Mesa 3D
Encyclopedia
Mesa 3D is an open source 3D computer 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...

 library
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....

 that provides a generic 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...

 implementation for rendering three-dimensional graphics on multiple platforms
Platform (computing)
A computing platform includes some sort of hardware architecture and a software framework , where the combination allows software, particularly application software, to run...

. It was initially developed by Brian Paul
Brian Paul
Brian Paul is a computer programmer who wrote and continues to maintain the source code for the open source Mesa graphics library. Paul began programming initial source code in August 1993. Mesa is a free software/open source graphics library that provides a generic OpenGL implementation for...

 in August 1993, and is still maintained by him today. The project contains lots of contributions from other people, especially in the area of hardware support.

As of April 2008, it is the only commonly known, fully open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 implementation of OpenGL which is continually updated to support the latest OpenGL specification. It is widely used, most importantly by the X.Org
X.Org
X.Org refers to several things related to the X Window System:* X.Org, the organisation in charge of X standards from 1999 * The X.Org Foundation, a community-based foundation which took over X stewardship in 2004...

 implementation of the X Window System
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

 where it serves as the OpenGL core for the open-source X.Org/DRI OpenGL drivers. X.Org provides the essential functionality used by most graphical applications
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 which run on Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 platforms such as GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

/Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

.

History

Project initiator Brian Paul was a graphics hobbyist. He thought it would be fun to implement a simple 3D graphics library using the OpenGL API, which he might then use instead of VOGL. Beginning in 1993 he spent eighteen months of part-time development before he released the software on the Internet. The software was well received, and people began contributing to its development. Mesa 3D started off by rendering all 3D computer 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...

 on the CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

. Despite this the internal architecture of Mesa 3D was designed to be open for attaching to graphics processor
Graphics processing unit
A graphics processing unit or GPU is a specialized circuit designed to rapidly manipulate and alter memory in such a way so as to accelerate the building of images in a frame buffer intended for output to a display...

-accelerated 3D rendering. In this first phase rendering was done indirectly in the X server, leaving some overhead and noticeable speed lagging behind the theoretical maximum.

The first true graphics hardware support was added to Mesa in 1997 based upon the Glide API
Glide API
Glide is a 3D graphics API developed by 3dfx Interactive for their Voodoo Graphics 3D accelerator cards. Although it originally started as a proprietary API, it was later open sourced by 3dfx. It was dedicated to gaming performance, supporting geometry and texture mapping primarily, in data...

 for the once new 3dfx
3dfx
3dfx Interactive was a company that specialized in the manufacturing of 3D graphics processing units and, later, graphics cards. It was a pioneer in the field for several years in the late 1990s until 2000 when it underwent one of the most high-profile demises in the history of the PC industry...

 Voodoo I/II graphics cards and their successors. A major problem of using Glide as the acceleration layer was the habit of Glide to run full screen, that was only probably okay for computer games. Further Glide took the lock of the screen memory and thus the x-server was blocked from doing any other GUI tasks.

At the time 3D graphics cards became more mainstream for PCs, individuals partly supported by some companies began working on adding more support for hardware-accelerated 3D rendering to Mesa 3D. The Direct Rendering Infrastructure
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...

 (DRI) was one of these approaches to interface Mesa, OpenGL and other 3D rendering API libraries with the device drivers and hardware. After reaching a basic level of usability DRI support was officially added to Mesa 3D. This significantly broadened the available range of hardware support achievable when using the Mesa library.
As of mid-2000 the DRI has been incorporated into XFree86 4.0 and at least five distinct hardware device drivers have been developed.

With adapting to DRI the Mesa library finally took over the role of the front end component of a full scale OpenGL framework with varying backend components that could offer different degrees of 3D hardware support whilst not dropping the full software rendering capability. The total system tampered a noticeably big amount of software components.
A cooperative effort by the XFree86, Mesa, GLX and Linux kernel developers took several individual projects and combined them into a powerful new system.

Even if those design needs all components to correctly cooperate with each others, the interfaces between them are relatively fixed but even today still see coordinated improvements. As a result the software development on the individual modules can still be kept separated. As most of the code is open source, it still happens that for experimental works on new features and enhancements, programmers sometimes create their own branch of altered modules until their results might show their conceptual success and can be merged back in a more or less compatible fashion to the main trees of all altered components and then typically ending up as a part of the next major or minor release. That applies e.g. to the update of the DRI specification in form of DRI2 as developed and published with a first reference implementation in years 2007 to 2008 that comes for example with no locks any more and improved back buffer support. For this a special git
Git
Git may refer to:* Git , a British English term of abuse* Git , a distributed version control system* Git , by Skeletons & The Girl-Faced Boys...

 branch of Mesa was created.

Features

  • Mesa 3D supports OpenGL version 2.1, along with many extensions from OpenGL 3 and several from version 4.
  • In its current form, Mesa 3D is available and can be compiled on virtually all modern platforms.
  • Though not an official OpenGL implementation for licensing reasons, the Mesa 3D authors have worked to keep the API in line with the OpenGL standard, as set forth by the OpenGL Architecture Review Board
    OpenGL Architecture Review Board
    The OpenGL Architecture Review Board is an industry consortium that governed the OpenGL specification.It was formed in 1992, and defined the conformance tests, approved the OpenGL specification and advanced the standard...

     (ARB).
  • Whilst Mesa 3D supports several hardware graphics accelerators, it may also be compiled as a software-only renderer.
  • Since Mesa 3D is free/open source software, it is possible to use it for studying the internal design and operations of an 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...

    -compatible renderer.
  • Due to its open source form it is possible to trace application bugs and the origin of valid API error messages down to the source line in the OpenGL library to get a better understanding for developing a good fix. In a similar fashion it extends the number of test cases where visual deviations and behaviour of application between different OpenGL implementations should be minimized.
  • Already supports (at least partially) 3D acceleration managed cards: ATI Mach 64 and R100 to R800 chipsets, Intel chipsets, IBM/Toshiba/Sony Cell chip (in Gallium3D
    Gallium3D
    Gallium3D is a free software library for 3D graphics device drivers being developed by VMware, after they acquired Tungsten Graphics – the original authors....

    architecture) used in Sony PlayStation 3, limited Nvidia support, S3 Virge & Savage chipsets, VIA chipsets, Matrox G200 & G400 and more....

External links

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