pvr: Implement vkSetEvent API.
authorRajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Tue, 20 Sep 2022 10:34:35 +0000 (11:34 +0100)
committerMarge Bot <emma+marge@anholt.net>
Wed, 21 Sep 2022 16:36:18 +0000 (16:36 +0000)
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18708>

src/imagination/vulkan/pvr_device.c

index b934f79..59f1371 100644 (file)
@@ -2582,7 +2582,18 @@ VkResult pvr_GetEventStatus(VkDevice _device, VkEvent _event)
 
 VkResult pvr_SetEvent(VkDevice _device, VkEvent _event)
 {
-   assert(!"Unimplemented");
+   PVR_FROM_HANDLE(pvr_event, event, _event);
+
+   if (event->sync) {
+      PVR_FROM_HANDLE(pvr_device, device, _device);
+
+      const VkResult result = vk_sync_signal(&device->vk, event->sync, 0);
+      if (result != VK_SUCCESS)
+         return result;
+   }
+
+   event->state = PVR_EVENT_STATE_SET_BY_HOST;
+
    return VK_SUCCESS;
 }