aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/sourcetree.rst103
1 files changed, 78 insertions, 25 deletions
diff --git a/docs/sourcetree.rst b/docs/sourcetree.rst
index 5da2f4bfe1f..dd6fe43785c 100644
--- a/docs/sourcetree.rst
+++ b/docs/sourcetree.rst
@@ -31,11 +31,28 @@ each directory.
- **main** - main EGL library implementation. This is where all
the EGL API functions are implemented, like eglCreateContext().
+ - **freedreno** - Adreno-specific sources
+
+ - **fdl** - mipmap layout manager
+ - **vulkan** - Turnip is a Vulkan implementation for
+ Qualcomm Adreno
+
+ - **gbm** - Generic Buffer Manager is a memory allocator for
+ device buffers
+
+ - **intel** - Intel-specific sources
+
+ - **blorp** - BLit Or Resolve Pass is a blit and HiZ resolve framework
+ - **vulkan** - Anvil is a Vulkan implementation for Intel gen 7
+ (Ivy Bridge) and newer
+
- **mapi** - Mesa APIs
- - **glapi** - 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/.
+
+ - **glapi** - 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/.
+
- **mesa** - Main Mesa sources
- **main** - The core Mesa code (mainly state management)
@@ -47,13 +64,14 @@ each directory.
- **common** - code shared by all DRI drivers
- **i915** - driver for Intel i915/i945
- **i965** - driver for Intel i965
+ - **nouveau** - driver for nVidia nv04/nv10/nv20
- **radeon** - driver for ATI R100
- **r200** - driver for ATI R200
- - XXX more
+ - **swrast** - software rasterizer driver that uses the
+ swrast module
- **x11** - Xlib-based software driver
- **osmesa** - off-screen software driver
- - XXX more
- **math** - vertex array translation and transformation code
(not used with Gallium)
@@ -90,22 +108,34 @@ each directory.
interfaces
- **drivers** - Gallium3D device drivers
+ - **etnaviv** - Driver for Vivante.
+ - **freedreno** - Driver for Qualcomm Adreno.
- **i915** - Driver for Intel i915/i945.
+ - **iris** - Driver for Intel gen 8 (Broadwell) and newer.
+ - **lima** - Driver for ARM Mali-400 (Utgard) series.
- **llvmpipe** - Software driver using LLVM for runtime code
generation.
- **nouveau** - Driver for NVIDIA GPUs.
+ - **panfrost** - Driver for ARM Mali Txxx (Midgard) and
+ Gxx (Bifrost) GPUs.
- **radeon** - Shared module for the r600 and radeonsi
drivers.
- - **radeonsi** - Driver for AMD Southern Island.
- **r300** - Driver for ATI R300 - R500.
- - **r600** - Driver for ATI/AMD R600 - Northern Island.
+ - **r600** - Driver for ATI/AMD R600 - Northern Island (Terascale).
+ - **radeonsi** - Driver for AMD Southern Island and newer (GCN, RDNA).
- **softpipe** - Software reference driver.
- **svga** - Driver for VMware's SVGA virtual GPU.
- - **trace** - Driver for tracing Gallium calls.
- - XXX more
+ - **swr** - Software driver with massively parellel vertex processing.
+ - **tegra** - Driver for NVIDIA Tegra GPUs.
+ - **v3d** - Driver for Broadcom VideoCore 5 and newer.
+ - **vc4** - Driver for Broadcom VideoCore 4.
+ - **virgl** - Driver for Virtio virtual GPU of QEMU.
+ - **zink** - Driver that uses Vulkan for rendering.
- **auxiliary** - Gallium support code
+ - **cso_cache** - Constant State Objects Cache. Used to filter
+ out redundant state changes between frontends and drivers.
- **draw** - Software vertex processing and primitive assembly
module. This includes vertex program execution, clipping,
culling and optional stages for drawing wide lines, stippled
@@ -113,16 +143,17 @@ each directory.
for use by drivers for hardware that does not have vertex
shaders. Geometry shaders will also be implemented in this
module.
- - **cso_cache** - Constant State Objects Cache. Used to filter
- out redundant state changes between frontends and drivers.
- **gallivm** - LLVM module for Gallium. For LLVM-based
compilation, optimization and code generation for TGSI
shaders. Incomplete.
+ - **hud** - Heads-Up Display, an overlay showing GPU statistics
- **pipebuffer** - utility module for managing buffers
- **rbug** - Gallium remote debug utility
- **rtasm** - run-time assembly/machine code generation.
Currently there's run-time code generation for x86/SSE,
PowerPC and Cell SPU.
+ - **tessellator**- used by software drivers to implement
+ tessellation shaders
- **tgsi** - TG Shader Infrastructure. Code for encoding,
manipulating and interpreting GPU programs.
- **translate** - module for translating vertex data from one
@@ -130,29 +161,51 @@ each directory.
- **util** - assorted utilities for arithmetic, hashing,
surface creation, memory management, 2D blitting, simple
rendering, etc.
+ - **vl** - utility code for video decode/encode
- XXX more
- - **frontends** -
+ - **frontends** - These implement various libraries using the
+ device drivers
- **clover** - OpenCL frontend
- - **dri** - Meta frontend for DRI drivers
+ - **dri** - Meta frontend for DRI drivers, see mesa/state_tracker
- **glx** - Meta frontend for GLX
+ - **hgl** - Haiku OpenGL
+ - **nine** - D3D9 frontend, see targets/d3dadapter9
+ - **omx** - OpenMAX Bellagio frontend
+ - **osmesa** - Off-screen OpenGL rendering library
+ - **va** - VA-API frontend
+ - **vdpau** - VDPAU frontend
- **wgl** - Windows WGL frontend
- **xa** - XA frontend
- **xvmc** - XvMC frontend
- - **vdpau** - VDPAU frontend
- - **va** - VA-API frontend
- - **omx_bellagio** - OpenMAX Bellagio frontend
- - **winsys** -
+ - **winsys** - The device drivers are platform-independent, the
+ winsys connects them to various platforms. There is usually one winsys
+ per device family, and within the winsys directory there can be
+ multiple flavors connecting to different platforms.
- - **drm** -
- - **gdi** -
- - **xlib** -
+ - **drm** - Direct Rendering Manager on Linux
+ - **gdi** - Windows
+ - **xlib** - indirect rendering on X Window System
+ - XXX more
+
+ - **targets** - These control how the Gallium code is compiled into
+ different libraries. Each of these roughly corresponds to one frontend.
- - **glx** - The GLX library code for building libGL using DRI
+ - **d3dadapter9** - d3dadapter9.so for Wine
+ - **dri** - libgallium_dri.so loaded by libGL.so
+ - **graw** - raw gallium interface without a frontend
+ - XXX more
+
+ - **glx** - The GLX library code for building libGL.so using DRI
drivers.
+ - **loader** - Used by libGL.so to find and load the appropriate DRI driver.
+ - **panfrost** - Panfrost-specific sources
+
+ - **bifrost** - shader compiler for the Bifrost generation GPUs
+ - **midgard** - shader compiler for the Midgard generation GPUs
+ - **pandecode** - command stream debugger
-- **lib** - 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.
+ - **util** - Various utility codes
+ - **vulkan** - Common code for Vulkan drivers