C Specification
Version one of the crash dump header is defined as:
// Provided by VK_EXT_device_fault
typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
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;
Members
-
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 theVkPhysicalDeviceProperties
::vendorID
of the implementation. -
deviceID
is theVkPhysicalDeviceProperties
::deviceID
of the implementation. -
driverVersion
is theVkPhysicalDeviceProperties
::driverVersion
of the implementation. -
pipelineCacheUUID
is an array ofVK_UUID_SIZE
uint8_t
values matching theVkPhysicalDeviceProperties
::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. IfapplicationNameOffset
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. IfengineNameOffset
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.
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 56 bytes. If a compiler produces code that diverges from that pattern, applications must employ another method to set values at the correct offsets.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.