Vulkan

repo: vinjn/awesome-vulkan
category: Miscellaneous


Awesome Vulkan Awesome

<img src="https://raw.githubusercontent.com/SaschaWillems/Vulkan/master/images/vulkanlogoscene.png" alt="Vulkan demo scene" height="256px">

A curated list of awesome Vulkan libraries, debuggers and resources. Inspired by awesome-opengl and other awesome-... stuff.

Hardware Support

SDK

Document

Tutorial

Apps

Samples

Libraries

  • 2D

  • Compute

    • libvc - Vulkan Compute for C++. [LICENSE]
    • Vulkan Kompute - Blazing fast and lightweight Vulkan Compute Framework optimized for advanced GPU processing usecases. [Apache License 2.0]
    • ncnn - High-performance neural network inference framework with Vulkan based GPU inference. [BSD 3-clause]
    • vuh - Vulkan-based C++ GPGPU computing framework. [MIT]
    • VkFFT - Efficient Vulkan FFT library [MPL-2.0 License]
  • Low Level

    • Vulkan Memory Allocator - Easy to integrate Vulkan memory allocation library from AMD. [MIT]
      • [VulkanMemoryAllocator-Hpp] (https://github.com/malte-v/VulkanMemoryAllocator-Hpp) - C++ Bindings for VMA, like Vulkan-HPP
    • Fossilize - serialization format for various persistent Vulkan object types. [MIT]
    • vk-bootstrap - C++ utility library to jump start Vulkan development by automating instance, physical device, device, and swapchain creation. [MIT]
    • Google's vulkan-cpp-library - Vulkan abstraction library using C++11 for memory, resource management, type and thread safety as well as system independency. [Apache]
    • FrameGraph - Vulkan abstraction layer that represent frame as a task graph. [BSD 2-clause]
    • V-EZ - light-weight middleware layer for the Vulkan API targeting Professional Workstation ISVs. [MIT]
    • Vookoo - Vookoo is a set of dependency-free utilities to assist in the construction and updating of Vulkan graphics data structres. [MIT]
    • vpp - Modern C++ Vulkan Abstraction focused on performance and a straightforward interface. [MIT]
    • VulkanSceneGraph - Vulkan/C++17 scene graph project, successor to OpenSceneGraph.
    • Vulkan-WSIWindow - Multi-platform library to create a Vulkan window, and handle input events. [Apache License 2.0]
    • Screen 13 - An easy-to-use Vulkan render graph for Rust. [MIT]
  • Frameworks, Engines, Higher Level Rendering

  • Other API Interop and Implementations

    • visor - Vulkan Ignoble Software Rasterizer. [MIT]
    • VulkanOnD3D12 - Vulkan API for D3D12. [Apache License 2.0]
    • rostkatze - C++ implementation of Vulkan sitting on D3D12 🐈[Apache License 2.0]
    • VK9 - Direct3D 9 compatibility layer using Vulkan
    • VUDA - header-only lib that provides a CUDA Runtime API interface. [MIT]
    • clspv - prototype compiler for a subset of OpenCL C to Vulkan compute shaders. [Apache License 2.0]
    • MoltenVK - run Vulkan on iOS and macOS. [Apache-2.0]
    • Zink - OpenGL implementation on top of Vulkan, part of Mesa project. [MIT]
    • [glo / OpenGL Overload](https://github.com/g-truc/glo) - OpenGL implementation on top of Vulkan.
    • gfx-portability - Vulkan Portability implementation on Metal and D3D12, based on gfx-rs.
  • Raytracing

    • Quartz - Physically based Vulkan RTX path tracer with a declarative ES7-like scene description language. [LGPL-3.0]
  • Scientific

    • datoviz - High-performance GPU interactive scientific data visualization with Vulkan. [MIT]
    • iMSTK - C++ toolkit for building surgical simulations with Vulkan and VTK backends. [Apache License 2.0]
  • Shaders

    • glslang - Library for compiling glsl to spirv [BSD 3-Clause]
    • SPIRV-Cross - Library for reflection of spirv, simplify the creation of Vulkan pipeline layouts [ Apache-2.0 License]
  • Outdated ⚠️

    • VkHLF - Vulkan High Level Framework. LICENSE(https://github.com/nvpro-pipeline/VkHLF/blob/master/LICENSE.txt)

Bindings

  • ash - Vulkan bindings for Rust. [MIT]
  • gfx-rs - A low-overhead Vulkan-like GPU API for Rust. [Apache License 2.0]
  • libvulkan.lua - Lua bindings for Vulkan.
  • dvulkan - Auto-generated D bindings for Vulkan.
  • ErupteD - Another Auto-generated D bindings for Vulkan.
  • flextGL - Minimal Vulkan header/loader generator and the blog post about it.
  • Silk.NET - C# bindings for Vulkan and others. [MIT]
  • vulkan - Haskell bindings for Vulkan and Vulkan Memory Allocator [BSD-3-Clause]
  • nvk - JavaScript bindings for Vulkan. [MIT]
  • racket-vulkan - Racket bindings for Vulkan with detailed implementation notes. [MIT]
  • Vulkan-hpp Open-Source Vulkan C++ API originated from NVIDIA and the blog about it.
  • VulkanSharp - C# bindings for Vulkan. [MIT]
  • Vulkano - Safe and rich Rust wrapper around the Vulkan API. [MIT]
  • LWJGL - Lightweight Java Game Library 3 has Vulkan bindings. [BSD]
  • SharpVk - C# bindings for Vulkan with Linq-to-SPIR-V & NuGet package. [MIT]
  • vulkan - Ultimate Python bindings for Vulkan generated with CFFI. [Apache Licence 2.0]
  • vulkan-go - Go bindings for Vulkan. [MIT]
  • PasVulkan - Vulkan bindings plus high-level wrapper library for Object Pascal [Zlib]
  • vulkan-zig - Vulkan binding generator for Zig [MIT]
  • VK², Kotlin Wrapper for Vulkan: code expressiveness and safety meet graphic power [Apache License 2.0]
  • Vortice.Vulkan - .NET Standard 2.0 and .NET5 C# bindings [MIT]
  • [Raw Node.js Vulkan API](https://github.com/hydra2s/node-vulkan-api) - A new Vulkan bindings for Node.JS, similar with LWJGL-3 or NVK.
  • Deno Vulkan - Vulkan API bindings for Deno. [Apache Licence 2.0]

Tools

  • Nsight™ Visual Studio Edition 5.2+.
  • LoaderAndValidationLayers - from KhronosGroup. [Apache Licence 2.0]
  • renderdoc - by baldurk, a stand-alone graphics debugging tool. [MIT]
    • RDCtoVkCpp - converts RenderDoc Vulkan capture to compilable and executable C++ code. [MIT]
  • VulkanTools - LunarG's tools including layers and configurator. [Apache Licence 2.0]
  • VKtracer - universal and easy-to-use profiler for Vulkan.
  • CodeXL - CodeXL goes open source. [MIT]
  • Qualcomm Adreno GPU Tools - samples, Adreno recommendation layer, best practice docs for Adreno GPU.
  • Qualcomm Snapdragon Profiler - includes Vulkan traces and frame captures for Adreno GPU.
  • Arm Mobile Studio - includes the Arm Graphics Analyzer to trace graphics performance issues easily, and Arm Streamline performance analyzer, for a whole-system view of performance to determine bottlenecks quickly across both the CPU and GPU.
  • [Open Capture and Analytics Tool (OCAT)](https://github.com/GPUOpen-Tools/OCAT) - provides an FPS overlay and performance measurement for D3D11, D3D12, and Vulkan. [MIT]
  • gapid - Graphics API Debugger, can trace and replay Android OpenGL ES and Vulkan applications. [Apache License 2.0]
  • Arm - PerfDoc - a validation layer against the Mali Application Developer Best Practices document. [MIT]
  • glsl_trace - library for shader debugging and profiling for Vulkan and OpenGL. [MIT]
  • MangoHud - Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load. [MIT]

Books

Papers

Khronos

Community

License

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.

Contributing

Please see CONTRIBUTING for details.

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?