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