From ee99a7a1cfb91a47db7285db66fef5d9de8eafc5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mikl=C3=B3s=20M=C3=A1t=C3=A9?= Date: Thu, 9 Jul 2020 00:39:15 +0200 Subject: [PATCH] docs: add some missing stuff to sourcetree.rst MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit I alphabetised some lists, but did not attempt to fix the inconsistent formatting. v2: added more info v3: rework for the new format Signed-off-by: Miklós Máté Part-of: --- docs/sourcetree.rst | 103 +++++++++++++++++++++++++++++++++----------- 1 file 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 -- 2.30.2