From 1a83cc5897c67214cb477f0864809ba03626b3fb Mon Sep 17 00:00:00 2001 From: Mike Byrne Date: Mon, 24 Jun 2019 07:44:23 +0100 Subject: [PATCH] Fix Android WSI shared presentable image test OOM The dEQP-VK.wsi.android.shared_presentable_image.scale_down tests fail intermittently with OOM errors. A simliar fix as implemented for WSI incremental presentable image tests resolves this. Affects: dEQP-VK.wsi.android.shared_presentable_image.scale_down.* Components: Vulkan, AOSP VK-GL-CTS Issue: 1858 Change-Id: Iee7a31560e46b6c449d14ec6e7c75d7406ae6d82 --- .../vulkan/wsi/vktWsiSharedPresentableImageTests.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiSharedPresentableImageTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiSharedPresentableImageTests.cpp index 545f094..352f308 100644 --- a/external/vulkancts/modules/vulkan/wsi/vktWsiSharedPresentableImageTests.cpp +++ b/external/vulkancts/modules/vulkan/wsi/vktWsiSharedPresentableImageTests.cpp @@ -630,20 +630,23 @@ std::vector generateSwapchainConfigs (vk::VkSurfac const vk::VkBool32 clipped = VK_FALSE; vector createInfos; + const deUint32 currentWidth = properties.currentExtent.width != 0xFFFFFFFFu + ? properties.currentExtent.width + : de::min(1024u, properties.minImageExtent.width + ((properties.maxImageExtent.width - properties.minImageExtent.width) / 2)); + const deUint32 currentHeight = properties.currentExtent.height != 0xFFFFFFFFu + ? properties.currentExtent.height + : de::min(1024u, properties.minImageExtent.height + ((properties.maxImageExtent.height - properties.minImageExtent.height) / 2)); + const deUint32 imageWidth = scaling == SCALING_NONE - ? (properties.currentExtent.width != 0xFFFFFFFFu - ? properties.currentExtent.width - : de::min(1024u, properties.minImageExtent.width + ((properties.maxImageExtent.width - properties.minImageExtent.width) / 2))) + ? currentWidth : (scaling == SCALING_UP ? de::max(31u, properties.minImageExtent.width) - : properties.maxImageExtent.width); + : de::min(deSmallestGreaterOrEquallPowerOfTwoU32(currentWidth+1), properties.maxImageExtent.width)); const deUint32 imageHeight = scaling == SCALING_NONE - ? (properties.currentExtent.height != 0xFFFFFFFFu - ? properties.currentExtent.height - : de::min(1024u, properties.minImageExtent.height + ((properties.maxImageExtent.height - properties.minImageExtent.height) / 2))) + ? currentHeight : (scaling == SCALING_UP ? de::max(31u, properties.minImageExtent.height) - : properties.maxImageExtent.height); + : de::min(deSmallestGreaterOrEquallPowerOfTwoU32(currentHeight+1), properties.maxImageExtent.height)); const vk::VkExtent2D imageSize = { imageWidth, imageHeight }; { -- 2.7.4