A buffer is a linear array of data that can be bound to the graphics pipeline with descriptors set.

Create and destroy buffers - vkCreateBuffer / vkDestroyBuffer

How to get the memory need of a buffer - vkGetBufferMemoryRequirements

How attach memory to a buffer - vkBindBufferMemory

Create views for buffers - vkCreateBufferView / vkDestroyBufferView


Multidimensional, up to 3, arrays of data used for things such as textures and attachments. Bound to the graphics pipeline with descriptor sets.

Create and destroy a image - vkCreateImage / vkDestroyImage

How to get the memory need of a image - vkGetImageMemoryRequirements

How attach memory to a image - vkBindImageMemory

Create views for images - vkCreateImageView / vkDestroyImageView

Create samplers - vkCreateSampler / vkDestroySampler

Shader Modules

A shader module contain shader code in SPIR-V format. Each shader module has one or more entry points for shader code and it is used when creating a pipeline. Each stage can use shaders for different modules if one need to.

How to create a shader module - vkCreateShaderModule

How to destroy a shader module - vkDestroyShaderModule

Graphics Pipelines

A graphics Pipelines contains a large chunk of the state needed for rendering.

How to create pipelines - vkCreateGraphicsPipelines

Creates one or more pipelines.

How to destroy a pipeline - vkDestroyPipeline

The pipeline that is destroyed must have completed execution.

Pipeline Cache

A pipeline cache is used to improve the speed of creating pipeline object. When creating a pipeline a cache can be given so the pipeline can be saved if the same or a similar one is created again. It can also be reused between runs of an application. This is done by the application by retrieving pipeline cache contents in one run of an application, saving the contents, and using them to preinitialize a pipeline cache on a subsequent run.

How to create a pipeline cache - vkCreatePipelineCache

How to save a pipeline cache - vkGetPipelineCacheData

How to merge two pipeline caches - vkMergePipelineCaches

How to destroy a pipeline cache - vkDestroyPipelineCache

Human-friendly classification of Vulkan resources - 2018