Skip to content

Clarify dependencies between cl_khr_semaphore and cl_khr_external_semaphore #944

@nikhiljnv

Description

@nikhiljnv

cl_khr_semaphore provides basic support for semaphore creation and wait/signal operations on them.
cl_khr_external_semaphore provides mechanism to import semaphores into OpenCL and export semaphores from OpenCL.
While being able to export semaphores from OpenCL requires OpenCL to be able to create semaphores and for some semaphore handle types like SYNC_FD, semaphores inherently require both import and export functionalities to work properly, for some other semaphore handle types (like OPAQUE_FD and WIN32) semaphores can be independently imported and/or exported.
So, for implementations just willing to support importing semaphores in OpenCL, semaphore creation is strictly not required.

cl_khr_external_semaphore depends on cl_khr_semaphore, but cl_khr_external_semaphore spec says (largely to facilitate import-only scenario described above)

clCreateSemaphoreWithPropertiesKHR may return a NULL value on some implementations if sema_props does not contain an external semaphore handle type to import. Such implementations are required to return a valid semaphore when a supported external memory handle type and valid external semaphore handle is specified.

This makes cl_khr_semaphore base functional guarantees ambiguous as cl_khr_external_semaphore leads to subtracting functionality provided by required cl_khr_semaphore.

This issue is to track any spec / CTS changes needed to remove inconsistencies in the descriptions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    OpenCL Extension SpecIssues related to the OpenCL Extension specification.

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions