| // Copyright (c) 2018-2020 NVIDIA Corporation |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| [open,refpage='VkWin32KeyedMutexAcquireReleaseInfoNV',desc='Use Windows keyex mutex mechanism to synchronize work',type='structs'] |
| -- |
| 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::{generated}/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 a pointer to 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::{generated}/validity/structs/VkWin32KeyedMutexAcquireReleaseInfoNV.txt[] |
| -- |