Rev. | Time | Author | Message |
---|---|---|---|
r5 | 2019-04-01 19:00:08 | softerg | Added license and readme files. |
r4 | 2019-04-01 16:53:48 | softerg | Release VPP-0.8.1 |
r3 | 2018-12-26 13:53:07 | softerg | Release VPP-0.7.1: initial public release (alpha) |
r2 | 2018-12-26 13:35:17 | softerg | testing repository |
r1 | 2018-12-26 13:31:37 | softerg | vpp repo import |
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. All C++ 14 compliant compilers supported. No compiler extensions required. No hardware vendor / 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, all 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). - Easier management of Vulkan extensions with automatic dependency resolving for common extensions. - Selected extension functionality seamlessly built-in into VPP API (e.g. 64-bit atomic variables). Current version (0.8.1 alpha) supports Visual Studio 2015 and 2017 builds. Later versions are planned to support also Linux and other targets using GCC and CLang toolchains. VPP itself requires only C++ 14 compliant compiler, no special or vendor-specific technology is utilised. For build instructions, see the HTML documentation in 'docs' subdirectory. Click on "Related pages" button and select the "How to build and use VPP under Visual Studio" topic. The package also includes a set of tests and examples. They are located in 'test' subdirectory.