Permalink
Find file Copy path
240 lines (209 sloc) 21.7 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

Resources

Tools

Language Bindings

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.
  • 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.
  • 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).