venus: require exportable bit for ext fence sync fd
Signed-off-by: Juston Li <justonli@google.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20088>
This commit is contained in:
@@ -961,7 +961,10 @@ vn_physical_device_get_native_extensions(
|
||||
|
||||
/* we have a very poor implementation */
|
||||
if (instance->experimental.globalFencing) {
|
||||
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;
|
||||
|
||||
exts->KHR_external_semaphore_fd = true;
|
||||
}
|
||||
#endif
|
||||
|
@@ -1241,18 +1241,17 @@ vn_GetFenceFdKHR(VkDevice device,
|
||||
|
||||
assert(dev->instance->experimental.globalFencing);
|
||||
assert(sync_file);
|
||||
assert(dev->physical_device->renderer_sync_fd_fence_features &
|
||||
VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT);
|
||||
|
||||
int fd = -1;
|
||||
if (payload->type == VN_SYNC_TYPE_DEVICE_ONLY) {
|
||||
result = vn_create_sync_file(dev, fence->ring_idx, &fd);
|
||||
if (result != VK_SUCCESS)
|
||||
return vn_error(dev->instance, result);
|
||||
|
||||
/* perform reset operation on the host fence */
|
||||
if (dev->physical_device->renderer_sync_fd_fence_features &
|
||||
VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT) {
|
||||
vn_async_vkResetFenceResource100000MESA(dev->instance, device,
|
||||
pGetFdInfo->fence);
|
||||
}
|
||||
vn_async_vkResetFenceResource100000MESA(dev->instance, device,
|
||||
pGetFdInfo->fence);
|
||||
|
||||
vn_sync_payload_release(dev, &fence->temporary);
|
||||
fence->payload = &fence->permanent;
|
||||
|
Reference in New Issue
Block a user