// Copyright 2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_FUCHSIA_external_semaphore.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2021-03-08
*IP Status*::
    No known IP claims.
*Contributors*::
  - Craig Stout, Google
  - John Bauman, Google
  - John Rosasco, Google

=== Description

An application using external memory may wish to synchronize access to that
memory using semaphores.
This extension enables an application to export semaphore payload to and
import semaphore payload from Zircon event handles.

include::{generated}/interfaces/VK_FUCHSIA_external_semaphore.txt[]

=== Issues

1) Does the application need to close the Zircon event handle returned by
flink:vkGetSemaphoreZirconHandleFUCHSIA?

*RESOLVED*: Yes, unless it is passed back in to a driver instance to import
the semaphore.
A successful get call transfers ownership of the Zircon event handle to the
application, and a successful import transfers it back to the driver.
Destroying the original semaphore object will not close the Zircon event
handle nor remove its reference to the underlying semaphore resource
associated with it.

=== Version History

  * Revision 1, 2021-03-08 (John Rosasco)
    - Initial revision
