Skip to content

Support for DRM syncobj FDs in vkGetSemaphoreKHR/vkImportSemaphoreFdKHR #2473

@colinmarc

Description

@colinmarc

DRM timeline sync objects seem tailor-made for interop with Vulkan timeline semaphores. However, while it's possible to import these using vkImportSemaphoreFdKHR and VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT on some drivers, there are a few issues that make importing/exporting unergonomic:

  • When importing, the SYNC_FD type seems more correct, and it's not clear in the spec which should be used in this case (unless I missed it). However, SYNC_FD is restricted to temporary binary semaphore imports, and does not allow permanent timeline semaphore imports.
  • When exporting a semaphore as a FD using vkGetSemaphoreFdKHR, there's no way to distinguish what type of FD you're getting.

Should syncobjs be covered by an additional enum value in HandleTypeFlagBits? Or should the the spec/validation be relaxed to allow timeline semaphores to be imported/exported using SYNC_FD?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions