From aef8f2aa8534a48ba1898b5fd712c82970c30afd Mon Sep 17 00:00:00 2001 From: Thomas Louis Date: Wed, 11 Jan 2017 00:17:08 +0100 Subject: layers: GH1355, Fix bad swapchain image accesses vkAcquireNextImageKHR throws Access Violation Exception. Added a new error enum value and created an error check in vkAcquireNextImageKHR to avoid index out of bounds exception (thrown in core_validation) within the application. Change-Id: Ie7fe2d3830e26c21b09290054cc39bc55e534cbc --- layers/core_validation.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 4087178c..2db93ba7 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -12413,6 +12413,14 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImageKHR(VkDevice device, VkSwapchainK acquired_images); } } + + if (swapchain_data->images.size() == 0) { + skip_call |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, + reinterpret_cast(swapchain), __LINE__, DRAWSTATE_SWAPCHAIN_IMAGES_NOT_FOUND, "DS", + "vkAcquireNextImageKHR: No images found to acquire from. Application probably did not call " + "vkGetSwapchainImagesKHR after swapchain creation."); + } + lock.unlock(); if (skip_call) -- cgit v1.2.3