Mike Bailey's Vulkan Page



Word Cloud from the notes:

This page was last updated: March 6, 2020

SIGGRAPHers, look here!

SIGGRAPH Asia 2019 (held this year in Brisbane, Australia) accepted the Vulkan course -- woo-hoo! The Introduction to the Vulkan API course was Tuesday, November 19, 2:15 - 6:00. Thanks to all who came!

Here are the notes, updated the evening of November 19:

Here is the ZIPped Visual Studio 2019 solution for the Vulkan program we will use in the course: Sample2019.zip

Here is the sample.cpp program from that ZIPped solution.

Here is the SampleVertexData.cpp file that defines the geometry from that ZIPped solution.

Here is the vertex shader, sample-vert.vert, from that ZIPped solution.

Here is the fragment shader, sample-frag.frag, from that ZIPped solution.

Here is the Khronos Group's Vulkan 1.1 Quick Reference Card.

Creative Commons License
These materials are licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
(This means that you are free to go off and use these for anything non-commercial so long as you give proper attribution. Have fun!)


Here are some Vulkan-related resources I have found handy:

General Vulkan-related Fun:


Graham Sellers, Vulkan Programming Guide, Addison-Wesley, 2017.
It is available through

My Individual Notes

Vulkan Intro 1pp 2pp 4pp 6pp
Sample Code 1pp 2pp 4pp 6pp
Drawing 1pp 2pp 4pp 6pp
Vertex Buffers 1pp 2pp 4pp 6pp
Data Buffers 1pp 2pp 4pp 6pp
Shaders and SPIR-V 1pp 2pp 4pp 6pp
Instancing 1pp 2pp 4pp 6pp
GLFW 1pp 2pp 4pp 6pp
GLM 1pp 2pp 4pp 6pp
Descriptor Sets 1pp 2pp 4pp 6pp
Textures 1pp 2pp 4pp 6pp
Graphics Pipeline 1pp 2pp 4pp 6pp
Queues and Command Buffers 1pp 2pp 4pp 6pp
Swap Chain 1pp 2pp 4pp 6pp
Physical Devices 1pp 2pp 4pp 6pp
Logical Devices 1pp 2pp 4pp 6pp
Dynamic State Variables 1pp 2pp 4pp 6pp
Push Constants 1pp 2pp 4pp 6pp
Getting Information Back from the Graphics System 1pp 2pp 4pp 6pp
A Review of OpenGL Compute Shaders 1pp 2pp 4pp 6pp
Vulkan Compute Shaders 1pp 2pp 4pp 6pp
Specialization Constants 1pp 2pp 4pp 6pp
Vulkan Synchronization 1pp 2pp 4pp 6pp
Pipeline Barriers 1pp 2pp 4pp 6pp
Antialiasing and Multisampling 1pp 2pp 4pp 6pp
MultiPass Rendering 1pp 2pp 4pp 6pp
Ray Tracing 1pp 2pp 4pp 6pp
Spherical Stereographics 1pp 2pp 4pp 6pp
More Information PDF      
Creating a Video Demo of a Graphics Project 1pp 2pp 4pp 6pp

Downloadable Files

  1. Self-contained Windows 2019 solution:

  2. Self-contained Windows 2017 solution:

  3. sample.cpp source code:

  4. PDF listing of sample.cpp:

  5. SampleVertexData.cpp cube array-of-structures:

  6. Shader sources:

  7. Informational and Debugging Output from sample.cpp

Projects We Used in the Oregon State University Vulkan Class

Project # Points Title
1 100 Create your own 3D object in Vulkan.
2 100 Add Lighting to Your Own Vulkan Program
3 100 Drawing using an Index Buffer
4 100 Instancing
5 100 Push Constants for Robot Animation

Other Notes You Might Enjoy!

University Classes
Intro to Computer Graphics
Computer Graphics Shaders
Scientific Visualization
Parallel Programming
CS Skills for Simulation and Game Programming

A Whirlwind Tour of Computer Graphics

Grades 4-12 Outreach

Other Useful Online Graphics and Shader Information

Comments? Suggestions? Questions? Contact:
Mike Bailey
Oregon State University, Computer Science
2117 Kelley Engineering Center
Corvallis, OR 97331-5501