This page was last updated: July 29, 2023

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 set of PDF Vulkan notes, that we will be going over in the SIGGRAPH course:
1pp,
2pp,
4pp,
6pp
Here is the "More Information" PDF document that goes with the notes: More Information
Here is the full set of PDF Vulkan notes (this is more than we can cover in the SIGGRAPH course, but might be usful to have access to):
1pp,
2pp,
4pp,
6pp
Here is the ZIPped Visual Studio 2019 solution for the Vulkan program we will use in the course: Sample2019-COLOREDCUBE.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 Reference Card.
Here is a list of good computer graphics and Vulkan references More Information document
The 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 |
| Vulkan Ray-tracing | 1pp | 2pp | 4pp | 6pp |
| Efficient Ray-Triangle Intersections | 1pp | 2pp | 4pp | 6pp |
| The Ray Tracing Pipeline Data Structure | 1pp | 2pp | 4pp | 6pp |
| Acceleration Structures | 1pp | 2pp | 4pp | 6pp |
| Firing Rays | 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-COLOREDCUBE.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-COLOREDCUBE.zip
sample.cpp
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 |
| Oregon State 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 K-12 Outreach |
| Blender |
| Processing |
| Scratch |
| SketchUp |
| TinkerCad |
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