VulkanExplicit API for Graphics and Compute on GPUs
Introduction to Vulkan
The best short introduction to Vulkan for developers that we have so far is written by baldurk. He is the author of RenderDoc, a graphics debugger with Vulkan support.
I’ve written this post with a specific target audience in mind, namely those who have a good grounding in existing APIs (e.g. D3D11 and GL) and understand the concepts of multithreading, staging resources, synchronisation and so on but want to know specifically how they are implemented in Vulkan. … Mostly, this is the document I wish had already been written when I first encountered Vulkan – so for the most part it is tuned to what I would have wanted to know.
Vulkan Information and News
Posted by Andrew
Category Vulkan News
Posted by Andrew
Category Shader Tools
Vulkan™ is an explicit API. That translates to verbosity and having to worry about a lot of detail that you won’t be used to from OpenGL. Krust is my Vulkan codebase and currently offers a simple GLUT-like framework to open a window and get input for a demo with a few lines of code. It sets up and runs a default swapchain.
- Main Khronos Vulkan page: https://www.khronos.org/vulkan, and resources page.
- The official Valve and LunarG Vulkan SDK: http://lunarg.com/vulkan/
- Official assembler/disassembler for SPIR-V, the portable binary IR for Vulkan Shaders: https://github.com/KhronosGroup/SPIRV-Tools/
- Khronos official Vulkan resources. Fork that and make a pull request to contribute.
- Baldurk's Introduction to Vulkan
- Henri Tuhola's Vulkan API Overview
- API without Secrets: Introduction to Vulkan, by Pawel L., Intel, April 2016.
- ARM Mali Vulkan SDK Tutorials
- José Henriques
- Vulkan-sxs by Philip Taylor. Read the README.md in each sub-folder.
- List of Beginner's Guides to Vulkan: This list assumes some programming knowledge but not much else.
Vulkan Wrappers, Helpers, and Utility Libraries
- Khronos C++ Wrapper: Originally a side project of a member of the NVIDIA workstation graphics team, this C++ wrapper gives a safer interface than the raw C API, some help with RAII for API objects, and optional exceptions.
- ARM Mali PerfDoc:
A standard Vulkan
Layer, able to run over any Vulkan implementation, which checks for performance pitfalls specific to ARM Mali.
- VKTS (VulKan ToolS) library, by Norbert Nopper.
- Vulkano: A Rust language wrapper for Vulkan by Tomaka who has worked with Mantle.
- OpenFrameworks Vulkan Renderer: Provides a GL-like context interface over Vulkan.
Example Vulkan Code
- Norbert Nopper: Samples using VKTS (VulKan ToolS) library.
- Sascha Willems: Vulkan examples and demos.
- Google Android Samples
Presentations on Vulkan
- Migrating from OpenGL to Vulkan, Mark Kilgard, NVIDIA, January 19, 2016. PDF
- C++ API Layer on top of Vulkan, Markus Tavenrath, NVIDIA, 2016. PDF
- High Performance Vulkan: Lessons Learned from Source 2, John McDonald, Valve, 2016. PDF
- Vulkan Overview and Roadmap for NVIDIA GPUs, Piers Daniell, NVIDIA, January 19 2016. PDF
Projects Using Vulkan
- Hatchit: Open Source 3D Game Engine rendering through Vulkan and DX12. Vukan Headers. Vulkan Implementation Code.
Discussion & Q&A
Other Vulkan Resource Pages
- Roundup of Vulkan information by Alexander Overvoorde, the author of open.gl: http://vulkan-tutorial.com/
- Another roundup of Vulkan information by TheBuzzSaw: https://sites.google.com/site/cachefriendly/vulkan
- Yet another Vulkan link roundup by Renderpipeline (Robert Menzel).
- jcoder58's Vulkan Resources.
- [PRERELEASE]Loads of code and information in these SIGGRAPH 2015 Presentations - An Overview of Next-Generation Graphics APIs, "This introductory course provides an overview of switching from current to next-gen APIs; discusses similarities between next-gen APIs; covers basic API details for DirectX12, Vulkan, etc.; explores specific case studies from developers working with these APIs": http://nextgenapis.realtimerendering.com/
- [PRERELEASE]Imagination Technology Vulkan
(Videos and blog posts)
- [PRERELEASE]Vulkan: One API for all Platforms, by Tobias Hector of Imagination Technology, October 19th 2015.
- November 2015, Vulkan: Scaling to multiple threads, by Tobias Hector of Imagination Technologies
- November 2015, Vulkan: High efficiency on mobile, by Tobias Hector of Imagination Technologies
- October 2015, Vulkan: One API for all platforms, by Tobias Hector of Imagination Technologies
- August 2015, Vulkan on NVIDIA GPUs, by Piers Daniell
- August 2015, 3D Graphics API State of the Union, Vulkan Status Update at SIGGRAPH
- March 2015, Vulkan and SPIR-V Session at GDC
- March 2015, Vulkan - The Future of High Performance Graphics, at
- Johan Andersson, Introducing Vulkan
- Pierre-Loup Griffais of Valve on High Level Concepts in Vulkan
- Dan Baker on Vulkan and Many Threads
- Niklas Smedberg of Epic Games, Vulkan Binding Model
- Aras Pranckevičius of Unity on Vulkan shaders and SPIR-V
- John McDonald of Valve on Layers, Loader, SDK, and tools for Vulkan line the GLAVE debugger
- March 2015, Oxide Games Show Their Game, Engine, and a only a tiny bit about Vulkan (basically just that they are using it)