From 6c972fb7342f12df7055a71ebb7e220f28f4bd3f Mon Sep 17 00:00:00 2001 From: Kelsi Date: Thu, 14 May 2026 23:31:32 -0700 Subject: [PATCH] docs+container: remove unused GLEW dep; fix ATTRIBUTION list; document Tracy vendoring MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ATTRIBUTION.md: removed GLEW (not used — no glew.h includes, no find_package(GLEW) in CMakeLists.txt); added the libraries that ARE actually used (Vulkan, vk-bootstrap, zlib, FFmpeg, Lua, Catch2, nlohmann/json, stb, FidelityFX-FSR2). OpenSSL row clarified for 3.x. - container/{builder-linux,builder-macos,builder-windows}.Dockerfile: drop libglew-dev / vcpkg 'glew' — nothing links against GLEW, so these were dead weight in the images. - container/FLOW.md: matched the Dockerfile changes. - docs/perf_baseline.md: Tracy is NOT vendored — building with WOWEE_ENABLE_TRACY=ON references extern/tracy/ which doesn't exist. Documented the required 'git clone' step. Also corrected the M2::computeBoneMatrices / M2Renderer::update file paths (m2_renderer_internal.h and m2_renderer_render.cpp, not m2_renderer.cpp). --- ATTRIBUTION.md | 14 +++++++++++--- container/FLOW.md | 6 +++--- container/builder-linux.Dockerfile | 1 - container/builder-macos.Dockerfile | 2 -- container/builder-windows.Dockerfile | 1 - docs/perf_baseline.md | 17 +++++++++++++---- 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index ca1fafa8..b3333469 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -40,13 +40,21 @@ This project uses the following open-source libraries: | Library | License | Purpose | |---------|---------|---------| | [SDL2](https://libsdl.org/) | zlib | Window management, input handling | -| [GLEW](http://glew.sourceforge.net/) | BSD/MIT | OpenGL extension loading | +| [Vulkan](https://www.vulkan.org/) (loader + headers) | Apache 2.0 | Graphics API | +| [vk-bootstrap](https://github.com/charles-lunarg/vk-bootstrap) | MIT | Vulkan instance/device boilerplate | | [GLM](https://github.com/g-truc/glm) | MIT | Mathematics library | -| [OpenSSL](https://www.openssl.org/) | Apache 2.0 | Cryptographic functions (SRP6, RC4, RSA) | +| [OpenSSL](https://www.openssl.org/) | Apache 2.0 (OpenSSL 3.x) | Cryptographic functions (SRP6, RC4, RSA) | +| [zlib](https://www.zlib.net/) | zlib | Decompression for DBC/M2/packet payloads | +| [FFmpeg](https://ffmpeg.org/) (libav*) | LGPL 2.1 | Video playback (cinematics) | | [Unicorn Engine](https://www.unicorn-engine.org/) | LGPL 2 | x86 CPU emulation for Warden module execution | | [miniaudio](https://miniaud.io/) | MIT/Unlicense | Audio playback | -| [StormLib](https://github.com/ladislav-zezula/StormLib) | MIT | MPQ archive extraction | +| [StormLib](https://github.com/ladislav-zezula/StormLib) | MIT | MPQ archive extraction (asset_extract tool) | | [Dear ImGui](https://github.com/ocornut/imgui) | MIT | Immediate mode GUI | +| [Lua 5.1.5](https://www.lua.org/) | MIT | Macro and addon script execution | +| [Catch2](https://github.com/catchorg/Catch2) (amalgamated) | BSL-1.0 | Test framework (test build only) | +| [nlohmann/json](https://github.com/nlohmann/json) | MIT | JSON parsing (opcode tables, manifests) | +| [stb_image / stb_image_write](https://github.com/nothings/stb) | MIT/Public Domain | PNG/JPG decode and write | +| [AMD FidelityFX FSR2](https://github.com/GPUOpen-Effects/FidelityFX-FSR2) | MIT | Optional temporal upscaling | ## Cryptographic Standards diff --git a/container/FLOW.md b/container/FLOW.md index 619328c0..faf7817f 100644 --- a/container/FLOW.md +++ b/container/FLOW.md @@ -44,7 +44,7 @@ run-{platform}.sh/.ps1 |------|------|-----| | 1 | `apt-get install` cmake, ninja-build, build-essential, pkg-config, git, python3 | Core build tools | | 2 | `apt-get install` glslang-tools, spirv-tools | Vulkan shader compilation | -| 3 | `apt-get install` libsdl2-dev, libglew-dev, libglm-dev, libssl-dev, zlib1g-dev | Runtime dependencies (system packages) | +| 3 | `apt-get install` libsdl2-dev, libglm-dev, libssl-dev, zlib1g-dev | Runtime dependencies (system packages) | | 4 | `apt-get install` libavformat-dev, libavcodec-dev, libswscale-dev, libavutil-dev | FFmpeg libraries | | 5 | `apt-get install` libvulkan-dev, vulkan-tools | Vulkan SDK | | 6 | `apt-get install` libstorm-dev, libunicorn-dev | MPQ archive + CPU emulation | @@ -116,7 +116,7 @@ No manual download required. | 10 | COPY `macos/triplets/` → `/opt/vcpkg-triplets/` | vcpkg cross-compile triplet definitions | | 11 | `apt-get install` file, nasm | Mach-O detection + ffmpeg x86 asm | | 12 | Bootstrap vcpkg → `/opt/vcpkg` | Package manager | -| 13 | `vcpkg install` sdl2, openssl, glew, glm, zlib, ffmpeg `--triplet arm64-osx-cross` | arm64 dependencies | +| 13 | `vcpkg install` sdl2, openssl, glm, zlib, ffmpeg `--triplet arm64-osx-cross` | arm64 dependencies | | 14 | `vcpkg install` same packages `--triplet x64-osx-cross` | x86_64 dependencies | | 15 | `apt-get install` libvulkan-dev, glslang-tools | Vulkan headers (for compilation, not runtime) | | 16 | COPY `build-macos.sh` → `/build-platform.sh` | Container entrypoint | @@ -184,7 +184,7 @@ The main CMakeLists.txt has a macOS cross-compile branch that: | 2 | Download + extract LLVM-MinGW (v20240619 ucrt) → `/opt/llvm-mingw` | Clang/LLD cross-compiler for Windows | | 3 | Add `/opt/llvm-mingw/bin` to PATH | Makes `x86_64-w64-mingw32-clang` etc. available | | 4 | Bootstrap vcpkg → `/opt/vcpkg` | Package manager | -| 5 | `vcpkg install` sdl2, openssl, glew, glm, zlib, ffmpeg `--triplet x64-mingw-static` | Static Windows dependencies | +| 5 | `vcpkg install` sdl2, openssl, glm, zlib, ffmpeg `--triplet x64-mingw-static` | Static Windows dependencies | | 6 | `apt-get install` libvulkan-dev, glslang-tools | Vulkan headers + shader tools | | 7 | Create no-op `powershell.exe` stub | vcpkg MinGW post-build hook needs it | | 8 | COPY `build-windows.sh` → `/build-platform.sh` | Container entrypoint | diff --git a/container/builder-linux.Dockerfile b/container/builder-linux.Dockerfile index 1f9e12dc..e99a608c 100644 --- a/container/builder-linux.Dockerfile +++ b/container/builder-linux.Dockerfile @@ -13,7 +13,6 @@ RUN apt-get update && \ glslang-tools \ spirv-tools \ libsdl2-dev \ - libglew-dev \ libglm-dev \ libssl-dev \ zlib1g-dev \ diff --git a/container/builder-macos.Dockerfile b/container/builder-macos.Dockerfile index cb3dcb9f..d9b443ac 100644 --- a/container/builder-macos.Dockerfile +++ b/container/builder-macos.Dockerfile @@ -114,7 +114,6 @@ RUN git clone --depth 1 https://github.com/microsoft/vcpkg.git "${VCPKG_ROOT}" & RUN "${VCPKG_ROOT}/vcpkg" install \ sdl2[vulkan] \ openssl \ - glew \ glm \ zlib \ ffmpeg \ @@ -124,7 +123,6 @@ RUN "${VCPKG_ROOT}/vcpkg" install \ RUN "${VCPKG_ROOT}/vcpkg" install \ sdl2[vulkan] \ openssl \ - glew \ glm \ zlib \ ffmpeg \ diff --git a/container/builder-windows.Dockerfile b/container/builder-windows.Dockerfile index 0c5abf83..fec4b49d 100644 --- a/container/builder-windows.Dockerfile +++ b/container/builder-windows.Dockerfile @@ -44,7 +44,6 @@ ENV VCPKG_DEFAULT_TRIPLET=x64-mingw-static RUN "${VCPKG_ROOT}/vcpkg" install \ sdl2[vulkan] \ openssl \ - glew \ glm \ zlib \ ffmpeg \ diff --git a/docs/perf_baseline.md b/docs/perf_baseline.md index 88bdc743..1d6f3c81 100644 --- a/docs/perf_baseline.md +++ b/docs/perf_baseline.md @@ -5,8 +5,17 @@ ## Tracy Profiler Integration -Tracy v0.11.1 integrated under `WOWEE_ENABLE_TRACY` CMake option (default: OFF). -When enabled, zero-cost zone markers instrument the following critical paths: +Tracy is integrated under the `WOWEE_ENABLE_TRACY` CMake option (default: OFF). +When enabled, zero-cost zone markers instrument the following critical paths. + +> **Setup**: Tracy is *not* vendored in this repo. `CMakeLists.txt` looks for +> `extern/tracy/public/TracyClient.cpp` and `extern/tracy/public/` headers +> (lines 1045-1050). Clone Tracy into that path before configuring with +> `-DWOWEE_ENABLE_TRACY=ON`: +> +> ```bash +> git clone --depth 1 --branch v0.11.1 https://github.com/wolfpld/tracy extern/tracy +> ``` ### Instrumented Zones @@ -20,8 +29,8 @@ When enabled, zero-cost zone markers instrument the following critical paths: | `Renderer::renderWorld` | src/rendering/renderer.cpp | Main world draw call | | `Renderer::renderShadowPass` | src/rendering/renderer.cpp | Shadow depth pass | | `PostProcess::execute` | src/rendering/post_process_pipeline.cpp | FSR/FXAA post-process | -| `M2::computeBoneMatrices` | src/rendering/m2_renderer.cpp | CPU skeletal animation | -| `M2Renderer::update` | src/rendering/m2_renderer.cpp | M2 instance update + culling | +| `M2::computeBoneMatrices` | src/rendering/m2_renderer_internal.h | CPU skeletal animation | +| `M2Renderer::update` | src/rendering/m2_renderer_render.cpp | M2 instance update + culling | | `TerrainManager::update` | src/rendering/terrain_manager.cpp | Terrain streaming logic | | `TerrainManager::processReadyTiles` | src/rendering/terrain_manager.cpp | GPU tile uploads | | `ADTLoader::load` | src/pipeline/adt_loader.cpp | ADT binary parsing |