Skip to content

Latest commit

 

History

History
130 lines (87 loc) · 6.03 KB

File metadata and controls

130 lines (87 loc) · 6.03 KB

ProjectV Linux Build & Run Guide

Этот документ описывает процесс сборки, тестирования и запуска проекта ProjectV в операционной системе Linux, которая является основной целевой платформой для разработки.


1. Подготовка окружения

Для сборки проекта на Linux требуются следующие инструменты:

  • Компилятор: Clang 22+ (поддерживающий C++26 стандарты).
  • Линковщик: LLD (ld.lld).
  • Сборочная система: CMake 3.30+ и Ninja.
  • Vulkan SDK: Версия 1.4.350+ с установленными компиляторами шейдеров glslc или glslangValidator в вашей переменной среды PATH.
  • Библиотека кэширования компиляции: sccache (активно используется в пресетах по умолчанию для ускорения повторной сборки).
  • Аудио-сервер: PipeWire / PulseAudio.

Зависимости (Сабмодули)

Перед первой сборкой обязательно загрузите все вложенные зависимости:

git submodule update --init --recursive

Проект собирает статические версии SDL3, volk, VMA (Vulkan Memory Allocator), fmt, flecs, JoltPhysics, tracy и других библиотек из исходных кодов.


2. Конфигурирование проекта (Configure Presets)

В CMakePresets.json настроены три основных пресета конфигурации для Linux:

  • linux-clang-debug — Локальная сборка для разработки (включены тесты, бенчмарки, отладка Vulkan Validation, кэширование sccache).
  • linux-clang-debug-ci — Контур непрерывной интеграции (CI) без привязки к локальным launcher-инструментам.
  • linux-clang-release — Высокооптимизированная релизная сборка (-O3, -flto=thin, отключены валидация и Tracy).

Конфигурирование выполняется командой:

cmake --preset linux-clang-debug

3. Сборка (Build Presets)

Для repeatable-сборки используйте соответствующие сборочные пресеты:

# Сборка Debug-версии (ProjectV + тесты)
cmake --build --preset linux-clang-debug-build

# Сборка Release-версии
cmake --build --preset linux-clang-release-build

4. Запуск тестов (Test Presets)

Запуск unit-тестов и интеграционных тестов физики Jolt и рендеринга:

ctest --preset linux-clang-debug-tests

Все тесты должны завершаться успешно (Green Build) перед фиксацией изменений.


5. Запуск приложения

Для запуска движка используйте скомпилированный исполняемый файл:

./build/linux-clang-debug/bin/ProjectV

Полезные горячие клавиши в рантайме

  • 1 — Shader Hot-Reload: Пересборка всех шейдеров на лету без перезапуска приложения (через системный вызов сборки таргета Shaders).
  • 3 — Cycle Vsync: Переключение режимов презентации Vulkan (FIFO -> IMMEDIATE -> MAILBOX).
  • F5 — Перезагрузка и циклическое переключение встроенных пресетов сцен (VoxelLab, FlatBenchmark, TransparencyStress и т.д.).
  • F1 — Включение / отключение всего HUD и отладочных сеток.
  • G — Переключение уровня детализации HUD (Normal / Detailed).
  • Tab — Захват / освобождение курсора мыши.

6. Скрипты автоматизации и Smoke-тестирование

Запуск Smoke-теста

Для проверки работоспособности Vulkan-конвейера, создания окна и корректной работы барьеров при изменении размера экрана, сворачивании и разворачивании используется скрипт:

./tools/linux/Invoke-ProjectVRuntimeSmoke.sh

Этот скрипт проверяет:

  1. Инициализацию Logical Device с поддержкой BDA и RTX.
  2. Отсутствие ошибок от Vulkan Validation Layers.
  3. Корректное завершение работы приложения с кодом возврата 0.

Автоматический захват кадров (LookDev)

Для автоматического тестирования качества освещения и теней скрипт запускает движок, позиционирует камеру, переключает отладочные режимы рендеринга и сохраняет скриншоты в BMP с JSON-файлами метаданных в директорию runtime/captures/.


Связанные документы