radv: Add support for external queue family.
Signed-off-by: Bas Nieuwenhuizen <basni@google.com> Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
a935cd926b
commit
d513473cc1
|
@ -644,7 +644,10 @@ 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)
|
||||
image->queue_family_mask |= 1u << pCreateInfo->pQueueFamilyIndices[i];
|
||||
if (pCreateInfo->pQueueFamilyIndices[i] == VK_QUEUE_FAMILY_EXTERNAL_KHX)
|
||||
image->queue_family_mask |= (1u << RADV_MAX_QUEUE_FAMILIES) - 1u;
|
||||
else
|
||||
image->queue_family_mask |= 1u << pCreateInfo->pQueueFamilyIndices[i];
|
||||
}
|
||||
|
||||
radv_init_surface(device, &image->surface, create_info);
|
||||
|
@ -803,6 +806,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_KHX)
|
||||
return (1u << RADV_MAX_QUEUE_FAMILIES) - 1u;
|
||||
if (family == VK_QUEUE_FAMILY_IGNORED)
|
||||
return 1u << queue_family;
|
||||
return 1u << family;
|
||||
|
|
Loading…
Reference in New Issue