CS 419v / 519v -- Vulkan

Winter Quarter 2023

http://cs.oregonstate.edu/~mjb/cs519v

Class Resources Page


Projects Handouts


Word Cloud from our class notes:


This page was last updated: March 8, 2023


Coronavirus Information

Your well-being is our #1 concern! I want all of you to have ready-access to the latest information. Find it here.

Stuff You Should Be Interested In:


What We Will Be Doing This Quarter

The goals of this course are to leave you "career-ready" (i.e., both work-ready and research-ready) for tasks that require the implementation of graphics rendering and computing algorithms in Vulkan.

You will have access to the graphics systems in OSU's Computer Graphics Education Lab (CGEL) in Batcheller Hall 244. I will take responsibility for making sure that Vulkan continues to work in the CGEL. You are welcome to try to install Vulkan on other systems, but I don't have enough experience with it to be much help if it doesn't work right away.

Access to the CGEL is by the RFID chip in your OSU ID card. I will be submitting a class roster to EECS so that you can all be enabled.

This is a different type of class. Be aware that:

Prerequisites

CS 450, 550, 491, 453, or 553. You must be demonstrably good at OpenGL to take this class. No exceptions!

Resources

Here are some Vulkan resources I have found handy:

Professor

The class is being taught by Professor Mike Bailey.

Office: Kelley 2117 (2nd floor, south side)
Phone: 541-737-2542
E-mail: mjb@cs.oregonstate.edu

Prof. Bailey's Office Hours:

Prof. Bailey's Office Hours for the WQ are:

  Prof. Bailey
Email mjb@cs.oregonstate.edu
Zoom-room Zoom
Mondays 3:30 - 5:00
Tuesdays 11:00 - 1:00
Wednesdays 2:00 - 4:00
Thursdays  
Fridays 4:30 - 6:00

or, anytime my office door is open
or, by appointment -- send email

Textbook

There will come a year when I have enough confidence in my own notes that we won't use a Vulkan textbook. This is not that year. So much of Vulkan is about detail. The following book does a good job with that. (My notes do a better job with general concepts.) You really should have ready access to this book, but it is probably not necessary to own one yourself. Feel free to form a consortium to buy one book and share it.

Graham Sellers, Vulkan Programming Guide, Addison-Wesley, 2017. The OSU bookstore is supposed to have it. It is also available through Amazon. ($60)

Other course material will consist of printable notes, web pages, and notes taken in class.

Handouts

LV = Lecture Video

Week #Topic
1 Vulkan Intro 1pp 2pp 4pp 6pp LV
1 Project Notes 1pp 2pp 4pp 6pp
1 Our Class Resources Page HTML       LV
1 Sample Code 1pp 2pp 4pp 6pp LV
1 Drawing 1pp 2pp 4pp 6pp LV
1 Shaders and SPIR-V 1pp 2pp 4pp 6pp LV
2 Data Buffers 1pp 2pp 4pp 6pp LV
2 Vertex Buffers 1pp 2pp 4pp 6pp LV
2 VMA 1pp 2pp 4pp 6pp LV
2 GLFW 1pp 2pp 4pp 6pp LV
2 GLM 1pp 2pp 4pp 6pp LV
2 A short GLM Primer HTML        
2 GLM Manual PDF        
2 Keytime Animation 1pp 2pp 4pp 6pp LV
2 Instancing 1pp 2pp 4pp 6pp LV
3 Descriptor Sets 1pp 2pp 4pp 6pp LV
3 Graphics Pipeline Data Structure 1pp 2pp 4pp 6pp LV
4 Textures 1pp 2pp 4pp 6pp LV
4 Queues and Command Buffers 1pp 2pp 4pp 6pp LV
4 Swap Chain 1pp 2pp 4pp 6pp LV
4 Test #1 Review   HTML
5 Push Constants 1pp 2pp 4pp 6pp LV
6 Physical Devices 1pp 2pp 4pp 6pp LV
6 Logical Devices 1pp 2pp 4pp 6pp LV
6 Dynamic State Variables 1pp 2pp 4pp 6pp LV
7 Getting Information Back from the Graphics System 1pp 2pp 4pp 6pp LV
7 A Review of OpenGL Compute Shaders 1pp 2pp 4pp 6pp
7 Vulkan Compute Shaders 1pp 2pp 4pp 6pp LV
7 Specialization Constants 1pp 2pp 4pp 6pp LV
8 Vulkan Synchronization 1pp 2pp 4pp 6pp LV
8 Pipeline Barriers 1pp 2pp 4pp 6pp LV
8 Antialiasing and Multisampling 1pp 2pp 4pp 6pp LV
8 MultiPass Rendering 1pp 2pp 4pp 6pp
9 Vulkan Ray-tracing 1pp 2pp 4pp 6pp LV
9 Efficient Ray-Triangle Intersections 1pp 2pp 4pp 6pp LV
9 The Ray Tracing Pipeline Data Structure 1pp 2pp 4pp 6pp LV
9 Acceleration Structures 1pp 2pp 4pp 6pp LV
9 Firing Rays 1pp 2pp 4pp 6pp LV
10 More Information PDF      
10 Test #2 Review   HTML
--- Creating a Video Demo of a Graphics Project 1pp 2pp 4pp 6pp

