diff options
author | Bas Nieuwenhuizen <[email protected]> | 2019-07-03 02:25:19 +0200 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2019-07-03 10:56:21 +0000 |
commit | c6cb9b197d4e82432cacae7cec04e7d6ee73ceba (patch) | |
tree | 78153ff72ca54c19c2ed2d3561bdeb151373494a /src/amd/vulkan/radv_image.c | |
parent | 8a053254b81497cb6b0708fe86986e461ee43771 (diff) |
radv: Support VK_EXT_queue_family_foreign.
Basically same as external for now.
Reviewed-by: Samuel Pitoiset <[email protected]>
Only case we might need to handle differently in the near future
is Raven's case of displayable DCC which is not renderable. But
we don't support that yet.
Diffstat (limited to 'src/amd/vulkan/radv_image.c')
-rw-r--r-- | src/amd/vulkan/radv_image.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index dc598d9eecf..e92aef3ba30 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -1125,7 +1125,8 @@ radv_image_create(VkDevice _device, image->exclusive = pCreateInfo->sharingMode == VK_SHARING_MODE_EXCLUSIVE; if (pCreateInfo->sharingMode == VK_SHARING_MODE_CONCURRENT) { for (uint32_t i = 0; i < pCreateInfo->queueFamilyIndexCount; ++i) - if (pCreateInfo->pQueueFamilyIndices[i] == VK_QUEUE_FAMILY_EXTERNAL) + if (pCreateInfo->pQueueFamilyIndices[i] == VK_QUEUE_FAMILY_EXTERNAL || + pCreateInfo->pQueueFamilyIndices[i] == VK_QUEUE_FAMILY_FOREIGN_EXT) image->queue_family_mask |= (1u << RADV_MAX_QUEUE_FAMILIES) - 1u; else image->queue_family_mask |= 1u << pCreateInfo->pQueueFamilyIndices[i]; @@ -1471,7 +1472,8 @@ unsigned radv_image_queue_family_mask(const struct radv_image *image, uint32_t f { if (!image->exclusive) return image->queue_family_mask; - if (family == VK_QUEUE_FAMILY_EXTERNAL) + if (family == VK_QUEUE_FAMILY_EXTERNAL || + family == VK_QUEUE_FAMILY_FOREIGN_EXT) return (1u << RADV_MAX_QUEUE_FAMILIES) - 1u; if (family == VK_QUEUE_FAMILY_IGNORED) return 1u << queue_family; |