vkGetPipelineCacheData
Data can be retrieved from a pipeline cache object using the command:
VkResult vkGetPipelineCacheData(
VkDevice device,
VkPipelineCache pipelineCache,
size_t* pDataSize,
void* pData);
deviceis the logical device that owns the pipeline cache.pipelineCacheis the pipeline cache to retrieve data from.pDataSizeis a pointer to asize_tvalue related to the amount of data in the pipeline cache, as described below.pDatais eitherNULLor a pointer to a buffer.
If pData is NULL, then the maximum size of the data that can be
retrieved from the pipeline cache, in bytes, is returned in pDataSize.
Otherwise, pDataSize must point to a variable set by the application
to the size of the buffer, in bytes, pointed to by pData, and on
return the variable is overwritten with the amount of data actually written
to pData.
If pDataSize is less than the maximum size that can be retrieved by
the pipeline cache, at most pDataSize bytes will be written to
pData, and VK_INCOMPLETE will be returned instead of
VK_SUCCESS, to indicate that not all of the pipeline cache was
returned.
Any data written to pData is valid and can be provided as the
pInitialData member of the VkPipelineCacheCreateInfo structure
passed to vkCreatePipelineCache.
Two calls to vkGetPipelineCacheData with the same parameters must
retrieve the same data unless a command that modifies the contents of the
cache is called between them.
The initial bytes written to pData must be a header as described in
the Pipeline Cache Header section.
If pDataSize is less than what is necessary to store this header,
nothing will be written to pData and zero will be written to
pDataSize.
This query does not behave consistently with the behavior described in Opaque Binary Data Results, for historical reasons.
If the amount of data available is larger than the passed pDataSize,
the query returns up to the size of the passed buffer, and signals overflow
with a VK_INCOMPLETE success status instead of returning a
VK_ERROR_NOT_ENOUGH_SPACE_KHR error status.
Valid Usage (Implicit)
VUID-vkGetPipelineCacheData-device-parameter
device must be a valid VkDevice handle
VUID-vkGetPipelineCacheData-pipelineCache-parameter
pipelineCache must be a valid VkPipelineCache handle
VUID-vkGetPipelineCacheData-pDataSize-parameter
pDataSize must be a valid pointer to a size_t value
VUID-vkGetPipelineCacheData-pData-parameter
If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes
VUID-vkGetPipelineCacheData-pipelineCache-parent
pipelineCache must have been created, allocated, or retrieved from device