Fix a case where OOM condition was not checked

Fixes a case where backing image memory creator allocation was not
checked for out of memory condition which results in failing OOM CTS
tests.

Change-Id: I6c203599eca5562f334d4e5e3f21c200dc667ee5
Signed-off-by: Normunds Rieksts <normunds.rieksts@arm.com>
This commit is contained in:
Normunds Rieksts 2025-11-28 15:06:11 +00:00
parent a0947a5ae8
commit e030203d82
3 changed files with 12 additions and 0 deletions

View file

@ -202,6 +202,10 @@ VkResult swapchain::init_image_factory(const VkSwapchainCreateInfoKHR &swapchain
auto backing_memory_creator =
m_allocator.make_unique<external_image_backing_memory_creator>(m_device_data, *m_wsi_allocator, wsialloc_args);
if (backing_memory_creator == nullptr)
{
return VK_ERROR_OUT_OF_HOST_MEMORY;
}
m_image_factory.init(std::move(image_handle_creator), std::move(backing_memory_creator), true, true);
return VK_SUCCESS;

View file

@ -156,6 +156,10 @@ VkResult swapchain::init_image_factory(const VkSwapchainCreateInfoKHR &swapchain
auto image_handle_creator =
std::get<util::unique_ptr<vulkan_image_handle_creator>>(std::move(image_handle_creator_result));
auto backing_memory_creator = m_allocator.make_unique<device_backing_memory_creator>(m_device_data);
if (backing_memory_creator == nullptr)
{
return VK_ERROR_OUT_OF_HOST_MEMORY;
}
m_image_factory.init(std::move(image_handle_creator), std::move(backing_memory_creator), false, true);
return VK_SUCCESS;

View file

@ -267,6 +267,10 @@ VkResult swapchain::init_image_factory(const VkSwapchainCreateInfoKHR &swapchain
auto backing_memory_creator =
m_allocator.make_unique<external_image_backing_memory_creator>(m_device_data, *m_wsi_allocator, wsialloc_args);
if (backing_memory_creator == nullptr)
{
return VK_ERROR_OUT_OF_HOST_MEMORY;
}
m_image_factory.init(std::move(image_handle_creator), std::move(backing_memory_creator), true, false);
return VK_SUCCESS;