Skip to content

Latest commit

 

History

History
51 lines (36 loc) · 1.95 KB

File metadata and controls

51 lines (36 loc) · 1.95 KB

Minerva

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.

Building

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.

Dependencies

Following is the full list of dependencies:

Additionally, if you want to build the documentation you need:

Outlook

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