<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Mesa Source Tree</title>
+ <title>Source Code Tree</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
- <h1>The Mesa 3D Graphics Library</h1>
+ The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
-<h1>Mesa source code tree overview</h1>
+<h1>Source Code Tree</h1>
<p>
This is a brief summary of Mesa's directory tree and what's contained in
<li><b>include</b> - Public OpenGL header files
<li><b>src</b>
<ul>
+ <li><b>amd</b> - AMD-specific sources
+ <ul>
+ <li><b>addrlib</b> - common sources for creating images
+ <li><b>common</b> - common code between RADV, radeonsi and ACO
+ <li><b>compiler</b> - ACO shader compiler
+ <li><b>llvm</b> - common code between RADV and radeonsi for compiling shaders using LLVM
+ <li><b>registers</b> - register definitions
+ <li><b>vulkan</b> - RADV Vulkan implementation for AMD Southern Island and newer
+ </ul>
<li><b>compiler</b> - Common utility sources for different compilers.
<ul>
<li><b>glsl</b> - the GLSL IR and compiler
<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>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
+ <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><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
+ <li><b>state_tracker</b> - Translator from Mesa to 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,
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.
+ redundant state changes between frontends and drivers.
<li><b>gallivm</b> - LLVM module for Gallium. For LLVM-based
compilation, optimization and code generation for TGSI shaders.
Incomplete.
creation, memory management, 2D blitting, simple rendering, etc.
<li>XXX more
</ul>
- <li><b>state_trackers</b> -
+ <li><b>frontends</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
+ <li><b>clover</b> - OpenCL frontend
+ <li><b>dri</b> - Meta frontend for DRI drivers
+ <li><b>glx</b> - Meta frontend for GLX
+ <li><b>wgl</b> - Windows WGL frontend
+ <li><b>xa</b> - XA frontend
+ <li><b>xvmc</b> - XvMC frontend
+ <li><b>vdpau</b> - VDPAU frontend
+ <li><b>va</b> - VA-API frontend
+ <li><b>omx_bellagio</b> - OpenMAX Bellagio frontend
</ul>
<li><b>winsys</b> -
<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>.
+<li><b>lib</b> - hardlinks to most binaries as produced by the build system.
These (shortcuts) are used for development purposes in conjunction with
LD_LIBRARY_PATH and/or LIBGL_DRIVERS_PATH.
</ul>