Nabla Logo

Showcase

Showcase screenshotShowcase screenshotShowcase screenshotShowcase screenshotShowcase screenshotShowcase screenshotShowcase screenshotShowcase screenshotShowcase screenshot

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
⬅️a friendly froge➡️