
Showcase









About
Nabla (previously IrrlichtBaW) started as a fork and renovation of the Irrlicht engine, it has since become the Ship of Theseus. Nabla is Vulkan-only thread agnostic, free of singletons and was redesigned with interoperability and headless rendering, allowing you to use it un-intrusively within other engines and share resources from them.
Most importantly it bridges C++ and HLSL allowing Single Source Programming and compiling most HLSL both for the CPU Host and GPU Device, giving you a CUDA-like experience with Vulkan. Furthermore it provides header only libraries for HLSL such as; unit tested BxDFs, FFTs, parts of C++ STL and much more!
It's the perfect choice for building Vulkan middlewares.
Main Features
- Curated List of Vulkan Features and Extensions the Nabla Core Profile
- Easy filtering of Vulkan Physical Devices by capabilities
- SPIR-V and Vulkan as first class citizens
- First class integration of Renderdoc
- Extensive use of Timeline Semaphores (event handlers, CPU callbacks on GPU conditions)
- GPU Object life cycle tracking (descriptor sets and commandbuffers)
- Reusability: HLSL2021 Standard Template Library
- Testability: HLSL subset compiling as both C++ Host and SPIR-V Device code
- Future Proof: C++20 Concepts in HLSL for safe and documented Static Polymorphism
- Insane: Boost PreProcessor and Template Metaprogramming in HLSL!
- Embraces Buffer Device Address and Descriptor Indexing to the full
- Minimally Invasive (vulkan handle acquisition, multiple windows, content playing second fiddle)
- Designed for Interoperation (memory export, import and Coming Soon: CUDA Interop)
- Cancellable Future based Async I/O
- Virtual File System (archive mounting, our alternative to #embed, everything is referenced by absolute path)
- Asset Managment: Directed Acyclic Graphs
- Asset Converter: Merkle Trees de-duplicating GPU Object Instances
- Unit tested BxDFs in a Statically Polymorhic framework
- In Progress: GPU ECS (Property Pools)
- SPIR-V Introspection and Layout creation
- Extensions (ImGUI, FFT, Workgroup Prefix Sum, Blur, Counting Sort In Progress: Autoexposure, Tonemap, GPU MPMC Queue, OptiX Interop, Global Scan)
- Coming Soon: Scene Loaders, GPU Driven Scene Graph, Material Compiler v2 for efficient scheduling of BxDF graph evaluation