Vulkan rendering engine prototype made with Vulkan 1.4, meant as an iterative experimental sandbox to learn best practices for Vulkan, engine architecture and low-level graphics programming. Code is forked with significant changes from a Khronos Group Vulkan tutorial. Project is written for the C++20 standard and is meant to be cross-platform. Currently, the code is tested only on macOS, using XCode generator but includes tutorial-sourced code that caters to Windows and Linux systems.
- Window handling with with glfw
- Vulkan-Hpp RAII bindings for Vulkan resource management
- Validation layer support in debug builds
- Dynamic rendering instead of render passes and framebuffers
- Timeline semaphores for GPU-CPU synchronization instead of fences
- Multiple frames in flight
- Slang shader source compiled to SPIR-V as part of CMake build
- CMake options for Vulkan portability support on MoltenVK/macOS and optional Vulkan C++20 module usage
This project uses CMake as a build tool. Since the project is built using Vulkan, the latest Vulkan SDK is required.
Make sure that your graphics card can support listed Vulkan features and make sure you have updated graphics card driver.
Distributed under the MIT License. See LICENSE for more information.