Distribution ============ Along with the interface definitions, the following drivers, state trackers, and auxiliary modules are shipped in the standard Gallium distribution. Drivers ------- Cell ^^^^ Simple driver for the IBM Cell architecture. Runs faster than :ref:`softpipe` on Cell-based machines. Failover ^^^^^^^^ Broken and deprecated. Intel i915 ^^^^^^^^^^ Driver for Intel i915 and i945 chipsets. Intel i965 ^^^^^^^^^^ Highly experimental driver for Intel i965 chipsets. Identity ^^^^^^^^ Wrapper driver. The identity driver is a simple skeleton that passes through all of its :ref:`Context` and :ref:`Screen` methods to an underlying Context and Screen, and as such, it is an excellent starting point for new drivers. LLVM Softpipe ^^^^^^^^^^^^^ A version of :ref:`softpipe` that uses the Low-Level Virtual Machine to dynamically generate optimized rasterizing pipelines. nVidia nvfx ^^^^^^^^^^^ Driver for the nVidia nv30 and nv40 families of GPUs. nVidia nv50 ^^^^^^^^^^^ Driver for the nVidia nv50 family of GPUs. VMware SVGA ^^^^^^^^^^^ Driver for VMware virtualized guest operating system graphics processing. ATI r300 ^^^^^^^^ Driver for the ATI/AMD r300, r400, and r500 families of GPUs. .. _softpipe: Softpipe ^^^^^^^^ Reference software rasterizer. Slow but accurate. Trace ^^^^^ Wrapper driver. Trace dumps an XML record of the calls made to the :ref:`Context` and :ref:`Screen` objects that it wraps. Rbug ^^^^ Wrapper driver. :ref:`rbug` driver used with stand alone rbug-gui. .. _galahad: Galahad ^^^^^^^ Wrapper driver. Sanity checker for the internal gallium state. Normally a driver should n't have to sanity check the input it gets from a state tracker. Any wrong state received should be perceived as a state tracker bug. State Trackers -------------- .. _dri: Direct Rendering Infrastructure ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Tracker that implements the client-side DRI protocol, for providing direct acceleration services to X11 servers with the DRI extension. Supports DRI1 and DRI2. Only GL is supported. .. _egl: EGL ^^^ Tracker for the Khronos EGL standard, used to set up GL and GLES contexts without extra knowledge of the underlying windowing system. GLX ^^^ MesaGL ^^^^^^ Tracker implementing a GL state machine. Not usable as a standalone tracker; Mesa should be built with another state tracker, such as :ref:`DRI` or :ref:`EGL`. Python ^^^^^^ OpenVG ^^^^^^ WGL ^^^ Xorg/XFree86 DDX ^^^^^^^^^^^^^^^^ Tracker for XFree86 and Xorg X11 servers. Provides device-dependent modesetting and acceleration as a DDX driver. Auxiliary --------- OS ^^ The OS module contains the abstractions for basic operating system services: * memory allocation * simple message logging * obtaining run-time configuration option * threading primitives This is the bare minimum required to port Gallium to a new platform. The OS module already provides the implementations of these abstractions for the most common platforms. When targeting an embedded platform no implementation will be provided -- these must be provided separately. CSO Cache ^^^^^^^^^ The CSO cache is used to accelerate preparation of state by saving driver-specific state structures for later use. .. _draw: Draw ^^^^ Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders or other essential parts of pre-rasterization vertex preparation. Gallivm ^^^^^^^ Indices ^^^^^^^ Indices provides tools for translating or generating element indices for use with element-based rendering. Pipe Buffer Managers ^^^^^^^^^^^^^^^^^^^^ Each of these managers provides various services to drivers that are not fully utilizing a memory manager. Remote Debugger ^^^^^^^^^^^^^^^ Runtime Assembly Emission ^^^^^^^^^^^^^^^^^^^^^^^^^ TGSI ^^^^ The TGSI auxiliary module provides basic utilities for manipulating TGSI streams. Translate ^^^^^^^^^ Util ^^^^