Skip to content
Permalink
main
Go to file
 
 
Cannot retrieve contributors at this time
249 lines (219 sloc) 23.5 KB

Vulkan Resources

We believe the true usefulness of Vulkan goes beyond the spec itself; it is an ecosystem of tools, documentation, and resources contributed by the community.

Get involved, submit your resources either with a pull requests on Github or email the webmaster at Khronos.org.

Khronos Vulkan® Resources

Drivers

SDK

  • ARM - Software Development Kit for ARM Mali Vulkan applications on Android
  • Google Vulkan - Android developer website to download the API, samples, and documentation
  • LunarG Vulkan SDK - Official Vulkan SDK by LunarG. for Windows, Linux and macOS
  • PowerVR - Native_SDK - C++ cross-platform 3D graphics SDK
  • Qualcomm - Adreno GPU SDK
  • NVIDIA L4T - Software Development Kit for Vulkan applications on NVIDIA Tegra

Engines

  • CRYENGINE - Crytek - powerful game development platform. Full engine source code. All features. 5% Royalty – Your First 5K € / $ of Annual Revenue per Project is Royalty Free
  • FNA - Accuracy-focused XNA 4.0 reimplementation. Fully Free and Open Source. The Vulkan renderer is used on over half a dozen platforms!
  • Granite - Example engine which notably includes a Task Graph implementation for aiding synchronization
  • idTech engine - id Software
  • Intrinsic Engine - Vulkan based cross-platform graphics and game engine
  • Lugdunum - modern cross-platform 3D engine built with Vulkan, glTF 2.0 and modern C++14
  • Serious Engine - CroTeam - multi-platform engine with support for next-gen and mobile platforms
  • Torque - open source solution
  • Unity Game Engine - Unity - a cross-platform game engine
  • Unreal Engine - Epic Games Unreal Engine offers a suite of game development tools made by game developers, for game developers. 5% royalty on gross revenue after the first $3,000 per game per calendar quarter.
  • UX3D Engine - cross-platform multi-threaded 3D rendering engine optimized for non-gaming industry
  • Xenko Game Engine - cross-platform game engine currently offering Vulkan support in Beta

Resources

Tools

Language Bindings

  • .NET VulkanCore - Vulkan graphics and compute API bindings for .NET Standard.
  • C# - Tanagra - C# binding generator for Vulkan.
  • D - ErupteD - D bindings for Vulkan.
  • D-Vulkan - D bindings for Vulkan.
  • Direct3D VK9 - Runs Direct3D 9 applications on Windows or Linux (/w Wine) over Vulkan.
  • Go - vulkan-go - Go-lang Bindings for Vulkan API
  • Haskell - Haskell bindings for Vulkan.
  • Java - LWJGL - Light Weight Java Graphics Library with Vulkan Bindings.
  • Julia - VulkanCore.jl - Julia binding for the Vulkan API.
  • Lisp - cl-vulkan - low to mid-level Common Lisp/CFFI bindings.
  • Pascal - PasVulkan - Vulkan header generator and Vulkan OOP-style API wrapper for Object Pascal.
  • Python - Python binding for Vulkan API.
  • Rust - Rust wrapper around the Vulkan API
  • SharpVk - C#/.NET Bindings for Vulkan, with NuGet package.
  • SharpVulkan - C# bindings for the Vulkan graphics API, used by the Xenko game engine.
  • Silk.NET - a collection of bindings for OpenGL, OpenAL, and Vulkan among many other APIs. Works with C# and F#
  • VulkanSharp - C# / .NET binding for the Vulkan API.

