<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>Mesa Source Tree</title>
  <link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>

<div class="header">
  <h1>The Mesa 3D Graphics Library</h1>
</div>

<iframe src="contents.html"></iframe>
<div class="content">

<h1>Mesa source code tree overview</h1>

<p>
This is a brief summary of Mesa's directory tree and what's contained in
each directory.
</p>


<ul>
<li><b>docs</b> - Documentation
<li><b>include</b> - Public OpenGL header files
<li><b>src</b>
  <ul>
  <li><b>egl</b> - EGL library sources
    <ul>
    <li><b>docs</b> - EGL documentation
    <li><b>drivers</b> - EGL drivers
    <li><b>main</b> - main EGL library implementation.  This is where all
        the EGL API functions are implemented, like eglCreateContext().
    </ul>
  <li><b>glsl</b> - the GLSL compiler
  <li><b>mapi</b> - Mesa APIs
    <li><b>glapi</b> - OpenGL API dispatch layer.  This is where all the
        GL entrypoints like glClear, glBegin, etc. are generated, as well as
        the GL dispatch table.  All GL function calls jump through the
        dispatch table to functions found in main/.
  <li><b>mesa</b> - Main Mesa sources
    <ul>
    <li><b>main</b> - The core Mesa code (mainly state management)
    <li><b>drivers</b> - Mesa drivers (not used with Gallium)
        <ul>
	<li><b>common</b> - code which may be shared by all drivers
        <li><b>dri</b> - Direct Rendering Infrastructure drivers
           <ul>
	   <li><b>common</b> - code shared by all DRI drivers
	   <li><b>i915</b> - driver for Intel i915/i945
	   <li><b>i965</b> - driver for Intel i965
	   <li><b>radeon</b> - driver for ATI R100
	   <li><b>r200</b> - driver for ATI R200
	   <li>XXX more
           </ul>
        <li><b>x11</b> - Xlib-based software driver
        <li><b>osmesa</b> - off-screen software driver
        <li>XXX more
        </ul>
    <li><b>math</b> - vertex array translation and transformation code
        (not used with Gallium)
    <li><b>program</b> - Vertex/fragment shader and GLSL compiler code
    <li><b>sparc</b> - Assembly code/optimizations for SPARC systems
        (not used with Gallium)
    <li><b>state_tracker</b> - State tracker / driver for Gallium.  This
        is basically a Mesa device driver that speaks to Gallium.  This
        directory may be moved to src/mesa/drivers/gallium at some point.
    <li><b>swrast</b> - Software rasterization module.  For drawing points,
        lines, triangles, bitmaps, images, etc. in software.
        (not used with Gallium)
    <li><b>swrast_setup</b> - Software primitive setup.  Does things like
        polygon culling, glPolygonMode, polygon offset, etc.
        (not used with Gallium)
    <li><b>tnl</b> - Software vertex Transformation 'n Lighting.
        (not used with Gallium)
    <li><b>tnl_dd</b> - TNL code for device drivers.
        (not used with Gallium)
    <li><b>vbo</b> - Vertex Buffer Object code.  All drawing with
        glBegin/glEnd, glDrawArrays, display lists, etc. goes through this
        module.  The results is a well-defined set of vertex arrays which
        are passed to the device driver (or tnl module) for rendering.
    <li><b>x86</b> - Assembly code/optimizations for 32-bit x86 systems
        (not used with Gallium)
    <li><b>x86-64</b> - Assembly code/optimizations for 64-bit x86 systems
        (not used with Gallium)
    </ul>
  <li><b>gallium</b> - Gallium3D source code
    <ul>
    <li><b>include</b> - Gallium3D header files which define the Gallium3D
        interfaces
    <li><b>drivers</b> - Gallium3D device drivers
      <ul>
      <li><b>i915</b> - Driver for Intel i915/i945.
      <li><b>llvmpipe</b> - Software driver using LLVM for runtime code generation.
      <li><b>nv*</b> - Drivers for NVIDIA GPUs.
      <li><b>radeonsi</b> - Driver for AMD Southern Island.
      <li><b>r300</b> - Driver for ATI R300 - R500.
      <li><b>r600</b> - Driver for ATI/AMD R600 - Northern Island.
      <li><b>softpipe</b> - Software reference driver.
      <li><b>svga</b> - Driver for VMware's SVGA virtual GPU.
      <li><b>trace</b> - Driver for tracing Gallium calls.
      <li>XXX more
      </ul>
    <li><b>auxiliary</b> - Gallium support code
      <ul>
      <li><b>draw</b> - Software vertex processing and primitive assembly
          module.  This includes vertex program execution, clipping, culling
          and optional stages for drawing wide lines, stippled lines,
          polygon stippling, two-sided lighting, etc.
          Intended for use by drivers for hardware that does not have
          vertex shaders.
          Geometry shaders will also be implemented in this module.
      <li><b>cso_cache</b> - Constant State Objects Cache.  Used to filter out
          redundant state changes between state trackers and drivers.
      <li><b>gallivm</b> - LLVM module for Gallium.  For LLVM-based
           compilation, optimization and code generation for TGSI shaders.
           Incomplete.
      <li><b>pipebuffer</b> - utility module for managing buffers
      <li><b>rbug</b> - Gallium remote debug utility
      <li><b>rtasm</b> - run-time assembly/machine code generation.
          Currently there's run-time code generation for x86/SSE, PowerPC
          and Cell SPU.
      <li><b>tgsi</b> - TG Shader Infrastructure.  Code for encoding,
          manipulating and interpreting GPU programs.
      <li><b>translate</b> - module for translating vertex data from one format
          to another.
      <li><b>util</b> - assorted utilities for arithmetic, hashing, surface
          creation, memory management, 2D blitting, simple rendering, etc.
      </ul>
    <li><b>state_trackers</b> -
       <ul>
       <li><b>clover</b> - OpenCL state tracker
       <li><b>dri</b> - Meta state tracker for DRI drivers
       <li><b>glx</b> - Meta state tracker for GLX
       <li><b>vdpau</b> - VDPAU state tracker
       <li><b>wgl</b> -
       <li><b>xorg</b> - Meta state tracker for Xorg video drivers
       <li><b>xvmc</b> - XvMC state tracker
       </ul>
    <li><b>winsys</b> -
       <ul>
       <li><b>drm</b> -
       <li><b>gdi</b> -
       <li><b>xlib</b> -
       </ul>
    </ul>
  </ul>
  <ul>
  <li><b>glx</b> - The GLX library code for building libGL.  This is used for
         direct rendering drivers.  It will dynamically load one of the 
         xxx_dri.so drivers.
  </ul>
<li><b>lib</b> - where the GL libraries are placed
</ul>

</div>
</body>
</html>
