sourcetree.html revision 848b8605
1848b8605Smrg<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2848b8605Smrg<html lang="en"> 3848b8605Smrg<head> 4848b8605Smrg <meta http-equiv="content-type" content="text/html; charset=utf-8"> 5848b8605Smrg <title>Mesa Source Tree</title> 6848b8605Smrg <link rel="stylesheet" type="text/css" href="mesa.css"> 7848b8605Smrg</head> 8848b8605Smrg<body> 9848b8605Smrg 10848b8605Smrg<div class="header"> 11848b8605Smrg <h1>The Mesa 3D Graphics Library</h1> 12848b8605Smrg</div> 13848b8605Smrg 14848b8605Smrg<iframe src="contents.html"></iframe> 15848b8605Smrg<div class="content"> 16848b8605Smrg 17848b8605Smrg<h1>Mesa source code tree overview</h1> 18848b8605Smrg 19848b8605Smrg<p> 20848b8605SmrgThis is a brief summary of Mesa's directory tree and what's contained in 21848b8605Smrgeach directory. 22848b8605Smrg</p> 23848b8605Smrg 24848b8605Smrg 25848b8605Smrg<ul> 26848b8605Smrg<li><b>docs</b> - Documentation 27848b8605Smrg<li><b>include</b> - Public OpenGL header files 28848b8605Smrg<li><b>src</b> 29848b8605Smrg <ul> 30848b8605Smrg <li><b>egl</b> - EGL library sources 31848b8605Smrg <ul> 32848b8605Smrg <li><b>docs</b> - EGL documentation 33848b8605Smrg <li><b>drivers</b> - EGL drivers 34848b8605Smrg <li><b>main</b> - main EGL library implementation. This is where all 35848b8605Smrg the EGL API functions are implemented, like eglCreateContext(). 36848b8605Smrg </ul> 37848b8605Smrg <li><b>glsl</b> - the GLSL compiler 38848b8605Smrg <li><b>mapi</b> - Mesa APIs 39848b8605Smrg <li><b>glapi</b> - OpenGL API dispatch layer. This is where all the 40848b8605Smrg GL entrypoints like glClear, glBegin, etc. are generated, as well as 41848b8605Smrg the GL dispatch table. All GL function calls jump through the 42848b8605Smrg dispatch table to functions found in main/. 43848b8605Smrg <li><b>mesa</b> - Main Mesa sources 44848b8605Smrg <ul> 45848b8605Smrg <li><b>main</b> - The core Mesa code (mainly state management) 46848b8605Smrg <li><b>drivers</b> - Mesa drivers (not used with Gallium) 47848b8605Smrg <ul> 48848b8605Smrg <li><b>common</b> - code which may be shared by all drivers 49848b8605Smrg <li><b>dri</b> - Direct Rendering Infrastructure drivers 50848b8605Smrg <ul> 51848b8605Smrg <li><b>common</b> - code shared by all DRI drivers 52848b8605Smrg <li><b>i915</b> - driver for Intel i915/i945 53848b8605Smrg <li><b>i965</b> - driver for Intel i965 54848b8605Smrg <li><b>radeon</b> - driver for ATI R100 55848b8605Smrg <li><b>r200</b> - driver for ATI R200 56848b8605Smrg <li>XXX more 57848b8605Smrg </ul> 58848b8605Smrg <li><b>x11</b> - Xlib-based software driver 59848b8605Smrg <li><b>osmesa</b> - off-screen software driver 60848b8605Smrg <li>XXX more 61848b8605Smrg </ul> 62848b8605Smrg <li><b>math</b> - vertex array translation and transformation code 63848b8605Smrg (not used with Gallium) 64848b8605Smrg <li><b>program</b> - Vertex/fragment shader and GLSL compiler code 65848b8605Smrg <li><b>sparc</b> - Assembly code/optimizations for SPARC systems 66848b8605Smrg (not used with Gallium) 67848b8605Smrg <li><b>state_tracker</b> - State tracker / driver for Gallium. This 68848b8605Smrg is basically a Mesa device driver that speaks to Gallium. This 69848b8605Smrg directory may be moved to src/mesa/drivers/gallium at some point. 70848b8605Smrg <li><b>swrast</b> - Software rasterization module. For drawing points, 71848b8605Smrg lines, triangles, bitmaps, images, etc. in software. 72848b8605Smrg (not used with Gallium) 73848b8605Smrg <li><b>swrast_setup</b> - Software primitive setup. Does things like 74848b8605Smrg polygon culling, glPolygonMode, polygon offset, etc. 75848b8605Smrg (not used with Gallium) 76848b8605Smrg <li><b>tnl</b> - Software vertex Transformation 'n Lighting. 77848b8605Smrg (not used with Gallium) 78848b8605Smrg <li><b>tnl_dd</b> - TNL code for device drivers. 79848b8605Smrg (not used with Gallium) 80848b8605Smrg <li><b>vbo</b> - Vertex Buffer Object code. All drawing with 81848b8605Smrg glBegin/glEnd, glDrawArrays, display lists, etc. goes through this 82848b8605Smrg module. The results is a well-defined set of vertex arrays which 83848b8605Smrg are passed to the device driver (or tnl module) for rendering. 84848b8605Smrg <li><b>x86</b> - Assembly code/optimizations for 32-bit x86 systems 85848b8605Smrg (not used with Gallium) 86848b8605Smrg <li><b>x86-64</b> - Assembly code/optimizations for 64-bit x86 systems 87848b8605Smrg (not used with Gallium) 88848b8605Smrg </ul> 89848b8605Smrg <li><b>gallium</b> - Gallium3D source code 90848b8605Smrg <ul> 91848b8605Smrg <li><b>include</b> - Gallium3D header files which define the Gallium3D 92848b8605Smrg interfaces 93848b8605Smrg <li><b>drivers</b> - Gallium3D device drivers 94848b8605Smrg <ul> 95848b8605Smrg <li><b>i915</b> - Driver for Intel i915/i945. 96848b8605Smrg <li><b>llvmpipe</b> - Software driver using LLVM for runtime code generation. 97848b8605Smrg <li><b>nv*</b> - Drivers for NVIDIA GPUs. 98848b8605Smrg <li><b>radeonsi</b> - Driver for AMD Southern Island. 99848b8605Smrg <li><b>r300</b> - Driver for ATI R300 - R500. 100848b8605Smrg <li><b>r600</b> - Driver for ATI/AMD R600 - Northern Island. 101848b8605Smrg <li><b>softpipe</b> - Software reference driver. 102848b8605Smrg <li><b>svga</b> - Driver for VMware's SVGA virtual GPU. 103848b8605Smrg <li><b>trace</b> - Driver for tracing Gallium calls. 104848b8605Smrg <li>XXX more 105848b8605Smrg </ul> 106848b8605Smrg <li><b>auxiliary</b> - Gallium support code 107848b8605Smrg <ul> 108848b8605Smrg <li><b>draw</b> - Software vertex processing and primitive assembly 109848b8605Smrg module. This includes vertex program execution, clipping, culling 110848b8605Smrg and optional stages for drawing wide lines, stippled lines, 111848b8605Smrg polygon stippling, two-sided lighting, etc. 112848b8605Smrg Intended for use by drivers for hardware that does not have 113848b8605Smrg vertex shaders. 114848b8605Smrg Geometry shaders will also be implemented in this module. 115848b8605Smrg <li><b>cso_cache</b> - Constant State Objects Cache. Used to filter out 116848b8605Smrg redundant state changes between state trackers and drivers. 117848b8605Smrg <li><b>gallivm</b> - LLVM module for Gallium. For LLVM-based 118848b8605Smrg compilation, optimization and code generation for TGSI shaders. 119848b8605Smrg Incomplete. 120848b8605Smrg <li><b>pipebuffer</b> - utility module for managing buffers 121848b8605Smrg <li><b>rbug</b> - Gallium remote debug utility 122848b8605Smrg <li><b>rtasm</b> - run-time assembly/machine code generation. 123848b8605Smrg Currently there's run-time code generation for x86/SSE, PowerPC 124848b8605Smrg and Cell SPU. 125848b8605Smrg <li><b>tgsi</b> - TG Shader Infrastructure. Code for encoding, 126848b8605Smrg manipulating and interpreting GPU programs. 127848b8605Smrg <li><b>translate</b> - module for translating vertex data from one format 128848b8605Smrg to another. 129848b8605Smrg <li><b>util</b> - assorted utilities for arithmetic, hashing, surface 130848b8605Smrg creation, memory management, 2D blitting, simple rendering, etc. 131848b8605Smrg </ul> 132848b8605Smrg <li><b>state_trackers</b> - 133848b8605Smrg <ul> 134848b8605Smrg <li><b>clover</b> - OpenCL state tracker 135848b8605Smrg <li><b>dri</b> - Meta state tracker for DRI drivers 136848b8605Smrg <li><b>egl</b> - Meta state tracker for EGL drivers 137848b8605Smrg <li><b>glx</b> - Meta state tracker for GLX 138848b8605Smrg <li><b>vdpau</b> - VDPAU state tracker 139848b8605Smrg <li><b>vega</b> - OpenVG 1.x state tracker 140848b8605Smrg <li><b>wgl</b> - 141848b8605Smrg <li><b>xorg</b> - Meta state tracker for Xorg video drivers 142848b8605Smrg <li><b>xvmc</b> - XvMC state tracker 143848b8605Smrg </ul> 144848b8605Smrg <li><b>winsys</b> - 145848b8605Smrg <ul> 146848b8605Smrg <li><b>drm</b> - 147848b8605Smrg <li><b>gdi</b> - 148848b8605Smrg <li><b>xlib</b> - 149848b8605Smrg </ul> 150848b8605Smrg </ul> 151848b8605Smrg </ul> 152848b8605Smrg <ul> 153848b8605Smrg <li><b>glx</b> - The GLX library code for building libGL. This is used for 154848b8605Smrg direct rendering drivers. It will dynamically load one of the 155848b8605Smrg xxx_dri.so drivers. 156848b8605Smrg </ul> 157848b8605Smrg<li><b>lib</b> - where the GL libraries are placed 158848b8605Smrg</ul> 159848b8605Smrg 160848b8605Smrg</div> 161848b8605Smrg</body> 162848b8605Smrg</html> 163