Skip to content
Snippets Groups Projects
Commit 48b3ef62 authored by Dave Airlie's avatar Dave Airlie Committed by Marge Bot
Browse files

vulkan/wsi: handle queue families properly for non-concurrent sharing mode.


"queueFamilyIndexCount is the number of queue families having access to the image(s) of the
swapchain when imageSharingMode is VK_SHARING_MODE_CONCURRENT.
pQueueFamilyIndices is a pointer to an array of queue family indices having access to the
images(s) of the swapchain when imageSharingMode is VK_SHARING_MODE_CONCURRENT."

If the type isn't concurrent, don't attempt to access the arrays.

dEQP-VK.wsi.xlib.swapchain.create.exclusive_nonzero_queues on lavapipe.

Fixes: 5b13d745 ("vulkan/wsi/drm: Break create_native_image in pieces")
Reviewed-by: default avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <mesa/mesa!15101>
parent 221ce1b3
No related branches found
No related tags found
No related merge requests found
......@@ -362,16 +362,22 @@ wsi_configure_image(const struct wsi_swapchain *chain,
struct wsi_image_info *info)
{
memset(info, 0, sizeof(*info));
uint32_t *queue_family_indices;
uint32_t *queue_family_indices =
vk_alloc(&chain->alloc,
sizeof(*queue_family_indices) *
pCreateInfo->queueFamilyIndexCount,
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (!queue_family_indices)
goto err_oom;
for (uint32_t i = 0; i < pCreateInfo->queueFamilyIndexCount; i++)
queue_family_indices[i] = pCreateInfo->pQueueFamilyIndices[i];
if (pCreateInfo->imageSharingMode == VK_SHARING_MODE_CONCURRENT) {
queue_family_indices =
vk_alloc(&chain->alloc,
sizeof(*queue_family_indices) *
pCreateInfo->queueFamilyIndexCount,
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (!queue_family_indices)
goto err_oom;
for (uint32_t i = 0; i < pCreateInfo->queueFamilyIndexCount; i++)
queue_family_indices[i] = pCreateInfo->pQueueFamilyIndices[i];
} else {
queue_family_indices = NULL;
}
info->create = (VkImageCreateInfo) {
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment