Reserving queue families
In Vulkan, a queue family is a group of one or more queues that share common properties, such as the type of operations they can perform. When creating a Vulkan device, we must specify which queue families we want to use and how many queues of each family we need.
For rendering and presentation, we typically need at least one graphics queue family, which is responsible for executing graphics commands. Additionally, we may require a compute queue family for executing compute workloads and a transfer queue family for handling data transfers.
In this recipe, you will learn how to find queue families based on their properties and how to select a queue family that supports presentation, which can be used to present the final render output on the screen.
Getting ready
In the repository, reserving queues is encapsulated by the VulkanCore::PhysicalDevice
class.
How to do it…
One additional step necessary before creating a Vulkan device is to...