// refBegin VkWin32KeyedMutexAcquireReleaseInfoNV - use Windows keyex mutex mechanism to synchronize work

When submitting work that operates on memory imported from a Direct3D 11
resource to a queue, the keyed mutex mechanism may: be used in addition to
Vulkan semaphores to synchronize the work.
Keyed mutexes are a property of a properly created shareable Direct3D 11
resource.
They can: only be used if the imported resource was created with the
etext:D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX flag.

To acquire keyed mutexes before submitted work and/or release them after,
add a slink:VkWin32KeyedMutexAcquireReleaseInfoNV structure to the
pname:pNext chain of the slink:VkSubmitInfo structure.

The sname:VkWin32KeyedMutexAcquireReleaseInfoNV structure is defined as:

include::../../api/structs/VkWin32KeyedMutexAcquireReleaseInfoNV.txt[]

    * pname:acquireCount is the number of entries in the
      pname:pAcquireSyncs, pname:pAcquireKeys, and
      pname:pAcquireTimeoutMilliseconds arrays.
    * pname:pAcquireSyncs is a pointer to an array of slink:VkDeviceMemory
      objects which were imported from Direct3D 11 resources.
    * pname:pAcquireKeys is a pointer to an array of mutex key values to
      wait for prior to beginning the submitted work.
      Entries refer to the keyed mutex associated with the corresponding
      entries in pname:pAcquireSyncs.
    * pname:pAcquireTimeoutMilliseconds is an array of timeout values, in
      millisecond units, for each acquire specified in pname:pAcquireKeys.
    * pname:releaseCount is the number of entries in the pname:pReleaseSyncs
      and pname:pReleaseKeys arrays.
    * pname:pReleaseSyncs is a pointer to an array of slink:VkDeviceMemory
      objects which were imported from Direct3D 11 resources.
    * pname:pReleaseKeys is a pointer to an array of mutex key values to set
      when the submitted work has completed.
      Entries refer to the keyed mutex associated with the corresponding
      entries in pname:pReleaseSyncs.

include::../../validity/structs/VkWin32KeyedMutexAcquireReleaseInfoNV.txt[]
