Structures

VkDeviceFaultVendorBinaryHeaderVersionOneEXT

Structure describing the layout of the vendor binary crash dump header

Version one of the crash dump header is defined as:

typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
    // 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;
    VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion;
    uint32_t vendorID;
    uint32_t deviceID;
    uint32_t driverVersion;
    uint8_t pipelineCacheUUID[VK_UUID_SIZE];
    uint32_t applicationNameOffset;
    uint32_t applicationVersion;
    uint32_t engineNameOffset;
    uint32_t engineVersion;
    uint32_t apiVersion;
} VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
  • headerSize is the length in bytes of the crash dump header.
  • headerVersion is a VkDeviceFaultVendorBinaryHeaderVersionEXT enum value specifying the version of the header. A consumer of the crash dump should use the header version to interpret the remainder of the header.
  • vendorID is the VkPhysicalDeviceProperties::vendorID of the implementation.
  • deviceID is the VkPhysicalDeviceProperties::deviceID of the implementation.
  • driverVersion is the VkPhysicalDeviceProperties::driverVersion of the implementation.
  • pipelineCacheUUID is an array of VK_UUID_SIZE uint8_t values matching the VkPhysicalDeviceProperties::pipelineCacheUUID property of the implementation.
  • applicationNameOffset is zero, or an offset from the base address of the crash dump header to a null-terminated UTF-8 string containing the name of the application. If applicationNameOffset is non-zero, this string must match the application name specified via VkApplicationInfo::pApplicationName during instance creation.
  • applicationVersion must be zero or the value specified by VkApplicationInfo::applicationVersion during instance creation.
  • engineNameOffset is zero, or an offset from the base address of the crash dump header to a null-terminated UTF-8 string containing the name of the engine (if any) used to create the application. If engineNameOffset is non-zero, this string must match the engine name specified via VkApplicationInfo::pEngineName during instance creation.
  • engineVersion must be zero or the value specified by VkApplicationInfo::engineVersion during instance creation.
  • apiVersion must be zero or the value specified by VkApplicationInfo::apiVersion during instance creation.

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 56 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-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-07341

headerVersion must be VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT