Initialization

This section deals with initialization of all the systems needed, including:

  • Initializing GLFW and creating a Window
  • Creating a Vulkan Instance
  • Creating a Vulkan Surface
  • Selecting a Vulkan Physical Device
  • Creating a Vulkan logical Device
  • Creating a Vulkan Swapchain

If any step here fails, it is a fatal error as we can't do anything meaningful beyond that point.