<!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>compiler</b> - Common utility sources for different compilers.
    <ul>
    <li><b>glsl</b> - the GLSL IR and compiler
    <li><b>nir</b> - the NIR IR and compiler
    <li><b>spriv</b> - the SPIR-V compiler
    </ul>
  <li><b>egl</b> - EGL library sources
    <ul>
    <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>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>nouveau</b> - Driver for NVIDIA GPUs.
      <li><b>radeon</b> - Shared module for the r600 and radeonsi drivers.
      <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.
      <li>XXX more
      </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>wgl</b> - Windows WGL state tracker
       <li><b>xa</b> - XA state tracker
       <li><b>xvmc</b> - XvMC state tracker
       <li><b>vdpau</b> - VDPAU state tracker
       <li><b>va</b> - VA-API state tracker
       <li><b>omx</b> - OpenMAX 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 using DRI drivers.
  </ul>
<li><b>lib</b> - hardlinks to most binaries as produced by <strong>make</strong>.
        These (shortcuts) are used for development purposes in conjunction with
        LD_LIBRARY_PATH and/or LIBGL_DRIVERS_PATH.
</ul>

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