Jump to content

Gallium3D

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 96.253.50.142 (talk) at 04:50, 25 September 2009 (Pluralize "DRI driver" to match "DRM drivers"). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Gallium3D
Developer(s)Tungsten Graphics, Inc.
Preview release
0.3 / March 24, 2009
Written inC
Operating systemCross-platform
TypeGraphics library
LicenseMIT License
Websitewww.tungstengraphics.com

Gallium3D is a software library for 3D graphics acceleration being developed by Tungsten Graphics, an engineering company with expertise in Linux and open-source graphics technologies. Gallium3D operates as a layer between the graphics API and the operating system with the primary goal of making driver development easier, bundling otherwise duplicated code of several different drivers at a single point. This is done by providing a better division of labour (for example, leaving memory management to the kernel DRI driver) and to support modern hardware architectures.

Gallium3D provides a unified API exposing standard hardware functions such as shader units found on modern hardware. Thus, 3D APIs such as OpenGL 1.x/2.x, OpenGL 3.x, OpenVG, GPGPU infrastructure or even Direct3D (as found in the Wine compatibility layer) will need only a single back-end, called state tracker, targeting Gallium3D API. By contrast Mesa 3D requires a different backend for each hardware platform, and several other APIs need translation to OpenGL at the expense of further overhead.[1][2][3] In addition, using the modular structure of Gallium3D, there are works underway to leverage the LLVM compiler suite and create a module to optimize shader code on the fly.[4]

Under Gallium3D, DRM (Direct Rendering Manager) kernel drivers will manage the memory, and DRI (Direct Rendering Interface) drivers (now called DRI2) will be more GPU processing oriented. This will resolve memory management problems whose solutions are considered infeasible under Mesa 3D.[5]

Gallium3D 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 SPU and Intel GPU drivers. Work is done on ATI Radeon cards providing a skeleton driver[6], and the Nouveau team is moving development to Gallium3D, including a solution for older fixed function nVidia cards which lack programmable shaders.[7][8]

As of 13 July 2008, 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.[9]

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

On 1 May 2009, Zack Rusin from Tungsten Graphics added OpenVG state tracker to Mesa 3D[11], which enables Scalable Vector Graphics to be hardware-accelerated by any Gallium3D-based driver.

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

References

  1. ^ "TG-Gallium3D". Tungsten Graphics. Retrieved 2008-04-01.
  2. ^ zrusin. "GPGPU". Retrieved 2008-04-01. {{cite web}}: Unknown parameter |datepublished= ignored (help)
  3. ^ zrusin. "OpenVG and accelerating 2D". Retrieved 2008-04-01. {{cite web}}: Unknown parameter |datepublished= ignored (help)
  4. ^ zrusin. "Gallium3D LLVM". Retrieved 2008-04-01. {{cite web}}: Unknown parameter |datepublished= ignored (help)
  5. ^ "DRI2". Retrieved 2008-04-01. {{cite web}}: Unknown parameter |datepublished= ignored (help)
  6. ^ Michael Larabel. "Gallium3D Status Update Q1'08". Phoronix. p. 2. Retrieved 2008-04-01. {{cite web}}: Unknown parameter |datepublished= ignored (help)
  7. ^ "Nouveau Companion 36". Retrieved 2008-04-01. {{cite web}}: Unknown parameter |datepublished= ignored (help)
  8. ^ "Nouveau Companion 37". Retrieved 2008-04-01. {{cite web}}: Unknown parameter |datepublished= ignored (help)
  9. ^ "nouveau: say goodbye to the old DRI driver... (cgit on FDO)". {{cite web}}: Unknown parameter |datepublished= ignored (help)
  10. ^ "Gallium3D Now In Mainline Mesa Code-Base!". {{cite web}}: Unknown parameter |datepublished= ignored (help)
  11. ^ "OpenVG state tracker is in Mesa 3D". {{cite web}}: Unknown parameter |datepublished= ignored (help)
  12. ^ "Mesa 7.5 Release Notes / 17 July 2009". {{cite web}}: Unknown parameter |datepublished= ignored (help)

External links