lavapipe: adopt wsi_common_create_swapchain_image
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35875>
This commit is contained in:
@@ -218,45 +218,24 @@ lvp_swapchain_get_image(VkSwapchainKHR swapchain,
|
||||
return lvp_image_from_handle(image);
|
||||
}
|
||||
|
||||
static VkResult
|
||||
lvp_image_from_swapchain(VkDevice device,
|
||||
const VkImageCreateInfo *pCreateInfo,
|
||||
const VkImageSwapchainCreateInfoKHR *swapchain_info,
|
||||
const VkAllocationCallbacks *pAllocator,
|
||||
VkImage *pImage)
|
||||
{
|
||||
ASSERTED struct lvp_image *swapchain_image = lvp_swapchain_get_image(swapchain_info->swapchain, 0);
|
||||
assert(swapchain_image);
|
||||
|
||||
assert(swapchain_image->vk.image_type == pCreateInfo->imageType);
|
||||
|
||||
VkImageCreateInfo local_create_info;
|
||||
local_create_info = *pCreateInfo;
|
||||
local_create_info.pNext = NULL;
|
||||
/* The following parameters are implictly selected by the wsi code. */
|
||||
local_create_info.tiling = VK_IMAGE_TILING_OPTIMAL;
|
||||
local_create_info.samples = VK_SAMPLE_COUNT_1_BIT;
|
||||
local_create_info.usage |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
|
||||
|
||||
assert(!(local_create_info.usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT));
|
||||
return lvp_image_create(device, &local_create_info, pAllocator,
|
||||
pImage);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL
|
||||
lvp_CreateImage(VkDevice device,
|
||||
lvp_CreateImage(VkDevice _device,
|
||||
const VkImageCreateInfo *pCreateInfo,
|
||||
const VkAllocationCallbacks *pAllocator,
|
||||
VkImage *pImage)
|
||||
{
|
||||
#if !DETECT_OS_ANDROID
|
||||
LVP_FROM_HANDLE(lvp_device, device, _device);
|
||||
const VkImageSwapchainCreateInfoKHR *swapchain_info =
|
||||
vk_find_struct_const(pCreateInfo->pNext, IMAGE_SWAPCHAIN_CREATE_INFO_KHR);
|
||||
if (swapchain_info && swapchain_info->swapchain != VK_NULL_HANDLE)
|
||||
return lvp_image_from_swapchain(device, pCreateInfo, swapchain_info,
|
||||
pAllocator, pImage);
|
||||
if (swapchain_info && swapchain_info->swapchain != VK_NULL_HANDLE) {
|
||||
return wsi_common_create_swapchain_image(&device->physical_device->wsi_device,
|
||||
pCreateInfo,
|
||||
swapchain_info->swapchain,
|
||||
pImage);
|
||||
}
|
||||
#endif
|
||||
return lvp_image_create(device, pCreateInfo, pAllocator,
|
||||
return lvp_image_create(_device, pCreateInfo, pAllocator,
|
||||
pImage);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user