Demo running on an M3 Macbook Pro
Vulkan Compute with Graphics is a demonstration of a theoretical concept, where physics objects and their relationships with the simulation world are entirely simulated on the GPU. This that for the entire length of the runtime, there is no copying of data from the host (CPU) to the local device (GPU) and all PhysicsObject
data is stored in local device memory.
Vulkan SDK 1.2 or later
CMake 3.25.3 or later
(Vulkan packages if building on Linux)
$ git clone --recursive https://github.com/Michael-Warrick/Vulkan-Compute-with-Graphics.git
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build . --config Release
$ ./Vulkan-Compute-with-Graphics.exe
$ ./Vulkan-Compute-with-Graphics
GLFW - Cross-platform windowing API.
GLM - Mathematics library.
ImGui - Immediate mode GUI library.
stb_image - Helper library for loading common image formats.
tiny_obj_loader - Helper library for loading OBJ (Wavefront) 3D models.
Vulkan-Hpp - C++ Bindings for Vulkan
Vulkan Documentation
Vulkan Tutorial
Sascha Willems: Vulkan C++ examples and demos