diff options
| author | Ian Elliott <ian@lunarg.com> | 2015-09-28 11:24:53 -0600 |
|---|---|---|
| committer | Ian Elliott <ian@lunarg.com> | 2015-09-28 11:24:53 -0600 |
| commit | 025f39a46bdb70521d06e7f18dca76262bdeb0b2 (patch) | |
| tree | d4fa82925a367cd3d4d5ae2fead2ff6dfdfc6696 /layers | |
| parent | 4902af96e8472802d925aee3d22ab952c2c7f246 (diff) | |
| download | usermoji-025f39a46bdb70521d06e7f18dca76262bdeb0b2.tar.xz | |
WSI Validation: Removed 2 checks that are driver-specific.
The purpose of this layer is to validate the application's usage of WSI, not to
validate the driver's conformance with WSI.
Diffstat (limited to 'layers')
| -rw-r--r-- | layers/swapchain.cpp | 19 | ||||
| -rw-r--r-- | layers/swapchain.h | 1 | ||||
| -rw-r--r-- | layers/vk_validation_layer_details.md | 3 |
3 files changed, 4 insertions, 19 deletions
diff --git a/layers/swapchain.cpp b/layers/swapchain.cpp index 97fbd145..bfcd2ab8 100644 --- a/layers/swapchain.cpp +++ b/layers/swapchain.cpp @@ -896,6 +896,9 @@ VK_LAYER_EXPORT VkResult VKAPI vkGetSwapchainImagesKHR(VkDevice device, VkSwapch result = device_dispatch_table(device)->GetSwapchainImagesKHR( device, swapchain, pCount, pSwapchainImages); +// TBD: Should we validate that this function was called once with +// pSwapchainImages set to NULL (and record pCount at that time), and then +// called again with a non-NULL pSwapchainImages? if ((result == VK_SUCCESS) && pSwapchain &&pSwapchainImages && pCount && (*pCount > 0)) { // Record the images and their state: @@ -977,22 +980,6 @@ VK_LAYER_EXPORT VkResult VKAPI vkAcquireNextImageKHR(VkDevice device, VkSwapchai if (((result == VK_SUCCESS) || (result == VK_SUBOPTIMAL_KHR)) && pSwapchain) { - if (*pImageIndex >= pSwapchain->imageCount) { - LOG_ERROR(VK_OBJECT_TYPE_SWAPCHAIN_KHR, swapchain, - "VkSwapchainKHR", - SWAPCHAIN_INDEX_TOO_LARGE, - "%s() returned an index that's too large (i.e. %d). " - "There are only %d images in this VkSwapchainKHR.", - __FUNCTION__, *pImageIndex, pSwapchain->imageCount); - } - if (pSwapchain->images[*pImageIndex].ownedByApp) { - LOG_ERROR(VK_OBJECT_TYPE_SWAPCHAIN_KHR, swapchain, - "VkSwapchainKHR", - SWAPCHAIN_INDEX_ALREADY_IN_USE, - "%s() returned an index (i.e. %d) for an image that " - "is already owned by the application.\n", - __FUNCTION__, *pImageIndex); - } // Change the state of the image (now owned by the application): pSwapchain->images[*pImageIndex].ownedByApp = true; } diff --git a/layers/swapchain.h b/layers/swapchain.h index 286a23bf..8414d474 100644 --- a/layers/swapchain.h +++ b/layers/swapchain.h @@ -60,7 +60,6 @@ typedef enum _SWAPCHAIN_ERROR SWAPCHAIN_DESTROY_SWAP_DIFF_DEVICE, // Called vkDestroySwapchainKHR() with a different VkDevice than vkCreateSwapchainKHR() SWAPCHAIN_APP_OWNS_TOO_MANY_IMAGES, // vkAcquireNextImageKHR() asked for more images than are available SWAPCHAIN_INDEX_TOO_LARGE, // Index is too large for swapchain - SWAPCHAIN_INDEX_ALREADY_IN_USE, // vkAcquireNextImageKHR() returned index that is already owned by app SWAPCHAIN_INDEX_NOT_IN_USE, // vkQueuePresentKHR() given index that is not owned by app } SWAPCHAIN_ERROR; diff --git a/layers/vk_validation_layer_details.md b/layers/vk_validation_layer_details.md index 0639ffb1..998d3cf7 100644 --- a/layers/vk_validation_layer_details.md +++ b/layers/vk_validation_layer_details.md @@ -319,8 +319,7 @@ For the second category of errors, DeviceLimits stores its own internal record o | vkCreateSwapchainKHR(pCreateInfo->presentMode) | Validates vkCreateSwapchainKHR(pCreateInfo->presentMode) | CREATE_SWAP_BAD_PRESENT_MODE | vkCreateSwapchainKHR | NA | None | | Use same device for swapchain | Validates that vkDestroySwapchainKHR() called with the same VkDevice as vkCreateSwapchainKHR() | DESTROY_SWAP_DIFF_DEVICE | vkDestroySwapchainKHR | NA | None | | Don't use too many images | Validates that app never tries to own too many swapchain images at a time | APP_OWNS_TOO_MANY_IMAGES | vkAcquireNextImageKHR | NA | None | -| Index too large | Validates that an image index is within the number of images in a swapchain | INDEX_TOO_LARGE | vkAcquireNextImageKHR vkQueuePresentKHR | NA | None | -| Can't use an simultaneously use an image | If vkAcquireNextImageKHR() returns index of an image that is already owned by the application | INDEX_ALREADY_IN_USE | vkAcquireNextImageKHR | NA | None | +| Index too large | Validates that an image index is within the number of images in a swapchain | INDEX_TOO_LARGE | vkQueuePresentKHR | NA | None | | Can't present a non-owned image | Validates that application only presents images that it owns | INDEX_NOT_IN_USE | vkQueuePresentKHR | NA | None | ### Swapchain Pending Work |
