This chapter introduced you to the different types of resources that are used by Vulkan. It described how the memory used to back them is allocated and then associated with them. It also explained how you can manage the application memory used by Vulkan through the use of a custom allocator. You have seen how to move resources from state to state and how to synchronize acess to them through pipeline barriers. This enables efficient, parallel access to resources both from multiple stages of the Vulkan pipeline and from the host.