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
-
headerSizeis the length in bytes of the crash dump header. -
headerVersionis 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. -
vendorIDis theVkPhysicalDeviceProperties::vendorIDof the implementation. -
deviceIDis theVkPhysicalDeviceProperties::deviceIDof the implementation. -
driverVersionis theVkPhysicalDeviceProperties::driverVersionof the implementation. -
pipelineCacheUUIDis an array ofVK_UUID_SIZEuint8_tvalues matching theVkPhysicalDeviceProperties::pipelineCacheUUIDproperty of the implementation. -
applicationNameOffsetis 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. IfapplicationNameOffsetis non-zero, this string must match the application name specified via VkApplicationInfo::pApplicationNameduring instance creation. -
applicationVersionmust be zero or the value specified by VkApplicationInfo::applicationVersionduring instance creation. -
engineNameOffsetis 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. IfengineNameOffsetis non-zero, this string must match the engine name specified via VkApplicationInfo::pEngineNameduring instance creation. -
engineVersionmust be zero or the value specified by VkApplicationInfo::engineVersionduring instance creation. -
apiVersionmust be zero or the value specified by VkApplicationInfo::apiVersionduring 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.