This page was last updated: July 26, 2020

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 is the abridged combined set of PDF Vulkan notes, that we will be going over in the SIGGRAPH course:
1pp,
2pp,
4pp,
6pp
Here is the full combined set of PDF Vulkan notes:
1pp,
2pp,
4pp,
6pp
Here is the MP4 video: video.
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.
My Individual Notes

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!)
| 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 | ||||
| Creating a Video Demo of a Graphics Project | 1pp | 2pp | 4pp | 6pp |
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.
Here are some Vulkan-related resources I have found handy:
| Graham Sellers, Vulkan Programming Guide, Addison-Wesley, 2017. |
Downloadable Files
Sample2019.zip
Sample2017.zip
sample.cpp
8-point
9-point
10-point
SampleVertexData.cpp
sample-vert.vert
sample-frag.frag
VulkanDebug.txt
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 |
| 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 |
| Whirlwind |
| Grades 4-12 Outreach |
| Scratch |
| SketchUp |
| Blender |
| TinkerCad |
| Processing |
Comments? Suggestions? Questions? Contact:
Other Useful Online Graphics and Shader Information
https://developer.nvidia.com/sites/default/files/akamai/gameworks/blog/munich/mschott_vulkan_multi_threading.pdf
https://developer.nvidia.com/vulkan-android#samples
https://github.com/SaschaWillems/Vulkan/blob/master/examples/multithreading/multithreading.cpp
https://developer.nvidia.com/vulkan-android#samples
Mike Bailey
Oregon State University, Computer Science
2117 Kelley Engineering Center
Corvallis, OR 97331-5501
541-737-2542
mjb@cs.oregonstate.edu