C Specification

Version one of the pipeline cache header is defined as:

// Provided by VK_VERSION_1_0
uint32_t                        vendorID;
uint32_t                        deviceID;
uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
} VkPipelineCacheHeaderVersionOne;

Members

• headerSize is the length in bytes of the pipeline cache header.

• headerVersion is a VkPipelineCacheHeaderVersion enum 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.

Description

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
headerSize must be 32

headerVersion must be VK_PIPELINE_CACHE_HEADER_VERSION_ONE

Valid Usage (Implicit)
headerVersion must be a valid VkPipelineCacheHeaderVersion value

Document Notes

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2022 The Khronos Group Inc.