summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Frostad Pedersen <anders.pedersen@arm.corp-partner.google.com>2019-11-28 12:46:30 +0100
committerYiwei Zhang <zzyiwei@google.com>2019-11-29 18:06:46 -0800
commit9bb4db752dec48b5f608b0f3d6078258f38777d3 (patch)
tree6b82258b62bb0390ef3d1093242d9b08dc6ddcae
parent6cea68f9a126090f4c291b1c59a7858a02fc0c56 (diff)
downloadnative-9bb4db752dec48b5f608b0f3d6078258f38777d3.tar.gz
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
-rw-r--r--vulkan/libvulkan/swapchain.cpp9
1 files changed, 8 insertions, 1 deletions
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;