123 lines
4.7 KiB
Plaintext
123 lines
4.7 KiB
Plaintext
// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
|
|
// Creative Commons Attribution 4.0 International License; see
|
|
// http://creativecommons.org/licenses/by/4.0/
|
|
|
|
vkGetPipelineCacheData(3)
|
|
=========================
|
|
|
|
Name
|
|
----
|
|
vkGetPipelineCacheData - Get the data store from a pipeline cache
|
|
|
|
C Specification
|
|
---------------
|
|
|
|
// refBegin vkGetPipelineCacheData Get the data store from a pipeline cache
|
|
|
|
Data can: be retrieved from a pipeline cache object using the command:
|
|
|
|
include::../api/protos/vkGetPipelineCacheData.txt[]
|
|
|
|
|
|
Parameters
|
|
----------
|
|
|
|
* pname:device is the logical device that owns the pipeline cache.
|
|
* pname:pipelineCache is the pipeline cache to retrieve data from.
|
|
* pname:pDataSize is a pointer to a value related to the amount of data in
|
|
the pipeline cache, as described below.
|
|
* pname:pData is either `NULL` or a pointer to a buffer.
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
If pname:pData is `NULL`, then the maximum size of the data that can: be
|
|
retrieved from the pipeline cache, in bytes, is returned in pname:pDataSize.
|
|
Otherwise, pname:pDataSize must: point to a variable set by the user to the
|
|
size of the buffer, in bytes, pointed to by pname:pData, and on return the
|
|
variable is overwritten with the amount of data actually written to
|
|
pname:pData.
|
|
|
|
If pname:pDataSize is less than the maximum size that can: be
|
|
retrieved by the pipeline cache, at most pname:pDataSize bytes will be
|
|
written to pname:pData, and fname:vkGetPipelineCacheData will return
|
|
ename:VK_INCOMPLETE. Any data written to pname:pData is valid and can: be
|
|
provided as the pname:pInitialData member of the
|
|
sname:VkPipelineCacheCreateInfo structure passed to
|
|
fname:vkCreatePipelineCache.
|
|
|
|
[[pipelines-cache-header]]
|
|
Applications can: store the data retrieved from the pipeline cache, and use
|
|
these data, possibly in a future run of the application, to populate new
|
|
pipeline cache objects. The results of pipeline compiles, however,
|
|
may: depend on the vendor ID, device ID, driver version, and other details
|
|
of the device. To enable applications to detect when previously retrieved
|
|
data is incompatible with the device, the initial bytes written to
|
|
pname:pData must: be a header consisting of the following members:
|
|
|
|
.Layout for pipeline cache header version VK_PIPELINE_CACHE_HEADER_VERSION_ONE
|
|
[width="85%",cols="8%,21%,71%",options="header"]
|
|
|=====
|
|
| Offset | Size | Meaning
|
|
| 0 | 4 | length in bytes of the entire pipeline cache header
|
|
written as a stream of bytes, with the least
|
|
significant byte first
|
|
| 4 | 4 | a elink:VkPipelineCacheHeaderVersion value
|
|
written as a stream of bytes, with the least
|
|
significant byte first
|
|
| 8 | 4 | a vendor ID equal to
|
|
sname:VkPhysicalDeviceProperties::pname:vendorID
|
|
written as a stream of bytes, with the least
|
|
significant byte first
|
|
| 12 | 4 | a device ID equal to
|
|
sname:VkPhysicalDeviceProperties::pname:deviceID
|
|
written as a stream of bytes, with the least
|
|
significant byte first
|
|
| 16 | ename:VK_UUID_SIZE | a pipeline cache ID equal to
|
|
sname:VkPhysicalDeviceProperties::pname:pipelineCacheUUID
|
|
|=====
|
|
|
|
The first four bytes encode the length of the entire pipeline header, in
|
|
bytes. This value includes all fields in the header including the pipeline
|
|
cache version field and the size of the length field.
|
|
|
|
// refBegin VkPipelineCacheHeaderVersion Encode pipeline cache version
|
|
|
|
The next four bytes encode the pipeline cache version. This field is
|
|
interpreted as a elink:VkPipelineCacheHeaderVersion value, and must:
|
|
have one of the following values:
|
|
|
|
include::../api/enums/VkPipelineCacheHeaderVersion.txt[]
|
|
|
|
A consumer of the pipeline cache should use the cache version to interpret
|
|
the remainder of the cache header.
|
|
|
|
// refEnd VkPipelineCacheHeaderVersion vkCreatePipelineCache vkGetPipelineCacheData
|
|
|
|
If pname:pDataSize is less than what is necessary to store this
|
|
header, nothing will be written to pname:pData and zero will be written to
|
|
pname:pDataSize.
|
|
|
|
include::../validity/protos/vkGetPipelineCacheData.txt[]
|
|
|
|
|
|
See Also
|
|
--------
|
|
|
|
slink:VkDevice, slink:VkPipelineCache
|
|
|
|
|
|
Document Notes
|
|
--------------
|
|
|
|
For more information, see the Vulkan Specification at URL
|
|
|
|
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkGetPipelineCacheData
|
|
|
|
This page is extracted from the Vulkan Specification.
|
|
Fixes and changes should be made to the Specification,not directly.
|
|
|
|
include::footer.txt[]
|
|
|