Open-Source Wikis

/

Godot

/

Reference

/

Dependencies

godotengine/godot

Dependencies

Every external library Godot uses is vendored under thirdparty/. There are no git submodules and no system-library dependencies (except for the OS itself and the platform's compiler/SDK). This keeps the build hermetic and reproducible.

Vendored libraries

Directory Library Used for
accesskit/ AccessKit Cross-platform accessibility tree
amd-fsr/, amd-fsr2/ AMD FSR 1 + FSR 2 Spatial + temporal upscaling for the renderer
angle/ Google ANGLE OpenGL ES → D3D translation on Windows (compatibility renderer)
astcenc/ ARM ASTC encoder High-quality ASTC compression
basis_universal/ Binomial Basis Universal Universal GPU texture compression
brotli/ Brotli Compression for .tres and asset packs
certs/ CA root certs TLS trust store for mbedtls-backed connections
clipper2/ Clipper2 Polygon boolean ops (used by 2D navigation polygon ops, CSG-2D)
cvtt/ Microsoft Convection Texture Tools High-quality BC1/BC3/BC7 compressor
d3d12ma/ D3D12 Memory Allocator GPU memory allocation for the D3D12 driver
directx_headers/ Microsoft DirectX-Headers DXIL / D3D12 headers for non-Windows compiles
doctest/ doctest Unit test framework
dr_libs/ dr_wav, dr_mp3 WAV / MP3 single-file decoders
embree/ Intel Embree CPU ray tracing — used by the lightmap baker and nav baking
enet/ ENet Reliable + unreliable UDP transport
etcpak/ etcpak ETC1/ETC2/EAC compressors
fonts/ DroidSans, JetBrainsMono, NotoSans, OpenMoji, Hack Editor + sample fonts
freetype/ FreeType Font glyph rasterization
gamepadmotionhelpers/ Gamepad Motion Helpers Sensor fusion for gamepads with gyros
glad/ glad OpenGL function loader
glslang/ Khronos glslang GLSL → SPIR-V compilation
graphite/ SIL Graphite (optional in text_server_adv) Complex script shaping fallback
grisu2/ Grisu2 Float-to-string formatting
harfbuzz/ HarfBuzz Text shaping (text_server_adv)
icu4c/ ICU4C Unicode data, BiDi, line breaking, normalization
jolt_physics/ Jolt Physics Recommended 3D physics backend
libbacktrace/ libbacktrace Stack-trace symbolication on Linux
libjpeg-turbo/ libjpeg-turbo JPEG decode
libktx/ KTX-Software Khronos texture format
libogg/, libvorbis/, libtheora/ Xiph libs Ogg container, Vorbis audio, Theora video
libpng/ libpng PNG decode/encode
libwebp/ libwebp WebP decode/encode
linuxbsd_headers/ minimal X11/Wayland headers Build-time stand-ins so distros without -dev packages compile
manifold/ Manifold Boolean mesh ops (CSG3D)
mbedtls/ Mbed TLS TLS / crypto
meshoptimizer/ meshoptimizer Vertex/index optimization, LOD generation
metal-cpp/ Apple metal-cpp C++ wrapper around Metal (used by the Metal driver on non-mm files)
mingw-std-threads/ mingw-std-threads C++ thread shim for MinGW where MS STL threads are missing
miniupnpc/ miniupnpc UPnP NAT traversal (modules/upnp)
minizip/ minizip-ng Zip archive read/write (modules/zip + PCK)
misc/ small one-file libs (fnmatch, polypartition, mikktspace, base85, kissfft, …) Various utilities
msdfgen/ Chlumsky/msdfgen + msdf-atlas-gen MSDF font atlas generation
openxr/ Khronos OpenXR SDK OpenXR loader + headers
pcre2/ PCRE2 Regex (modules/regex)
re-spirv/ re-spirv SPIR-V reflection
recastnavigation/ Recast & Detour Navmesh baking + crowd / RVO
rvo2/ RVO2 Local avoidance (used by navigation)
sdl/ SDL3 Cross-platform joypad / haptics
smaa/ SMAA Anti-aliasing
spirv-cross/, spirv-headers/, spirv-reflect/ Khronos SPIR-V tooling Cross-compile SPIR-V to MSL/HLSL/GLSL; reflection
swappy-frame-pacing/ Google Swappy Android frame pacing
thorvg/ thorvg SVG rasterization (modules/svg)
tinyexr/ tinyexr OpenEXR HDR decode
ufbx/ ufbx FBX parser used by modules/fbx
vhacd/ V-HACD Convex decomposition
volk/ volk Vulkan function loader
vulkan/ Vulkan-Loader, Vulkan-Headers, VMA Vulkan ICD loader, headers, and the Vulkan Memory Allocator
wayland/, wayland-protocols/ Wayland headers Linux Wayland display server
wslay/ wslay WebSocket protocol
xatlas/ xatlas UV atlas generation (lightmap baking)
zlib/, zstd/ zlib, zstd Compression

Dependency policy

The vendoring policy (documented in the Code style guidelines and the contributors' guide) is:

  • Vendor only what's necessary; prefer minimal patch sets so updates remain straightforward.
  • Patches against upstream are kept under the library directory in patches/ (where applicable) so they can be re-applied when the library is bumped.
  • License-compatible: every vendored library uses an MIT-, BSD-, Apache-, or Zlib-style license; copyleft libraries are not vendored.
  • Versioned via the upstream tag/commit that was synced; the directory's README typically records the version.

COPYRIGHT.txt at the repo root lists every vendored library with its license text.

Updating a dependency

Typical workflow:

  1. Identify the upstream commit/tag to sync.
  2. git diff the existing vendored copy against upstream to enumerate Godot patches.
  3. Replace the directory with the new version.
  4. Re-apply patches (often kept in the patches/ subdir).
  5. Re-run the test suite + a representative project.
  6. Update COPYRIGHT.txt and the directory README with the new version.

A submodule-free repo means there's no git submodule update step — every change is a normal commit.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Dependencies – Godot wiki | Factory