Files
QuaternionEngine/docs/BUILD.md
2025-12-27 21:41:14 +09:00

1.8 KiB
Raw Blame History

Build & Environment

  • Prerequisites

    • Vulkan SDK installed and VULKAN_SDK set.
    • A C++20 compiler and CMake ≥ 3.16.
    • GPU drivers with Vulkan 1.2+.
    • KTX software with libktx
  • Configure

    • cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
    • Re-run configure after toolchain or dependency changes.
  • Build (single-config)

    • cmake --build build --target vulkan_engine
  • Build (multi-config, e.g., MSVC)

    • cmake --build build --config Release
  • Run

    • ./bin/vulkan_engine (Linux/macOS)
    • bin/vulkan_engine.exe (Windows)
  • Shaders

    • CMake compiles GLSL via glslangValidator to SPIRV targeting Vulkan 1.2:
      • Files under shaders/*.vert|*.frag|*.comp are rebuilt on cmake --build.
    • Helper: ./compile_shaders.py --config Debug|Release uses glslc with --target-env=vulkan1.3 and supports additional stages (mesh/task/ray tracing).
      • Windows shim: ./compile_shaders.ps1 -Config Debug|Release (calls the Python script).
    • Ensure glslangValidator/glslc is on PATH. See docs/SHADERS.md.
  • Windows SDK note

    • CMakeLists.txt includes a default SDK path for Windows 1.3.296.0:
      • Update the path or set VULKAN_SDK accordingly if your version differs.
  • Thirdparty deps

    • Vendored under third_party/ and brought in via CMake. Do not edit headers directly; update through targets.
  • Optional: MikkTSpace tangents

    • Enable at configure time: -DENABLE_MIKKTS=ON (default ON if found).
    • Requires third_party/MikkTSpace/mikktspace.c and mikktspace.h (provided).
    • Disable to use the builtin GramSchmidt generator: -DENABLE_MIKKTS=OFF.
  • Validation Layers

    • Enabled in Debug (kUseValidationLayers = true in src/core/config.h).
    • Disable by building Release or toggling the flag during local experimentation.