Project Description Developer Dashboard Web Page Review this project

VPP is a high-level C++ rendering and GPU computation API based on Vulkan.

Vulkan is the new API for 3D graphics rendering and GPU computation developed by Khronos Group.

VPP adds high-level, object-oriented C++ interface over Vulkan. The goal is to make Vulkan programming easier and more intuitive.

VPP provides the following features:

- Intuitive, object-oriented abstractions over Vulkan concepts: devices, queues, render passes, pipelines, shader resources, synchronization objects and others.

- Isolation from the C-style interface of Vulkan.

- Easy, conceptual design of render passes and pipelines.

- Unique ability to write all shader code directly in C++ (as class methods), without any need to use GLSL or other intermediate language. No separate compiler passes required. Any C++ 14 compliant compiler should work. No compiler extensions required. No hardware vendor or OS dependencies. All types of shaders supported.

- C++ shaders are automatically integrated into a pipeline and can access shader resources in straghtforward, object-oriented manner. Bindings and locations are automatically generated. Entire Vulkan shader interface is supported. Shaders may easily access: vertex inputs, uniform buffers, all kinds of image resources, attachments, push constants, builtin variables, inter-shader communication variables.

- C++ shaders can be subject to advanced C++ programming and design techniques: parametrization, templating, macros, modularization, OO design.

- Support for multithreading and automatic host synchronization of objects where Vulkan requires it.

- Compile-time detection of some Vulkan usage errors.

- Integration with third party libraries (currently GLM).

Current project status: pre-beta. All core features implemented. However, currently tested only on Windows/Visual Studio platform (CL and clang compilers). Other compilers and Linux / Android platform support in plans.

Your rating
Review this project


Recent Activities