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