Skip to main content
Prisma Engine’s build system is controlled entirely through CMake cache variables prefixed with PRISMA_. These options let you select rendering backends, audio drivers, dependency management strategy, editor inclusion, and optional upscaling technologies. Options are split across several CMake modules: cmake/DeviceOptions.cmake for device feature flags and cmake/UpscalerOptions.cmake for upscaler support.
The current default branch uses a simplified configuration that forces SDL3 + Vulkan + ImGui and locks out DirectX 12, OpenGL, and XAudio2. The tables below reflect both the option names and their effective defaults in this configuration.

Setting options

Pass options on the CMake configure command line:
Or use the preset system for common configurations:

Build configuration

These options control what gets built and how the engine library is packaged.

WebAssembly requirements

PRISMA_BUILD_SHARED_LIBS and PRISMA_RUNTIME_DYNAMIC_LOAD must both be disabled for WebAssembly builds:

Rendering backends

Options in this group control which graphics API backends are compiled into the engine. Only one backend needs to be active at a time, though multiple can coexist.

Conditional compilation

Backend availability is exposed as preprocessor definitions:
DirectX 12 requires Windows 10 or later and the DirectX-Headers package. Vulkan requires the Vulkan SDK 1.3+. On Android, Vulkan is the only supported backend — do not disable it for Android targets.

Audio backends

PRISMA_ENABLE_AUDIO_XAUDIO2 is present in the CMake system but is commented out in the engine CMakeLists.txt pending an interface rewrite. Setting it ON currently has no effect.

Input


Editor and debug UI


Platform mode summary

The engine supports two configuration modes:

Native mode (default)

Uses platform-specific APIs for best performance.
  • Windows: DirectX 12, XAudio2, XInput
  • Android: Vulkan, AAudio, GameActivity
  • Linux: OpenGL / Vulkan

Cross-platform mode

Uses SDL3 for portable audio and input.
  • Audio: SDL3 backend on all platforms
  • Input: SDL3 input on all platforms Enable with PRISMA_USE_NATIVE_AUDIO=OFF and PRISMA_USE_NATIVE_INPUT=OFF

Upscaler options

Upscaler support is configured in cmake/UpscalerOptions.cmake. All upscalers are disabled by default and require additional SDK setup.
DLSS requires the NVIDIA DLSS SDK to be present at configure time. The SDK is not fetched via FetchContent and must be installed separately. See NVIDIA’s developer portal for download instructions.

Advanced rendering features

These options enable GPU features beyond the base rendering pipeline. All are off by default.

Dependency management

When PRISMA_USE_FETCHCONTENT=OFF, dependencies are resolved via vcpkg. Initialize vcpkg before configuring:
All dependency versions are pinned in cmake/DependencyVersions.cmake.