v3dv: return OOM error if we fail to import or export sync objects
authorIago Toral Quiroga <itoral@igalia.com>
Fri, 13 Mar 2020 10:48:17 +0000 (11:48 +0100)
committerMarge Bot <eric+marge@anholt.net>
Tue, 13 Oct 2020 21:21:28 +0000 (21:21 +0000)
Typically, these functions would error out if we exceed the user limit
for open file descriptors, so this seems more appropriate.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>

src/broadcom/vulkan/v3dv_queue.c

index 3cfaede..d59d674 100644 (file)
@@ -86,7 +86,7 @@ process_semaphores_to_signal(struct v3dv_device *device,
    int fd;
    drmSyncobjExportSyncFile(device->render_fd, device->last_job_sync, &fd);
    if (fd == -1)
-      return VK_ERROR_DEVICE_LOST;
+      return VK_ERROR_OUT_OF_HOST_MEMORY;
 
    for (uint32_t i = 0; i < count; i++) {
       struct v3dv_semaphore *sem = v3dv_semaphore_from_handle(sems[i]);
@@ -97,7 +97,7 @@ process_semaphores_to_signal(struct v3dv_device *device,
 
       int ret = drmSyncobjImportSyncFile(device->render_fd, sem->sync, fd);
       if (ret)
-         return VK_ERROR_DEVICE_LOST;
+         return VK_ERROR_OUT_OF_HOST_MEMORY;
 
       sem->fd = fd;
    }
@@ -120,11 +120,11 @@ process_fence_to_signal(struct v3dv_device *device, VkFence _fence)
    int fd;
    drmSyncobjExportSyncFile(device->render_fd, device->last_job_sync, &fd);
    if (fd == -1)
-      return VK_ERROR_DEVICE_LOST;
+      return VK_ERROR_OUT_OF_HOST_MEMORY;
 
    int ret = drmSyncobjImportSyncFile(device->render_fd, fence->sync, fd);
    if (ret)
-      return VK_ERROR_DEVICE_LOST;
+      return VK_ERROR_OUT_OF_HOST_MEMORY;
 
    fence->fd = fd;