Beginners Guide to Vulkan

Recently I asked the community for beginner-friendly resources on Vulkan, and I compiled a list of them that you can find below. 

For the beginners reading this, Vulkan is a new graphics API-- in other words, a way to communicate with your GPU and make it do things. It's managed by the Khronos Group, which means it's under multi-company governance - being managed by the industry for the industry. Anyone who wants to do work on GPUs (not restricted to graphics programmers!) should at least have a high level knowledge of what it is. 

What am I looking for in a beginner-friendly tutorial? It should provide a description of what Vulkan is, in words that anyone can understand. After that it can assume some programming knowledge. No graphics API knowledge is assumed.

I compiled this list because I saw many discussing how Vulkan was too hard, or even recommending that beginners master OpenGL first. It reminds me of a lot of the attitudes surrounding C++ when I was first learning it-- yes, it's more lines of code, but that doesn't mean it can't be a fine place for a beginner to start learning. Beginner tutorials are great for people who want to end up doing it professionally, people who want a taste of it to see if they want to bother diving deeper, and for people who want to have a high level knowledge of modern GPU programming in case it's useful in the future.

Dustin puts my feelings to words nicely in his tutorial:

So how did I finally break through that wall of understanding?  I'll give you a hint. It begins with a V and ends with ulkan. "But Vulkan is the hardz" I hear you saying. "Shouldn't I start with something easy like OpenGL?"  Emphatically I say NO.  

The point is that Vulkan removes the mystery.  It spells things out, plain as day. And for a programmer, this is awesome!  It's intellectually honest about what it needs, and what it's doing. It will teach you what it really means to program a GPU. Don't think of all the extra code as a mountain to climb, but instead as a clearly articulated set of instructions to help you get where you need to go.

Go ahead and try out the below tutorials. I've found that everyone has a different favorite depending on learning style, background, and goals-- so if you find yourself getting stuck on one, move on to another and see if that's a better fit.

  1. VULKAN TUTORIAL
  2. A SIMPLE VULKAN COMPUTE EXAMPLE
  3. VULKANO: SAFE RUST WRAPPER AROUND THE VULKAN API
  4. OCULUS VIRTUAL REALITY SDK: "OCULUS ROOM TINY" MINIMAL VULKAN SAMPLE CODE (VK/MAIN.CPP)
  5. MINIMAL EXAMPLE OF USING VULKAN FOR COMPUTE OPERATIONS
  6. I AM GRAPHICS AND SO CAN YOU
  7. API WITHOUT SECRETS: INTRODUCTION TO VULKAN
  8. VULKAN TUTORIAL IN THE LUNARG SDK
Khronos, EGL, glTF, NNEF, OpenVG, OpenVX, OpenXR, SPIR, SPIR-V, SYCL, Vulkan and WebGL are trademarks or registered trademarks of The Khronos Group Inc. OpenCL is a trademark of Apple Inc. and OpenGL and OpenML are registered trademarks and the OpenGL ES and OpenGL SC logos are trademarks of Hewlett Packard Enterprise used under license by Khronos. All other product names, trademarks, and/or company names are used solely for identification and belong to their respective owners.
Posted by

Comments