Libraries

  • Anvil Vulkan Framework - a cross-platform, open-source, MIT-licensed wrapper library for Vulkan, developed by AMD engineers.
  • bgfx - Cross-platform rendering library.
  • C++ DemoFramework - NXP GTEC C++11 cross-platform demo framework including lots of samples for Vulkan, OpenGL ES, OpenVX, OpenCL, OpenVG and OpenCV.
  • C++ libvc - Vulkan Compute for C++.
  • Cinder - a free and open source library for professional-quality creative coding in C++.
  • Falcor - Real-Time Rendering Framework.
  • glfw - multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input. - Immediate Mode Graphical User interface for C++ with minimal dependencies.
  • glo - this project will provide two front-ends: OpenGL and a modernized version OpenGL and multiple back-ends: Vulkan, Metal and DirectX12.
  • liblava - A modern C++ and easy-to-use framework.
  • MoltenVK - Vulkan implementation that uses Metal to run on iOS and OSX.
  • openFrameworks - Experimental Vulkan Renderer branch.
  • Pumex - Vulkan library oriented on high speed rendering
  • RendererLib - multi-plaform C++14 renderer library, matching closely Vulkan API, and allowing rendering through Vulkan or OpenGL 4.5 (so far).
  • Simple Vulkan Synchronization - Single-header, simplified Vulkan usage.
  • Spectrum - framework and abstraction layer.
  • SPIRV-Reflect - lightweight C/C++ library for extracting descriptions of descriptor bindings, input/output variables, and push constant blocks from SPIR-V shader binaries.
  • Visor - Vulkan Ignoble Software Rasterizer.
  • VkHLF - Vulkan High Level Framework.
  • Volk - volk is a meta-loader for Vulkan. It allows you to dynamically load entrypoints required to use Vulkan without linking to vulkan-1.dll or statically linking Vulkan loader
  • Vookoo - A header only C++ library for constructing Vulkan data structures.
  • vpp - Modern C++ vulkan abstraction.
  • Vulkan Memory Allocator - Easy to integrate Vulkan memory allocation library.
  • Vulkan On D3D12 - aims to make the Vulkan API available to platforms where only a D3D12 driver is available, such as Windows UWP.
  • vulkan-cpp - Google - Vulkan abstraction library using C++11 for memory, resource management, type and thread safety as well as system independency.
  • WSI-Window - multi-platform library to create a Vulkan window, and handle input events.

Tutorials

Beginner

Less Beginner

Demos & Samples

Presentations and Videos

Applications using Vulkan

  • 3DMark - Vulkan support added to 3DMark API.
  • DOOM - id Software - id Software released a patch in July 2016 giving Doom Vulkan support.
  • DOOM 3 BFG - GPL DOOM 3 BFG ported to Vulkan.
  • DotA - a free-to-play .multiplayer online battle arena (MOBA) video game developed and published by Valve Corporation.
  • Kishonti GFXBench - GFXBench 5 Aztec Ruins scene debuts at GDC for Vulkan API.
  • Quake - a Quake 1 port using Vulkan.
  • SteamVR - SteamVR and VR apps require a special build of the 64-bit Vulkan loader.
  • Talos Principle - a philosophical first-person puzzle game from Croteam.

Books and Learning

Books are now listed on the Khronos website.

Definitions

The following helpful defintions are taken from this Reddit Thread:

  • Queue : A queue onto which you submit commands that the GPU reads and executes (asynchronously).
  • Semaphore : A GPU-GPU synchronization object.
  • Fence : A GPU-CPU synchronization object.
  • Buffer : Linear data for use on the device.
  • Image : Texture data (including dimensions & format) for use on the device.
  • Sampler : A collection of state required for a shader to sample textures (format, filtering etc).
  • Pipeline : A compiled collection of GPU state setting commands, shaders and other such data. (Almost) everything the GPU needs to get ready for rendering/compute work.
  • PipelineCache : A cache used by the pipeline compilation process. It is used to avoid unnecessary recompilations and can be saved and restored to and from disk to speed up subsequent compilations (for instance, in subsequent runs of the application).
  • Swapchain : A "ring buffer" of images offered by the platform's presentation engine (desktop compositors etc) on which the application can render and then submit for presentation.
  • Pool : A fast memory allocator specifically designed for objects of some specific type (descriptors, command buffers etc).
You can’t perform that action at this time.