6 minute read

This is the paper page of our paper “The Road to Vulkan: Teaching Modern Low-Level APIs in Introductory Graphics Courses” which has been accepted and presented at Eurographics 2022 in Reims, France.

Differences between OpenGL and Vulkan

Figure 1: Differences between OpenGL and Vulkan. We argue that the highlighted aspects in the middle of the slide speak in favor of using Vulkan in introductory graphics courses.




For over two decades, the OpenGL API provided users with the means for implementing versatile, feature-rich, and portable real-time graphics applications. Consequently, it has been widely adopted by practitioners and educators alike and is deeply ingrained in many curricula that teach real-time graphics for higher education. Over the years, the architecture of graphics processing units (GPUs) incrementally diverged from OpenGL’s conceptual design. The more recently introduced Vulkan API provides a more modern, fine-grained approach for interfacing with the GPU. Various properties of this API and overall trends suggest that Vulkan could soon replace OpenGL in many areas. Hence, it stands to reason that educators who have their students’ best interests at heart should provide them with corresponding lecture material. However, Vulkan is notoriously verbose and rather challenging for first-time users, thus transitioning to this new API bears a considerable risk of failing to achieve expected teaching goals. In this paper, we document our experiences after teaching Vulkan in an introductory graphics course side-by-side with conventional OpenGL. A final survey enables us to draw conclusions about perceived workload, difficulty, and students’ acceptance of either approach and identify suitable conditions and recommendations for teaching Vulkan to undergraduate students.


We argue that teaching and learning Vulkan in introductory graphics courses already comes with the benefit of a deep understanding of the underlying graphics hardware. For one thing, is it a much more modern API (as indicated in Figure 1) and is therefore aligned much better with modern hardware and requirements (e.g., in terms of concurrency on the host-side). Furthermore, thanks to its low-level nature, it abstracts modern GPUs on a lower level, giving more insights to what is going on under the hood, while with OpenGL a lot of that is abstracted away and handled by the drivers. We were successfully able to transition the programming framework and lecture materials used in our course “Introduction to Computer Graphics” to Vulkan.

OpenGL framework vs. Vulkan framework in our course

Figure 2: Overview of the differences between the two frameworks used for the OpenGL route vs. the Vulkan route in our introductory graphics course.

In order to stay within the workload boundaries for our students (which are 3 credit hours according to the European Credit Transfer and Accumulation System), we had to add some abstractions to our Vulkan programming framework since otherwise, the workload and the lines of code to be implemented by our students would have been too high. The overview of these differences is shown in Figure 2.

In particular, we abstracted the following parts of Vulkan through our framework:

  • Swap chain handling and its synchronization
  • Render pass creation
  • Framebuffer creation
  • Parts of graphics pipeline creation
  • Memory management

This led to a manageable workload for our students and we got positive feedback. Students enjoyed learning a modern, relevant graphics API which gives insights into the inner workings of modern GPUs.

In terms of lectures, we created the Vulkan Lecture Series, which represents the way how we think that Vulkan should be introduced properly. It has been perceived well and has even been listed on Khronos’ very own vulkan.org under the learning resources in the tutorials section.



  title =      "The Road to Vulkan: Teaching Modern Low-Level APIs in
               Introductory Graphics Courses",
  author =     "Johannes Unterguggenberger and Bernhard Kerbl and Michael
  year =       "2022",
  month =      apr,
  booktitle =  "Eurographics 2022 - Education Papers",
  event =      "Eurographics 2022",
  isbn =       "978-3-03868-170-0",
  issn =       "1017-4656",
  location =   "Reims",
  pages =      "31--39",
  keywords =   "vulkan, gpu, opengl",
  URL =        "https://www.cg.tuwien.ac.at/research/publications/2022/unterguggenberger-2022-vulkan/",