41 lines
2.0 KiB
Plaintext
41 lines
2.0 KiB
Plaintext
[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 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[]
|
|
--
|