Creating a command pool
Command buffers provide the ability to record graphics and compute commands, while command queues allow those buffers to be submitted to the hardware. Commands recorded in the command buffers are then executed by the GPU.
Each queue is associated with a specific queue family, which defines the capabilities of the queue. For example, a queue family may only support graphics operations, or it may support both graphics and compute operations. The number of families and their capabilities can be retrieved using the vkGetPhysicalDeviceQueueFamilyProperties
function, discussed in the Caching the properties of queue families recipe. A queue family may contain one or more queues.
Command buffers are containers for the actual commands that are executed by the GPU. To record commands, you allocate a command buffer, then use the vkCmd*
family of functions to record the commands into them. Once the commands have been recorded, the command buffer can be submitted to...