Mike Bailey's Vulkan Home Page



Word Cloud from the notes:

This page was last updated: September 17, 2018

SIGGRAPHers, look here!

The Introduction to the Vulkan API course was Sunday, August 12, 9:00 - 12:15.
Amazingly enough, it will also be offered at SIGGRAPH Asia, December 3-6. Don't know the day and time yet.

Here are the abridged notes that we went over in the course: 1pp , 2pp , 4pp , 6pp

Here are the abridged notes with my annotations: 1pp , 2pp , 4pp , 6pp

Here is the ZIPped Visual Studio 2017 solution for the Vulkan program we will use in the course: Sample2017.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.

Check out the Khronos Group's Vulkan 1.1 Quick Reference Card. We will have a certain number of these to give away at the Vulkan course. They're laminated! They will also be available at the Khronos BOF Day (go down two more bullets).

We will also have Vulkan stickers and Bunny Buttons to give away at the course.

Come to Khronos BOF Day on August 15 to get more information on Vulkan, OpenGL, WebGL, glTF, OpenXR, etc! There is an evening reception as well. The whole thing is really good!

General Vulkan-related Announcements:


Here are some Vulkan resources I have found handy:


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

My Individual Notes

Vulkan Intro 1pp 2pp 4pp 6pp
Data Buffers 1pp 2pp 4pp 6pp
Vertex Buffers 1pp 2pp 4pp 6pp
Shaders and SPIR-V 1pp 2pp 4pp 6pp
GLFW 1pp 2pp 4pp 6pp
GLM 1pp 2pp 4pp 6pp
Drawing 1pp 2pp 4pp 6pp
Instancing 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
Sample Code 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
Vulkan Synchronization 1pp 2pp 4pp 6pp
Pipeline Barriers 1pp 2pp 4pp 6pp
Quaternions 1pp 2pp 4pp 6pp
My Quaternion Code Quat.h Quat.cpp    
Normal Maps and Parallax Mapping 1pp 2pp 4pp 6pp
Spherical Stereographics 1pp 2pp 4pp 6pp
Antialiasing and Multisampling 1pp 2pp 4pp 6pp
MultiPass Rendering 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 2017 solution:

  2. sample.cpp source code:

  3. PDF listing of sample.cpp:

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

  5. Shader sources:

  6. Informational and Debugging Output from sample.cpp

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

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