@@ -829,6 +829,10 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
829829 table->CmdCopyMemoryIndirectKHR = (PFN_vkCmdCopyMemoryIndirectKHR)gdpa(dev, "vkCmdCopyMemoryIndirectKHR");
830830 table->CmdCopyMemoryToImageIndirectKHR = (PFN_vkCmdCopyMemoryToImageIndirectKHR)gdpa(dev, "vkCmdCopyMemoryToImageIndirectKHR");
831831
832+ // ---- VK_KHR_device_fault extension commands
833+ table->GetDeviceFaultReportsKHR = (PFN_vkGetDeviceFaultReportsKHR)gdpa(dev, "vkGetDeviceFaultReportsKHR");
834+ table->GetDeviceFaultDebugInfoKHR = (PFN_vkGetDeviceFaultDebugInfoKHR)gdpa(dev, "vkGetDeviceFaultDebugInfoKHR");
835+
832836 // ---- VK_KHR_maintenance10 extension commands
833837 table->CmdEndRendering2KHR = (PFN_vkCmdEndRendering2KHR)gdpa(dev, "vkCmdEndRendering2KHR");
834838
@@ -2883,6 +2887,10 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
28832887 if (!strcmp(name, "CmdCopyMemoryIndirectKHR")) return (void *)table->CmdCopyMemoryIndirectKHR;
28842888 if (!strcmp(name, "CmdCopyMemoryToImageIndirectKHR")) return (void *)table->CmdCopyMemoryToImageIndirectKHR;
28852889
2890+ // ---- VK_KHR_device_fault extension commands
2891+ if (!strcmp(name, "GetDeviceFaultReportsKHR")) return (void *)table->GetDeviceFaultReportsKHR;
2892+ if (!strcmp(name, "GetDeviceFaultDebugInfoKHR")) return (void *)table->GetDeviceFaultDebugInfoKHR;
2893+
28862894 // ---- VK_KHR_maintenance10 extension commands
28872895 if (!strcmp(name, "CmdEndRendering2KHR")) return (void *)table->CmdEndRendering2KHR;
28882896
@@ -6036,6 +6044,37 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectKHR(
60366044}
60376045
60386046
6047+ // ---- VK_KHR_device_fault extension trampoline/terminators
6048+
6049+ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultReportsKHR(
6050+ VkDevice device,
6051+ uint64_t timeout,
6052+ uint32_t* pFaultCounts,
6053+ VkDeviceFaultInfoKHR* pFaultInfo) {
6054+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6055+ if (NULL == disp) {
6056+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6057+ "vkGetDeviceFaultReportsKHR: Invalid device "
6058+ "[VUID-vkGetDeviceFaultReportsKHR-device-parameter]");
6059+ abort(); /* Intentionally fail so user can correct issue. */
6060+ }
6061+ return disp->GetDeviceFaultReportsKHR(device, timeout, pFaultCounts, pFaultInfo);
6062+ }
6063+
6064+ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultDebugInfoKHR(
6065+ VkDevice device,
6066+ VkDeviceFaultDebugInfoKHR* pDebugInfo) {
6067+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6068+ if (NULL == disp) {
6069+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6070+ "vkGetDeviceFaultDebugInfoKHR: Invalid device "
6071+ "[VUID-vkGetDeviceFaultDebugInfoKHR-device-parameter]");
6072+ abort(); /* Intentionally fail so user can correct issue. */
6073+ }
6074+ return disp->GetDeviceFaultDebugInfoKHR(device, pDebugInfo);
6075+ }
6076+
6077+
60396078// ---- VK_KHR_maintenance10 extension trampoline/terminators
60406079
60416080VKAPI_ATTR void VKAPI_CALL CmdEndRendering2KHR(
@@ -13031,6 +13070,16 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
1303113070 return true;
1303213071 }
1303313072
13073+ // ---- VK_KHR_device_fault extension commands
13074+ if (!strcmp("vkGetDeviceFaultReportsKHR", name)) {
13075+ *addr = (void *)GetDeviceFaultReportsKHR;
13076+ return true;
13077+ }
13078+ if (!strcmp("vkGetDeviceFaultDebugInfoKHR", name)) {
13079+ *addr = (void *)GetDeviceFaultDebugInfoKHR;
13080+ return true;
13081+ }
13082+
1303413083 // ---- VK_KHR_maintenance10 extension commands
1303513084 if (!strcmp("vkCmdEndRendering2KHR", name)) {
1303613085 *addr = (void *)CmdEndRendering2KHR;
0 commit comments