Class Schedule

To see an Academic Year calendar, click here.

Class time is: Tuesdays and Thursdays, 4:00 - 5:30.

Unless otherwise specified, all classes will be in Wenniger 116.

There will be no class on the Thursdays of January 12, February 9, and March 9.

This schedule is my best guess right now. Consider it to be approximate.
Week Starting On Topics
1 Jan 10 Go over the syllabus.
Filling out the alias web form.
Intro to Vulkan.
The Sample Code
Drawing
Project #1.
Shaders and SPIR-V
2 Jan 17 Data Buffers
VMA
GLFW and GLM
Instancing
Descriptor Sets
3 Jan 24 Descriptor Sets
The Graphics Pipeline Data Structure
4 Jan 31 Textures
Queues and Command Buffers
The Swap Chain
5 Feb 7 Test #1 Review
Test #1 goes live at 12:01 PM on Wednesday, February 8. It closes at 23:59 on Sunday, February 12. It wil consist of 40 questions, on Canvas, multiple choice, open notes.
6 Feb 14 Happy Valentines Day!
Push Constants
Physical and Logical Devices
7 Feb 21 Dynamic State Variables
Getting Information Back from the Graphics System
Vulkan Compute Shaders
Click here to see the OpenGL version of the Compute Shader particle system from our class notes.
Specialization Constants
8 Feb 28 Synchronization
Pipeline Barriers
Antialiasing and Multisampling
Multipass Rendering
9 Mar 7 Vulkan Ray-tracing
Link to the YouTube video.
10 Mar 14 Test #2 review.
FW Mar 21 Test #2 goes live at 12:01 PM on Wednesday, March 22. It closes at 23:59 on Sunday, March 26. It wil consist of 40 questions, on Canvas, multiple choice, open-notes.

Projects

Project # Points Title Due Date LV
1 100 Create your own 3D object in Vulkan. January 20 LV
2 100 Keytime Animation of an OBJ Object with Vulkan and GLM January 28 LV
3 100 Drawing using an Index Buffer February 11 LV
4 100 Instancing February 18 LV
5 100 Push Constants for Robot Animation February 28 LV
6 100 Vulkan Ray-Tracing March 21, 23:59:59, no BDs


Project Turn-In Procedures

Your project turnins will be electronic. Your electronic turnin will be done at http://teach.engr.oregonstate.edu and will consist of a PDF report. The PDF file should include:

Electronic submissions are due at 23:59:59 on the listed due date.

Your project will be graded and the score posted to the class web page.
If you want to know why you did not receive full credit, send me an email asking about it, or see me during Office Hours.
You have one week to do this.


Bonus Days and Late Assignments

Projects are due at 23:59:59 on the listed due date, with the following exception:

Each of you has been granted 5 Bonus Days, which are no-questions-asked one-day extensions which may be applied to any project, subject to the following rules:

  1. No more than 2 Bonus Days may be applied to any one project
  2. Bonus Days cannot be applied to tests
  3. Bonus Days cannot be applied such that they extend a project due date past the start of Test #2.

Grading

Project scores will be posted on Canvas. If you lost points, I will leave you a Canvas grade-note telling you why. If you have questions on that, please email me rather than leaving a follow-on Canvas note. (It takes me a long time to notice Canvas notes.) I can respond to you much faster if you use email.

