xref: /aosp_15_r20/external/mesa3d/docs/sourcetree.rst (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard WorkerSource Code Tree
2*61046927SAndroid Build Coastguard Worker================
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard WorkerThis is a brief summary of Mesa's directory tree and what's contained in
5*61046927SAndroid Build Coastguard Workereach directory.
6*61046927SAndroid Build Coastguard Worker
7*61046927SAndroid Build Coastguard Worker-  **docs** - Documentation
8*61046927SAndroid Build Coastguard Worker-  **include** - Public OpenGL header files
9*61046927SAndroid Build Coastguard Worker-  **src**
10*61046927SAndroid Build Coastguard Worker
11*61046927SAndroid Build Coastguard Worker   -  **amd** - AMD-specific sources
12*61046927SAndroid Build Coastguard Worker
13*61046927SAndroid Build Coastguard Worker      -  **addrlib** - common sources for creating images
14*61046927SAndroid Build Coastguard Worker      -  **common** - common code between RADV, RadeonSI and ACO
15*61046927SAndroid Build Coastguard Worker      -  **compiler** - ACO shader compiler
16*61046927SAndroid Build Coastguard Worker      -  **llvm** - common code between RADV and RadeonSI for compiling
17*61046927SAndroid Build Coastguard Worker         shaders using LLVM
18*61046927SAndroid Build Coastguard Worker      -  **registers** - register definitions
19*61046927SAndroid Build Coastguard Worker      -  **vulkan** - RADV Vulkan implementation for AMD Southern Island
20*61046927SAndroid Build Coastguard Worker         and newer
21*61046927SAndroid Build Coastguard Worker
22*61046927SAndroid Build Coastguard Worker   -  **compiler** - Common utility sources for different compilers.
23*61046927SAndroid Build Coastguard Worker
24*61046927SAndroid Build Coastguard Worker      -  **glsl** - the GLSL IR and compiler
25*61046927SAndroid Build Coastguard Worker      -  **nir** - the NIR IR and compiler
26*61046927SAndroid Build Coastguard Worker      -  **spirv** - the SPIR-V compiler
27*61046927SAndroid Build Coastguard Worker
28*61046927SAndroid Build Coastguard Worker   -  **egl** - EGL library sources
29*61046927SAndroid Build Coastguard Worker
30*61046927SAndroid Build Coastguard Worker      -  **drivers** - EGL drivers
31*61046927SAndroid Build Coastguard Worker      -  **main** - main EGL library implementation. This is where all
32*61046927SAndroid Build Coastguard Worker         the EGL API functions are implemented, like eglCreateContext().
33*61046927SAndroid Build Coastguard Worker
34*61046927SAndroid Build Coastguard Worker   -  **freedreno** - Adreno-specific sources
35*61046927SAndroid Build Coastguard Worker
36*61046927SAndroid Build Coastguard Worker      -  **fdl** - mipmap layout manager
37*61046927SAndroid Build Coastguard Worker      -  **vulkan** - Turnip is a Vulkan implementation for
38*61046927SAndroid Build Coastguard Worker         Qualcomm Adreno
39*61046927SAndroid Build Coastguard Worker
40*61046927SAndroid Build Coastguard Worker   -  **gbm** - Generic Buffer Manager is a memory allocator for
41*61046927SAndroid Build Coastguard Worker      device buffers
42*61046927SAndroid Build Coastguard Worker
43*61046927SAndroid Build Coastguard Worker   -  **intel** - Intel-specific sources
44*61046927SAndroid Build Coastguard Worker
45*61046927SAndroid Build Coastguard Worker      -  **blorp** - BLit Or Resolve Pass is a blit and HiZ resolve framework
46*61046927SAndroid Build Coastguard Worker      -  **vulkan** - Anvil is a Vulkan implementation for Intel gen 7
47*61046927SAndroid Build Coastguard Worker         (Ivy Bridge) and newer
48*61046927SAndroid Build Coastguard Worker
49*61046927SAndroid Build Coastguard Worker   -  **mapi** - Mesa APIs
50*61046927SAndroid Build Coastguard Worker
51*61046927SAndroid Build Coastguard Worker      -  **glapi** - OpenGL API dispatch layer. This is where all the GL
52*61046927SAndroid Build Coastguard Worker         entrypoints like glClear, glBegin, etc. are generated, as well as
53*61046927SAndroid Build Coastguard Worker         the GL dispatch table. All GL function calls jump through the
54*61046927SAndroid Build Coastguard Worker         dispatch table to functions found in main/.
55*61046927SAndroid Build Coastguard Worker
56*61046927SAndroid Build Coastguard Worker   -  **mesa** - Main Mesa sources
57*61046927SAndroid Build Coastguard Worker
58*61046927SAndroid Build Coastguard Worker      -  **main** - The core Mesa code (mainly state management)
59*61046927SAndroid Build Coastguard Worker      -  **math** - vertex array translation and transformation code
60*61046927SAndroid Build Coastguard Worker         (not used with Gallium)
61*61046927SAndroid Build Coastguard Worker      -  **program** - Vertex/fragment shader and GLSL compiler code
62*61046927SAndroid Build Coastguard Worker      -  **state_tracker** - Translator from Mesa to Gallium. This is
63*61046927SAndroid Build Coastguard Worker         basically a Mesa device driver that speaks to Gallium.
64*61046927SAndroid Build Coastguard Worker      -  **vbo** - Vertex Buffer Object code. All drawing with
65*61046927SAndroid Build Coastguard Worker         glBegin/glEnd, glDrawArrays, display lists, etc. goes through
66*61046927SAndroid Build Coastguard Worker         this module. The results is a well-defined set of vertex arrays
67*61046927SAndroid Build Coastguard Worker         which are passed to the device driver (or transform and lighting
68*61046927SAndroid Build Coastguard Worker         module) for rendering.
69*61046927SAndroid Build Coastguard Worker      -  **x86** - Assembly code/optimizations for 32-bit x86 systems
70*61046927SAndroid Build Coastguard Worker         (not used with Gallium)
71*61046927SAndroid Build Coastguard Worker      -  **x86-64** - Assembly code/optimizations for 64-bit x86 systems
72*61046927SAndroid Build Coastguard Worker         (not used with Gallium)
73*61046927SAndroid Build Coastguard Worker
74*61046927SAndroid Build Coastguard Worker   -  **gallium** - Gallium3D source code
75*61046927SAndroid Build Coastguard Worker
76*61046927SAndroid Build Coastguard Worker      -  **include** - Gallium3D header files which define the Gallium3D
77*61046927SAndroid Build Coastguard Worker         interfaces
78*61046927SAndroid Build Coastguard Worker      -  **drivers** - Gallium3D device drivers
79*61046927SAndroid Build Coastguard Worker
80*61046927SAndroid Build Coastguard Worker         -  **etnaviv** - Driver for Vivante.
81*61046927SAndroid Build Coastguard Worker         -  **freedreno** - Driver for Qualcomm Adreno.
82*61046927SAndroid Build Coastguard Worker         -  **i915** - Driver for Intel i915/i945.
83*61046927SAndroid Build Coastguard Worker         -  **iris** - Driver for Intel gen 8 (Broadwell) and newer.
84*61046927SAndroid Build Coastguard Worker         -  **lima** - Driver for ARM Mali-400 (Utgard) series.
85*61046927SAndroid Build Coastguard Worker         -  **llvmpipe** - Software driver using LLVM for runtime code
86*61046927SAndroid Build Coastguard Worker            generation.
87*61046927SAndroid Build Coastguard Worker         -  **nouveau** - Driver for NVIDIA GPUs.
88*61046927SAndroid Build Coastguard Worker         -  **panfrost** - Driver for ARM Mali Txxx (Midgard) and
89*61046927SAndroid Build Coastguard Worker            Gxx (Bifrost) GPUs.
90*61046927SAndroid Build Coastguard Worker         -  **r300** - Driver for ATI R300 - R500.
91*61046927SAndroid Build Coastguard Worker         -  **r600** - Driver for ATI/AMD R600 - Northern Island (Terascale).
92*61046927SAndroid Build Coastguard Worker         -  **radeonsi** - Driver for AMD Southern Island and newer (GCN, RDNA).
93*61046927SAndroid Build Coastguard Worker         -  **softpipe** - Software reference driver.
94*61046927SAndroid Build Coastguard Worker         -  **svga** - Driver for VMware's SVGA virtual GPU.
95*61046927SAndroid Build Coastguard Worker         -  **tegra** - Driver for NVIDIA Tegra GPUs.
96*61046927SAndroid Build Coastguard Worker         -  **v3d** - Driver for Broadcom VideoCore 5 and newer.
97*61046927SAndroid Build Coastguard Worker         -  **vc4** - Driver for Broadcom VideoCore 4.
98*61046927SAndroid Build Coastguard Worker         -  **virgl** - Driver for Virtio virtual GPU of QEMU.
99*61046927SAndroid Build Coastguard Worker         -  **zink** - Driver that uses Vulkan for rendering.
100*61046927SAndroid Build Coastguard Worker
101*61046927SAndroid Build Coastguard Worker      -  **auxiliary** - Gallium support code
102*61046927SAndroid Build Coastguard Worker
103*61046927SAndroid Build Coastguard Worker         -  **cso_cache** - Constant State Objects Cache. Used to filter
104*61046927SAndroid Build Coastguard Worker            out redundant state changes between frontends and drivers.
105*61046927SAndroid Build Coastguard Worker         -  **draw** - Software vertex processing and primitive assembly
106*61046927SAndroid Build Coastguard Worker            module. This includes vertex program execution, clipping,
107*61046927SAndroid Build Coastguard Worker            culling and optional stages for drawing wide lines, stippled
108*61046927SAndroid Build Coastguard Worker            lines, polygon stippling, two-sided lighting, etc. Intended
109*61046927SAndroid Build Coastguard Worker            for use by drivers for hardware that does not have vertex
110*61046927SAndroid Build Coastguard Worker            shaders. Geometry shaders will also be implemented in this
111*61046927SAndroid Build Coastguard Worker            module.
112*61046927SAndroid Build Coastguard Worker         -  **gallivm** - LLVM module for Gallium. For LLVM-based
113*61046927SAndroid Build Coastguard Worker            compilation, optimization and code generation for TGSI
114*61046927SAndroid Build Coastguard Worker            shaders. Incomplete.
115*61046927SAndroid Build Coastguard Worker         -  **hud** - Heads-Up Display, an overlay showing GPU statistics
116*61046927SAndroid Build Coastguard Worker         -  **pipebuffer** - utility module for managing buffers
117*61046927SAndroid Build Coastguard Worker         -  **rtasm** - run-time assembly/machine code generation.
118*61046927SAndroid Build Coastguard Worker            Currently there's run-time code generation for x86/SSE,
119*61046927SAndroid Build Coastguard Worker            PowerPC and Cell SPU.
120*61046927SAndroid Build Coastguard Worker         -  **tessellator**- used by software drivers to implement
121*61046927SAndroid Build Coastguard Worker            tessellation shaders
122*61046927SAndroid Build Coastguard Worker         -  **tgsi** - TG Shader Infrastructure. Code for encoding,
123*61046927SAndroid Build Coastguard Worker            manipulating and interpreting GPU programs.
124*61046927SAndroid Build Coastguard Worker         -  **translate** - module for translating vertex data from one
125*61046927SAndroid Build Coastguard Worker            format to another.
126*61046927SAndroid Build Coastguard Worker         -  **util** - assorted utilities for arithmetic, hashing,
127*61046927SAndroid Build Coastguard Worker            surface creation, memory management, 2D blitting, simple
128*61046927SAndroid Build Coastguard Worker            rendering, etc.
129*61046927SAndroid Build Coastguard Worker         -  **vl** - utility code for video decode/encode
130*61046927SAndroid Build Coastguard Worker         -  XXX more
131*61046927SAndroid Build Coastguard Worker
132*61046927SAndroid Build Coastguard Worker      -  **frontends** - These implement various libraries using the
133*61046927SAndroid Build Coastguard Worker         device drivers
134*61046927SAndroid Build Coastguard Worker
135*61046927SAndroid Build Coastguard Worker         -  **clover** - OpenCL frontend
136*61046927SAndroid Build Coastguard Worker         -  **d3d10umd** - D3D10 frontend for Windows only. It's similar to Microsoft WARP, but using LLVMpipe/Softpipe.
137*61046927SAndroid Build Coastguard Worker         -  **dri** - Meta frontend for DRI drivers, see mesa/state_tracker
138*61046927SAndroid Build Coastguard Worker         -  **glx** - Meta frontend for GLX
139*61046927SAndroid Build Coastguard Worker         -  **hgl** - Haiku OpenGL
140*61046927SAndroid Build Coastguard Worker         -  **lavapipe** - Vulkan frontend, software Vulkan rasterizer using LLVMpipe.
141*61046927SAndroid Build Coastguard Worker         -  **nine** - D3D9 frontend, see targets/d3dadapter9
142*61046927SAndroid Build Coastguard Worker         -  **osmesa** - Off-screen OpenGL rendering library
143*61046927SAndroid Build Coastguard Worker         -  **va** - VA-API frontend
144*61046927SAndroid Build Coastguard Worker         -  **vdpau** - VDPAU frontend
145*61046927SAndroid Build Coastguard Worker         -  **wgl** - Windows WGL frontend
146*61046927SAndroid Build Coastguard Worker         -  **xa** - XA frontend
147*61046927SAndroid Build Coastguard Worker
148*61046927SAndroid Build Coastguard Worker      -  **winsys** - The device drivers are platform-independent, the
149*61046927SAndroid Build Coastguard Worker         winsys connects them to various platforms. There is usually one winsys
150*61046927SAndroid Build Coastguard Worker         per device family, and within the winsys directory there can be
151*61046927SAndroid Build Coastguard Worker         multiple flavors connecting to different platforms.
152*61046927SAndroid Build Coastguard Worker
153*61046927SAndroid Build Coastguard Worker         -  **drm** - Direct Rendering Manager on Linux
154*61046927SAndroid Build Coastguard Worker         -  **gdi** - Windows
155*61046927SAndroid Build Coastguard Worker         -  **xlib** - indirect rendering on X Window System
156*61046927SAndroid Build Coastguard Worker         -  XXX more
157*61046927SAndroid Build Coastguard Worker
158*61046927SAndroid Build Coastguard Worker   -  **targets** - These control how the Gallium code is compiled into
159*61046927SAndroid Build Coastguard Worker      different libraries. Each of these roughly corresponds to one frontend.
160*61046927SAndroid Build Coastguard Worker
161*61046927SAndroid Build Coastguard Worker      -  **d3dadapter9** - d3dadapter9.so for Wine
162*61046927SAndroid Build Coastguard Worker      -  **dri** - libgallium_dri.so loaded by libGL.so
163*61046927SAndroid Build Coastguard Worker      -  XXX more
164*61046927SAndroid Build Coastguard Worker
165*61046927SAndroid Build Coastguard Worker   -  **glx** - The GLX library code for building libGL.so using DRI
166*61046927SAndroid Build Coastguard Worker      drivers.
167*61046927SAndroid Build Coastguard Worker   -  **loader** - Used by libGL.so to find and load the appropriate DRI driver.
168*61046927SAndroid Build Coastguard Worker   -  **panfrost** - Panfrost-specific sources
169*61046927SAndroid Build Coastguard Worker
170*61046927SAndroid Build Coastguard Worker      -  **compiler** - shader compiler for Bifrost and newer GPUs
171*61046927SAndroid Build Coastguard Worker      -  **lib** - GPU data structures (command stream) support code
172*61046927SAndroid Build Coastguard Worker      -  **midgard** - shader compiler for the Midgard generation GPUs
173*61046927SAndroid Build Coastguard Worker      -  **shared** - shared Mali code between Lima and Panfrost
174*61046927SAndroid Build Coastguard Worker      -  **util** - shared code between Midgard and Bifrost shader compilers
175*61046927SAndroid Build Coastguard Worker
176*61046927SAndroid Build Coastguard Worker   -  **util** - Various utility codes
177*61046927SAndroid Build Coastguard Worker   -  **vulkan** - Common code for Vulkan drivers
178