VkPipelineCacheHeaderVersionDataGraphQCOM
The data graph pipeline cache header is defined as:
typedef struct VkPipelineCacheHeaderVersionDataGraphQCOM {
// 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;
VkDataGraphModelCacheTypeQCOM cacheType;
uint32_t cacheVersion;
uint32_t toolchainVersion[VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM];
} VkPipelineCacheHeaderVersionDataGraphQCOM;
pub struct PipelineCacheHeaderVersionDataGraphQCOM {
/// The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.
header_size: u32,
header_version: vk::PipelineCacheHeaderVersion,
cache_type: vk::DataGraphModelCacheTypeQCOM,
cache_version: u32,
toolchain_version: [u32; VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM],
}
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.cacheTypeis the VkDataGraphModelCacheTypeQCOM type of data graph cache encoded in the data.cacheVersionis the version of the encoding of the data graph cache.toolchainVersionis a null-terminated UTF-8 string specifying the version of the compiler that built the data graph cache.
The application should verify that the header info is compatible with the
VkDataGraphProcessingEngineCreateInfoARM passed during pipeline
creation.
Implementations may return VK_PIPELINE_COMPILE_REQUIRED_EXT from
vkCreateDataGraphPipelinesARM if the cache is not compatible.
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 28 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-VkPipelineCacheHeaderVersionDataGraphQCOM-None-11835
The dataGraphModel feature must be enabled
VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-headerSize-11836
headerSize must be 28
VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-headerVersion-11837
headerVersion must be
VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM
VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-headerSize-11838
headerSize must not exceed the size of the pipeline cache
Valid Usage (Implicit)
VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-headerVersion-parameter
headerVersion must be a valid VkPipelineCacheHeaderVersion value
VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-cacheType-parameter
cacheType must be a valid VkDataGraphModelCacheTypeQCOM value