VkDeviceFaultInfoEXT
The VkDeviceFaultInfoEXT
structure is defined as:
typedef struct VkDeviceFaultInfoEXT {
VkStructureType sType;
void* pNext;
char description[VK_MAX_DESCRIPTION_SIZE];
VkDeviceFaultAddressInfoEXT* pAddressInfos;
VkDeviceFaultVendorInfoEXT* pVendorInfos;
void* pVendorBinaryData;
} VkDeviceFaultInfoEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.description
is an array ofVK_MAX_DESCRIPTION_SIZE
char
containing a null-terminated UTF-8 string which is a human readable description of the fault.pAddressInfos
isNULL
or a pointer to an array of VkDeviceFaultAddressInfoEXT structures describing either memory accesses which may have caused a page fault, or describing active instruction pointers at the time of the fault. If notNULL
, each element ofpAddressInfos
describes the a bounded region of GPU virtual address space containing either the GPU virtual address accessed, or the value of an active instruction pointer.pVendorInfos
isNULL
or a pointer to an array of VkDeviceFaultVendorInfoEXT structures describing vendor-specific fault information.pVendorBinaryData
isNULL
or a pointer tovendorBinarySize
number of bytes of data, which will be populated with a vendor-specific binary crash dump, as described in Vendor Binary Crash Dumps.
An implementation should populate as many members of VkDeviceFaultInfoEXT as possible, given the information available at the time of the fault and the constraints of the implementation itself.
Due to hardware limitations, pAddressInfos
describes ranges of GPU
virtual address space, rather than precise addresses.
The precise memory address accessed or the precise value of the instruction
pointer must lie within the region described.
Each element of pAddressInfos
describes either:
- A memory access which may have triggered a page fault and may have contributed to device loss
- The value of an active instruction pointer at the time a fault occurred. This value may be indicative of the active pipeline or shader at the time of device loss
Comparison of the GPU virtual addresses described by pAddressInfos
to
GPU virtual address ranges reported by the
VK_EXT_device_address_binding_report extension may allow
applications to correlate between these addresses and Vulkan objects.
Applications should be aware that these addresses may also correspond to
resources internal to an implementation, which will not be reported via the
VK_EXT_device_address_binding_report extension.
Valid Usage (Implicit)
VUID-VkDeviceFaultInfoEXT-sType-sType
sType
must be VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
VUID-VkDeviceFaultInfoEXT-pNext-pNext
pNext
must be NULL