Class PipelineCache

Class Documentation

class PipelineCache

RAII wrapper class for VkPipelineCache We use one pipeline cache for all pipelines (no matter what type: graphics or compute)

Public Functions

PipelineCache(const Device &device)

Default constructor

Parameters:

cache_file_name – The name of the pipeline cache file to load

~PipelineCache()

Write the Vulkan pipeline cache to file and destroy it with vkDestroyPipelineCache.

Private Functions

std::vector<std::uint8_t> read_cache_data_from_disk()

Attempt to read the existing Vulkan pipeline cache file from disk.

void save_cache_data_to_disk()

Save the Vulkan pipeline cache to disk.

Private Members

const Device &m_device
std::string m_cache_file_name
VkPipelineCache m_pipeline_cache = {VK_NULL_HANDLE}

NOTE: It could be that the pipeline cache is missing (at first start) or invalid for some reason (e.g. driver update), in which case this Vulkan handle remains as VK_NULL_HANLDE.

Friends

friend class GraphicsPipeline