## C Specification

The VkPipelineCacheCreateInfo structure is defined as:

// Provided by VK_VERSION_1_0
typedef struct VkPipelineCacheCreateInfo {
VkStructureType               sType;
const void*                   pNext;
VkPipelineCacheCreateFlags    flags;
size_t                        initialDataSize;
const void*                   pInitialData;
} VkPipelineCacheCreateInfo;

## Members

• sType is the type of this structure.

• pNext is NULL or a pointer to a structure extending this structure.

• flags is a bitmask of VkPipelineCacheCreateFlagBits specifying the behavior of the pipeline cache.

• initialDataSize is the number of bytes in pInitialData. If initialDataSize is zero, the pipeline cache will initially be empty.

• pInitialData is a pointer to previously retrieved pipeline cache data. If the pipeline cache data is incompatible (as defined below) with the device, the pipeline cache will be initially empty. If initialDataSize is zero, pInitialData is ignored.

## Description

Valid Usage
• If initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetPipelineCacheData when pInitialData was originally retrieved

• If initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetPipelineCacheData

• If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT

Valid Usage (Implicit)
• sType must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO

• pNext must be NULL

• flags must be a valid combination of VkPipelineCacheCreateFlagBits values

• If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes