RSS

Article Explains How XGL/Compiz/Mesa/Device Drivers All Relate

Tue, Sep 26, 2006    (No Ratings, Click to rate this article!) Loading ... Loading ...

Technology


Ths is a great writeup done by Emanuele Tamponi on how all these 3D-related technologies combine to give Linux users eye candy. He explains what the drivers need to support, where the X Server fits in here, what Compiz does and more. As you know I was already confused about this, so check it out.

Here is the break down of Emanuele Tamponi’s post on what everything does (copied from article), please read the full article if you get a chance though:

  • An X driver is the software that provides the rendering functions for 2D operation in Xorg and Aiglx (not Xgl).
    So, X driver provides windows rendering, Compisiting, etc… X driver uses only the 2D sector of a graphics card, and can
    provide XAA or EXA bindings.
  • The X Server Extension for GLX is an extension to the XServer that provides functions to listen GLX commands.
    GLX is a protocol that provides OpenGL contexts to applications that require it. It can also receive OpenGL commands from an OpenGL
    application and then send them to the graphics hardware for rendering. Xorg provides its own Extension for GLX, NVIDIA’s
    provides a closed one. The name of the library that contains the X Server Extension is libglx.
  • libGL is a library that provides functions for OpenGL operations and GLX requests. So, libGL is used by OpenGL clients
    that require the X GLX Extension for OpenGL contexts and then to use OpenGL functions. Mesa provides the “open” libGL that
    is used in DRI. NVIDIA’s provides a closed one, and ATI too.
  • An Direct OpenGL Context, is a context where OpenGL is Direct Rendered. Direct Rendering means that libGL can
    talk directly to the 3D driver that controls the graphics card, without passing the OpenGL commands to the GLX Extension.
  • An Indirect OpenGL Context, is a context where OpenGL is Indirect Rendered. Indirect Rendering means that libGL
    has to pass the OpenGL commands to the GLX Extension that will pass them to the graphics card and then will render it.
  • Accelerated Rendering means that operations inside an OpenGL context are elaborated by the graphics processor (gpu), not
    by the cpu. Accelerated Rendering is very fast but relies on hardware capabilities. If a function isn’t supported by the hardware,
    libGL will fallback to a software implementation (a software fallback). In DRI, software fallbacks are provided by Mesa.
  • DRI stands for Direct Rendering Infrastructure, and is a set of software that provides Direct Rendering
    for OpenGL contexts. It provides libGL (by Mesa, with software fallbacks too), libglx (by Mesa), a card-specific driver and a DRM,
    Direct Rendering Manager, that’s a kernel module that manages the requests for hardware and controls the hardware itself.
    NVIDIA’s drivers DON’T use DRI, they use their own infrastructure to manage Direct Rendering.
  • Xgl is new X server architecture layered on top of OpenGL: it doesn’t need X drivers anymore, but just OpenGL drivers
    for all its rendering. Current implementation of Xgl is Xglx. It’s just an “hack” to
    see what Xgl is capable of. This page tries to explain how Xglx works. The future Xgl implementation will be Xegl.
  • Aiglx is a project (now completely merged in Xorg CVS HEAD) that provides Accelerated Rendering to Indirect
    OpenGL Contexts
    . Before aiglx, only NVIDIA’s implementation of libglx provided Accelerated Indirect GLX.

Update #1: Unfortunately it looks like the original link for this article is dead and no one had a mirror of it (can’t find a Google Cache for it either). Here’s another article on the subject that might provide additional information.

Share This on Your Favorite Social Network:
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Fark
  • Furl
  • Propeller
  • Reddit
  • Technorati
  • StumbleUpon
  • description
  • MisterWong
  • TwitThis
  • Slashdot
  • SphereIt
, , ,

This post was written by:

Riyad Kalla - who has written 1613 posts on The “Break it Down” Blog.

Ultimately I just want to provide a resource that folks find useful.

2 Comments For This Post

  1. didito Says:

    thanks for the breakdown on this interesting topic. the link to the original does not work anymore though …

  2. Riyad Kalla Says:

    didito,
    Unfortunately you are right it does look like the link is dead.

    I tried looking for a cache somewhere and couldn’t find it. I did find another article on the subject and included that in the Update though.

    Sorry about that.

Leave a Reply