Vulkan

Wed 03 April 2019


The new API for rendering graphics and interfacing with GPU cards.

Components

  1. Vulkan provides the rendering. It doesn't provide window managment, for this we need something like glfw.
  2. Create a VkInstance. This is how to interact with vulkan and the graphics cards.
  3. Setup debug layers VkDebugUtilsMessengerCreateInfoEXT to see what is going on when submitting commands and using vulkan when debugging.
  4. Create a Vulkan surface for the specified window.
  5. Pick a VkPhysicalDevice by looking at the cards and their capabilities via vkEnumeratePhysicalDevices.
  6. Create a logical device; VkDeviceCreateInfo.
    1. Include queues (VkDeviceQueueCreateInfo).
    2. Unclear what queues exists vs. need to be created
    3. Finally get references to the requested device queues : vkGetDeviceQueue(device, indices.graphicsFamily.value(), 0, &graphicsQueue); vkGetDeviceQueue(device, indices.presentFamily.value(), 0, &presentQueue);
  7. Fences
Vulkan Quick Reference
Vulkan Spec
glTF 2.0 Spec
glTF Quick Reference