From 9bb4db752dec48b5f608b0f3d6078258f38777d3 Mon Sep 17 00:00:00 2001 From: Anders Frostad Pedersen Date: Thu, 28 Nov 2019 12:46:30 +0100 Subject: Vulkan: Improve error translation in CreateSwapChainKHR Set VK_ERROR_OUT_OF_DEVICE_MEMORY in case the cause of the failure from dequeueBuffer is an actual ENOMEM situation. Otherwise set VK_ERROR_SURFACE_LOST_KHR as catch-all. Bug: 145331195 Test: dEQP-VK.wsi.android.swapchain.create.image_extent Change-Id: I8e7b4af3133e2a851beeda3618e24ca86279d317 Merged-In: I8e7b4af3133e2a851beeda3618e24ca86279d317 --- vulkan/libvulkan/swapchain.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp index fbf6d0d233..766d9ff8be 100644 --- a/vulkan/libvulkan/swapchain.cpp +++ b/vulkan/libvulkan/swapchain.cpp @@ -1302,7 +1302,14 @@ VkResult CreateSwapchainKHR(VkDevice device, // TODO(jessehall): Improve error reporting. Can we enumerate // possible errors and translate them to valid Vulkan result codes? ALOGE("dequeueBuffer[%u] failed: %s (%d)", i, strerror(-err), err); - result = VK_ERROR_SURFACE_LOST_KHR; + switch (-err) { + case ENOMEM: + result = VK_ERROR_OUT_OF_DEVICE_MEMORY; + break; + default: + result = VK_ERROR_SURFACE_LOST_KHR; + break; + } break; } img.buffer = buffer; -- cgit v1.2.3