Structures

VkPipelineCacheHeaderVersionOne

Structure describing the layout of the pipeline cache header

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 the VkPhysicalDeviceProperties::vendorID of the implementation.
  • deviceID is the VkPhysicalDeviceProperties::deviceID of the implementation.
  • pipelineCacheUUID is the VkPhysicalDeviceProperties::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-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