aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Elliott <ian@lunarg.com>2015-09-28 11:24:53 -0600
committerIan Elliott <ian@lunarg.com>2015-09-28 11:24:53 -0600
commit025f39a46bdb70521d06e7f18dca76262bdeb0b2 (patch)
treed4fa82925a367cd3d4d5ae2fead2ff6dfdfc6696
parent4902af96e8472802d925aee3d22ab952c2c7f246 (diff)
downloadusermoji-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.
-rw-r--r--layers/swapchain.cpp19
-rw-r--r--layers/swapchain.h1
-rw-r--r--layers/vk_validation_layer_details.md3
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