diff --git a/src/virtio/vulkan/vn_android.c b/src/virtio/vulkan/vn_android.c index 94f9a35af86..5046f09f31e 100644 --- a/src/virtio/vulkan/vn_android.c +++ b/src/virtio/vulkan/vn_android.c @@ -725,28 +725,6 @@ vn_AcquireImageANDROID(VkDevice device, struct vn_device *dev = vn_device_from_handle(device); VkResult result = VK_SUCCESS; - if (dev->instance->experimental.globalFencing == VK_FALSE) { - /* Fallback when VkVenusExperimentalFeatures100000MESA::globalFencing is - * VK_FALSE, out semaphore and fence are filled with already signaled - * payloads, and the native fence fd is waited inside until signaled. - */ - if (nativeFenceFd >= 0) { - int ret = sync_wait(nativeFenceFd, -1); - /* Android loader expects the ICD to always close the fd */ - close(nativeFenceFd); - if (ret) - return vn_error(dev->instance, VK_ERROR_SURFACE_LOST_KHR); - } - - if (semaphore != VK_NULL_HANDLE) - vn_semaphore_signal_wsi(dev, vn_semaphore_from_handle(semaphore)); - - if (fence != VK_NULL_HANDLE) - vn_fence_signal_wsi(dev, vn_fence_from_handle(fence)); - - return VK_SUCCESS; - } - int semaphore_fd = -1; int fence_fd = -1; if (nativeFenceFd >= 0) { @@ -835,7 +813,6 @@ vn_QueueSignalReleaseImageANDROID(VkQueue _queue, struct vn_device *dev = queue->device; const VkAllocationCallbacks *alloc = &dev->base.base.alloc; const bool has_sync_fd_fence_export = - dev->instance->experimental.globalFencing == VK_TRUE && (dev->physical_device->renderer_sync_fd_fence_features & VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT); VkDevice device = vn_device_to_handle(dev); diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 2365627eafe..c6101dc683f 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -874,10 +874,8 @@ vn_physical_device_init_external_fence_handles( physical_dev->external_fence_handles = 0; #ifdef ANDROID - if (physical_dev->instance->experimental.globalFencing) { - physical_dev->external_fence_handles = - VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT; - } + physical_dev->external_fence_handles = + VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT; #endif } @@ -923,10 +921,8 @@ vn_physical_device_init_external_semaphore_handles( physical_dev->external_timeline_semaphore_handles = 0; #ifdef ANDROID - if (physical_dev->instance->experimental.globalFencing) { - physical_dev->external_binary_semaphore_handles = - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT; - } + physical_dev->external_binary_semaphore_handles = + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT; #endif } @@ -952,18 +948,16 @@ vn_physical_device_get_native_extensions( exts->ANDROID_native_buffer = true; } - /* we have a very poor implementation */ - if (instance->experimental.globalFencing) { - if ((physical_dev->renderer_sync_fd_fence_features & - VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT)) - exts->KHR_external_fence_fd = true; + if ((physical_dev->renderer_sync_fd_fence_features & + VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT)) + exts->KHR_external_fence_fd = true; + + if ((physical_dev->renderer_sync_fd_semaphore_features & + VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT) && + (physical_dev->renderer_sync_fd_semaphore_features & + VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT)) + exts->KHR_external_semaphore_fd = true; - if ((physical_dev->renderer_sync_fd_semaphore_features & - VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT) && - (physical_dev->renderer_sync_fd_semaphore_features & - VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT)) - exts->KHR_external_semaphore_fd = true; - } #else /* ANDROID */ if (can_external_mem) { exts->KHR_external_memory_fd = true; diff --git a/src/virtio/vulkan/vn_queue.c b/src/virtio/vulkan/vn_queue.c index 3d8f58e4700..fd825679b52 100644 --- a/src/virtio/vulkan/vn_queue.c +++ b/src/virtio/vulkan/vn_queue.c @@ -273,8 +273,7 @@ vn_queue_submission_prepare(struct vn_queue_submission *submit) * - explicit fencing: sync file export * - implicit fencing: dma-fence attached to the wsi bo * - * Under globalFencing, we enforce above via a synchronous submission if - * any of the below applies: + * We enforce above via a synchronous submission if seeing any of below: * - struct wsi_memory_signal_submit_info * - fence is an external fence * - has an external signal semaphore @@ -1371,7 +1370,6 @@ vn_ImportFenceFdKHR(VkDevice device, VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT; const int fd = pImportFenceFdInfo->fd; - assert(dev->instance->experimental.globalFencing); assert(sync_file); if (!vn_sync_valid_fd(fd)) @@ -1399,7 +1397,6 @@ vn_GetFenceFdKHR(VkDevice device, struct vn_sync_payload *payload = fence->payload; VkResult result; - assert(dev->instance->experimental.globalFencing); assert(sync_file); assert(dev->physical_device->renderer_sync_fd_fence_features & VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT); @@ -1829,7 +1826,6 @@ vn_ImportSemaphoreFdKHR( VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT; const int fd = pImportSemaphoreFdInfo->fd; - assert(dev->instance->experimental.globalFencing); assert(sync_file); if (!vn_sync_valid_fd(fd)) @@ -1856,7 +1852,6 @@ vn_GetSemaphoreFdKHR(VkDevice device, pGetFdInfo->handleType == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT; struct vn_sync_payload *payload = sem->payload; - assert(dev->instance->experimental.globalFencing); assert(sync_file); assert((dev->physical_device->renderer_sync_fd_semaphore_features & VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT));