Minerva is a framework to create GPGPU application using the Vulkan API.
It tries to provide all necessary boiler plate code to make using the GPU as
simple as possible, albeit it might loose some minor performance in doing so.
Since Minerva uses the Vulkan API it runs on all major OS including Linux, Windows, Mac, iOS and Android and all major GPU vendors as AMD, Intel, NVIDIA or Qualcom.
This project was created as part for an assignment for university and should be treated as a proof of concept.
Documentation available online.
The only real dependencies are:
- A C++17 compatible compiler
- CMake at least version 3.14
All other dependencies will be fetched by the cmake script.
See Dependencies for a full list.
Additionally, if you want to build the debug version, you need the validation layers installed. The easiest way to to so is to install the Vulkan SDK.
To make actual use of minerva
, you need a way to generate SPIR-V code.
For the examples, glslc was
used, which is part of the Vulkan SDK.
Following is the full list of dependencies:
Additionally, if you want to build the documentation you need:
- Doxygen
- Dots
- Doxygen Awesome CSS
Some ideas were not implemented, but might be later:
- Python bindings using pybind11
- Code generator: Based on the shader code, extract structs and generate derivatives from the general purpose classes to match the shaders api