vulkan/device: Add a common DeviceWaitIdle implementation
authorJason Ekstrand <jason@jlekstrand.net>
Thu, 23 Sep 2021 17:40:19 +0000 (12:40 -0500)
committerMarge Bot <eric+marge@anholt.net>
Tue, 28 Sep 2021 21:08:25 +0000 (21:08 +0000)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>

src/vulkan/util/vk_device.c

index d3ac4df..256659f 100644 (file)
@@ -295,6 +295,21 @@ vk_common_GetImageSparseMemoryRequirements(VkDevice _device,
    STACK_ARRAY_FINISH(mem_reqs2);
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL
+vk_common_DeviceWaitIdle(VkDevice _device)
+{
+   VK_FROM_HANDLE(vk_device, device, _device);
+   const struct vk_device_dispatch_table *disp = &device->dispatch_table;
+
+   vk_foreach_queue(queue, device) {
+      VkResult result = disp->QueueWaitIdle(vk_queue_to_handle(queue));
+      if (result != VK_SUCCESS)
+         return result;
+   }
+
+   return VK_SUCCESS;
+}
+
 static void
 copy_vk_struct_guts(VkBaseOutStructure *dst, VkBaseInStructure *src, size_t struct_size)
 {