Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maikebing/vpp
VPP is a high-level C++ rendering and GPU computation API based on Vulkan.
https://github.com/maikebing/vpp
Last synced: 20 days ago
JSON representation
VPP is a high-level C++ rendering and GPU computation API based on Vulkan.
- Host: GitHub
- URL: https://github.com/maikebing/vpp
- Owner: maikebing
- License: bsd-2-clause
- Created: 2020-11-27T02:31:30.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2020-11-27T02:32:13.000Z (about 4 years ago)
- Last Synced: 2024-04-13T23:15:39.344Z (9 months ago)
- Language: C++
- Homepage: https://osdn.net/projects/vpp
- Size: 3.97 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
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.