docs+container: remove unused GLEW dep; fix ATTRIBUTION list; document Tracy vendoring

- 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).
This commit is contained in:
Kelsi
2026-05-14 23:31:32 -07:00
parent 183a38f274
commit 6c972fb734
6 changed files with 27 additions and 14 deletions

View File

@@ -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

View File

@@ -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 |

View File

@@ -13,7 +13,6 @@ RUN apt-get update && \
glslang-tools \
spirv-tools \
libsdl2-dev \
libglew-dev \
libglm-dev \
libssl-dev \
zlib1g-dev \

View File

@@ -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 \

View File

@@ -44,7 +44,6 @@ ENV VCPKG_DEFAULT_TRIPLET=x64-mingw-static
RUN "${VCPKG_ROOT}/vcpkg" install \
sdl2[vulkan] \
openssl \
glew \
glm \
zlib \
ffmpeg \

View File

@@ -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 |