| // Copyright 2017-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_EXT_queue_family_foreign.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2017-11-01 |
| *IP Status*:: |
| No known IP claims. |
| *Contributors*:: |
| - Chad Versace, Google |
| - James Jones, NVIDIA |
| - Jason Ekstrand, Intel |
| - Jesse Hall, Google |
| - Daniel Rakos, AMD |
| - Ray Smith, ARM |
| |
| === Description |
| |
| This extension defines a special queue family, |
| ename:VK_QUEUE_FAMILY_FOREIGN_EXT, which can be used to transfer ownership |
| of resources backed by external memory to foreign, external queues. |
| This is similar to ename:VK_QUEUE_FAMILY_EXTERNAL_KHR, defined in |
| `apiext:VK_KHR_external_memory`. |
| The key differences between the two are: |
| |
| * The queues represented by ename:VK_QUEUE_FAMILY_EXTERNAL_KHR must share |
| the same physical device and the same driver version as the current |
| slink:VkInstance. |
| ename:VK_QUEUE_FAMILY_FOREIGN_EXT has no such restrictions. |
| It can represent devices and drivers from other vendors, and can even |
| represent non-Vulkan-capable devices. |
| * All resources backed by external memory support |
| ename:VK_QUEUE_FAMILY_EXTERNAL_KHR. |
| Support for ename:VK_QUEUE_FAMILY_FOREIGN_EXT is more restrictive. |
| * Applications should expect transitions to/from |
| ename:VK_QUEUE_FAMILY_FOREIGN_EXT to be more expensive than transitions |
| to/from ename:VK_QUEUE_FAMILY_EXTERNAL_KHR. |
| |
| include::{generated}/interfaces/VK_EXT_queue_family_foreign.txt[] |
| |
| === Version History |
| |
| * Revision 1, 2017-11-01 (Chad Versace) |
| - Squashed internal revisions |