vkGetPipelineCacheData
Data can be retrieved from a pipeline cache object using the command:
VkResult vkGetPipelineCacheData(
VkDevice device,
VkPipelineCache pipelineCache,
size_t* pDataSize,
void* pData);
device
is the logical device that owns the pipeline cache.pipelineCache
is the pipeline cache to retrieve data from.pDataSize
is a pointer to asize_t
value related to the amount of data in the pipeline cache, as described below.pData
is eitherNULL
or 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
.
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