Skip to content

tkerscher/minerva

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

GPGPU computing framework using the Vulkan API

Resources

License

Stars

Watchers

Forks

Packages

No packages published