CS 519v will be graded on a fill-the-bucket basis. There will be 6 projects, two tests, and 10 quizzes. You get to keep all the points you earn.

Your final grade will be based on your overall class point total. Based on an available point total of 900, grade cutoffs will be no higher than:

Points Grade
850
830 A- 
810 B+
790
770 B- 
750 C+
730
710 C- 
690 D+
670
650 D- 

Notice that this grade scale is not 90%-80%-70%-60%. That is because I just do a soft grade on the projects.

Downloadable Files

Here is a folder with some of my favorite OBJ files.

  1. Complete Windows Visual Studio 2019 Vulkan solution:
    Sample2019.zip

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

  3. Shader sources:
    sample-vert.vert
    sample-frag.frag

  4. Informational and Debugging Output from sample.cpp on the A6000 graphics cards.
    VulkanDebugA6000.txt

Class Rules


MySSP: Mental Health Support for Students

MySSP @ OSU is an app that gives all OSU students, including Ecampus students, 24/7 access by text or phone with a licensed mental health counselor (MySSP stands for “My Student Support Program”). The app makes it easy to schedule short-term counseling appointments with the same ongoing counselor and provides educational materials covering mental health topics. Students can communicate with a counselor in five different languages (Mandarin, Cantonese, French, Spanish or English); additional language options are available upon request. Students can download the Anytime Anywhere: MySSP @ OSU and learn more about the service at http://beav.es/anytimeanywhere. For questions, please contact Bonnie Hemrick ( bonnie.hemrick@oregonstate.edu ), Director of Mental Health Promotion.

Establishing a Positive Community

It is important you feel safe and welcome in this course. If somebody is making discriminatory comments against you, sexually harassing you, or excluding you in other ways, contact the professor, your academic advisor, and/or report what happened at https://studentlife.oregonstate.edu/studentconduct/ reporting so we can connect you with resources.

Academic Dishonesty

You are expected to do your own work. Helping each other, with explanations or clarifications, is OK. Sharing code, however, is considered cheating. Anyone caught cheating will fail this class, and the matter will be turned over to the Dean's Office.

You are expected to read and understand Oregon State University's Statement of Expectations for Student Conduct, found here: https://beav.es/codeofconduct . If there is any parts of this document that you don't understand, ask me!

Students With Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

Student Bill of Rights

OSU has twelve established student rights. They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus. See: https://asosu.oregonstate.edu/advocacy/rights

Religious Holidays

Oregon State University strives to respect all religious practices. If you have religious holidays that are in conflict with any of the requirements of this class, please see me immediately so that we can make alternative arrangements.

Life Events

As {John Lennon? Allen Saunders?} has said: "Life is what happens to you while you're busy making other plans". I care about you as a person. When life happens to you, send me an email and come see me. I might be able to help. But I surely can listen. You are not alone.

Reach Out for Success

University students encounter setbacks from time to time. If you encounter difficulties and need assistance, it's important to reach out. Consider discussing the situation with me or an academic advisor. Learn about resources that assist with wellness and academic success at http://oregonstate.edu/ReachOut. If you are in immediate crisis, please contact the Crisis Text Line by texting OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255)

Basic Needs

Success at OSU means knowing and using your resources. One helpful resource is the community of staff available at the Basic Needs Center (BNC) for support (bnc@oregonstate.edu, 541-737-3747, https://studentlife.oregonstate.edu/bnc). Students can drop in during open hours and talk with a BNC student leader for resources, ideas and strategies connected to basic needs challenges. The BNC is often known for its food pantry but there are other resources connected to groceries and affording food and staff who can help you work through housing stressors. Undergraduate students, living in Oregon, are especially encouraged to explore SNAP (up to $236 in grocery money each month for eligible students) as a resource. Domestic undergraduate students living in Oregon are more likely than not to be eligible for SNAP. BNC staff are skilled with helping students navigate this process.

Additionally, the BNC Textbook Lending Program offers students the opportunity to check out required textbooks for the academic term.

Furthermore, if you are comfortable doing so, please talk with Professor Bailey. He will do everything he can to help you.

Other Useful Online Graphics and Shader Information