VkPipelineCacheHeaderVersionOne
Version one of the pipeline cache header is defined as:
typedef struct VkPipelineCacheHeaderVersionOne {
// The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.;
uint32_t headerSize;
VkPipelineCacheHeaderVersion headerVersion;
uint32_t vendorID;
uint32_t deviceID;
uint8_t pipelineCacheUUID[VK_UUID_SIZE];
} VkPipelineCacheHeaderVersionOne;
headerSize
is the length in bytes of the pipeline cache header.headerVersion
is a VkPipelineCacheHeaderVersion value specifying the version of the header. A consumer of the pipeline cache should use the cache version to interpret the remainder of the cache header.vendorID
is theVkPhysicalDeviceProperties
::vendorID
of the implementation.deviceID
is theVkPhysicalDeviceProperties
::deviceID
of the implementation.pipelineCacheUUID
is theVkPhysicalDeviceProperties
::pipelineCacheUUID
of the implementation.
Unlike most structures declared by the Vulkan API, all fields of this structure are written with the least significant byte first, regardless of host byte-order.
The C language specification does not define the packing of structure members. This layout assumes tight structure member packing, with members laid out in the order listed in the structure, and the intended size of the structure is 32 bytes. If a compiler produces code that diverges from that pattern, applications must employ another method to set values at the correct offsets.
Valid Usage
VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967
headerSize
must be 32
VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968
headerVersion
must be VK_PIPELINE_CACHE_HEADER_VERSION_ONE
VUID-VkPipelineCacheHeaderVersionOne-headerSize-08990
headerSize
must not exceed the size of the pipeline cache
Valid Usage (Implicit)
VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameter
headerVersion
must be a valid VkPipelineCacheHeaderVersion value