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;
headerSizeis the length in bytes of the pipeline cache header.headerVersionis 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.headerVersionmust be written as exactly 4 bytes.vendorIDis theVkPhysicalDeviceProperties::vendorIDof the implementation.deviceIDis theVkPhysicalDeviceProperties::deviceIDof the implementation.pipelineCacheUUIDis theVkPhysicalDeviceProperties::pipelineCacheUUIDof 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