Module: Mesa
Branch: main
Commit: fc06e35a58f86e80766dfbed3a2d49406fbd25e3
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fc06e35a58f86e80766dfbed3a2d49406fbd25e3

Author: Rob Clark <[email protected]>
Date:   Fri Feb 17 10:07:56 2023 -0800

turnip: Move QueueWaitIdle entrypoint to kgsl

Handle in the same way as other kgsl specific entrypoints.

Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21394>

---

 src/freedreno/vulkan/tu_device.c   | 28 ----------------------------
 src/freedreno/vulkan/tu_knl_kgsl.c | 27 +++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 28 deletions(-)

diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c
index 752f544854f..a165468acbc 100644
--- a/src/freedreno/vulkan/tu_device.c
+++ b/src/freedreno/vulkan/tu_device.c
@@ -2504,34 +2504,6 @@ tu_EnumerateInstanceLayerProperties(uint32_t 
*pPropertyCount,
    return VK_SUCCESS;
 }
 
-/* Only used for kgsl since drm started using common implementation */
-#ifdef TU_USE_KGSL
-VKAPI_ATTR VkResult VKAPI_CALL
-tu_QueueWaitIdle(VkQueue _queue)
-{
-   TU_FROM_HANDLE(tu_queue, queue, _queue);
-
-   if (vk_device_is_lost(&queue->device->vk))
-      return VK_ERROR_DEVICE_LOST;
-
-   if (queue->fence < 0)
-      return VK_SUCCESS;
-
-   struct pollfd fds = { .fd = queue->fence, .events = POLLIN };
-   int ret;
-   do {
-      ret = poll(&fds, 1, -1);
-   } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-
-   /* TODO: otherwise set device lost ? */
-   assert(ret == 1 && !(fds.revents & (POLLERR | POLLNVAL)));
-
-   close(queue->fence);
-   queue->fence = -1;
-   return VK_SUCCESS;
-}
-#endif
-
 VKAPI_ATTR VkResult VKAPI_CALL
 tu_EnumerateInstanceExtensionProperties(const char *pLayerName,
                                         uint32_t *pPropertyCount,
diff --git a/src/freedreno/vulkan/tu_knl_kgsl.c 
b/src/freedreno/vulkan/tu_knl_kgsl.c
index d125ae6246b..558623a1248 100644
--- a/src/freedreno/vulkan/tu_knl_kgsl.c
+++ b/src/freedreno/vulkan/tu_knl_kgsl.c
@@ -293,6 +293,32 @@ sync_merge(const VkSemaphore *syncobjs, uint32_t count, 
bool wait_all, bool rese
    return ret;
 }
 
+/* Only used for kgsl since drm started using common implementation */
+static VKAPI_ATTR VkResult VKAPI_CALL
+kgsl_QueueWaitIdle(VkQueue _queue)
+{
+   TU_FROM_HANDLE(tu_queue, queue, _queue);
+
+   if (vk_device_is_lost(&queue->device->vk))
+      return VK_ERROR_DEVICE_LOST;
+
+   if (queue->fence < 0)
+      return VK_SUCCESS;
+
+   struct pollfd fds = { .fd = queue->fence, .events = POLLIN };
+   int ret;
+   do {
+      ret = poll(&fds, 1, -1);
+   } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
+
+   /* TODO: otherwise set device lost ? */
+   assert(ret == 1 && !(fds.revents & (POLLERR | POLLNVAL)));
+
+   close(queue->fence);
+   queue->fence = -1;
+   return VK_SUCCESS;
+}
+
 static VKAPI_ATTR VkResult VKAPI_CALL
 kgsl_QueueSubmit2(VkQueue _queue,
                   uint32_t submitCount,
@@ -763,6 +789,7 @@ kgsl_QueueSignalReleaseImageANDROID(VkQueue _queue,
  * instead.
  */
 static const struct vk_device_entrypoint_table kgsl_device_entrypoints = {
+      .QueueWaitIdle = kgsl_QueueWaitIdle,
       .QueueSubmit2 = kgsl_QueueSubmit2,
       .ImportSemaphoreFdKHR = kgsl_ImportSemaphoreFdKHR,
       .GetSemaphoreFdKHR = kgsl_GetSemaphoreFdKHR,

Reply via email to