aboutsummaryrefslogtreecommitdiff
path: root/layers/swapchain.cpp
diff options
context:
space:
mode:
authorIan Elliott <ianelliott@google.com>2015-12-30 17:39:02 -0700
committerJon Ashburn <jon@lunarg.com>2016-01-06 12:23:09 -0700
commit46b7632a4518c217ffdcee400a2f8063f0494242 (patch)
treece243f911803ae07da0b7f710530f659ec45dac7 /layers/swapchain.cpp
parentcac973f2a797d2c7a9732e7f03c376e45e7caa9e (diff)
downloadusermoji-46b7632a4518c217ffdcee400a2f8063f0494242.tar.xz
Swapchain: Fixes and improvements validating vkCreate*SurfaceKHR().
Diffstat (limited to 'layers/swapchain.cpp')
-rw-r--r--layers/swapchain.cpp123
1 files changed, 114 insertions, 9 deletions
diff --git a/layers/swapchain.cpp b/layers/swapchain.cpp
index 9a3c2faf..3d3c09b0 100644
--- a/layers/swapchain.cpp
+++ b/layers/swapchain.cpp
@@ -349,6 +349,23 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
instance,
"VkInstance");
}
+ if (!pCreateInfo) {
+ skipCall |= LOG_ERROR_NULL_POINTER(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ } else {
+ if (pCreateInfo->sType != VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR) {
+ skipCall |= LOG_ERROR_WRONG_STYPE(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo",
+ "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR");
+ }
+ if (pCreateInfo->pNext != NULL) {
+ skipCall |= LOG_ERROR_WRONG_NEXT(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ }
+ }
if (VK_FALSE == skipCall) {
// Call down the call chain:
@@ -388,6 +405,23 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
instance,
"VkInstance");
}
+ if (!pCreateInfo) {
+ skipCall |= LOG_ERROR_NULL_POINTER(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ } else {
+ if (pCreateInfo->sType != VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR) {
+ skipCall |= LOG_ERROR_WRONG_STYPE(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo",
+ "VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR");
+ }
+ if (pCreateInfo->pNext != NULL) {
+ skipCall |= LOG_ERROR_WRONG_NEXT(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ }
+ }
if (VK_FALSE == skipCall) {
// Call down the call chain:
@@ -465,6 +499,23 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
instance,
"VkInstance");
}
+ if (!pCreateInfo) {
+ skipCall |= LOG_ERROR_NULL_POINTER(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ } else {
+ if (pCreateInfo->sType != VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR) {
+ skipCall |= LOG_ERROR_WRONG_STYPE(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo",
+ "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR");
+ }
+ if (pCreateInfo->pNext != NULL) {
+ skipCall |= LOG_ERROR_WRONG_NEXT(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ }
+ }
if (VK_FALSE == skipCall) {
// Call down the call chain:
@@ -542,6 +593,23 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
instance,
"VkInstance");
}
+ if (!pCreateInfo) {
+ skipCall |= LOG_ERROR_NULL_POINTER(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ } else {
+ if (pCreateInfo->sType != VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR) {
+ skipCall |= LOG_ERROR_WRONG_STYPE(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo",
+ "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR");
+ }
+ if (pCreateInfo->pNext != NULL) {
+ skipCall |= LOG_ERROR_WRONG_NEXT(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ }
+ }
if (VK_FALSE == skipCall) {
// Call down the call chain:
@@ -618,6 +686,23 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
instance,
"VkInstance");
}
+ if (!pCreateInfo) {
+ skipCall |= LOG_ERROR_NULL_POINTER(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ } else {
+ if (pCreateInfo->sType != VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR) {
+ skipCall |= LOG_ERROR_WRONG_STYPE(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo",
+ "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR");
+ }
+ if (pCreateInfo->pNext != NULL) {
+ skipCall |= LOG_ERROR_WRONG_NEXT(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ }
+ }
if (VK_FALSE == skipCall) {
// Call down the call chain:
@@ -696,6 +781,23 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
instance,
"VkInstance");
}
+ if (!pCreateInfo) {
+ skipCall |= LOG_ERROR_NULL_POINTER(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ } else {
+ if (pCreateInfo->sType != VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR) {
+ skipCall |= LOG_ERROR_WRONG_STYPE(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo",
+ "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR");
+ }
+ if (pCreateInfo->pNext != NULL) {
+ skipCall |= LOG_ERROR_WRONG_NEXT(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ }
+ }
if (VK_FALSE == skipCall) {
// Call down the call chain:
@@ -1190,15 +1292,18 @@ static VkBool32 validateCreateSwapchainKHR(
skipCall |= LOG_ERROR_NULL_POINTER(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
device,
"pCreateInfo");
- } else if (pCreateInfo->sType != VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) {
- skipCall |= LOG_ERROR_WRONG_STYPE(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
- device,
- "pCreateInfo",
- "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR");
- } else if (pCreateInfo->pNext != NULL) {
- skipCall |= LOG_ERROR_WRONG_NEXT(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
- device,
- "pCreateInfo");
+ } else {
+ if (pCreateInfo->sType != VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) {
+ skipCall |= LOG_ERROR_WRONG_STYPE(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo",
+ "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR");
+ }
+ if (pCreateInfo->pNext != NULL) {
+ skipCall |= LOG_ERROR_WRONG_NEXT(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+ device,
+ "pCreateInfo");
+ }
}
if (!pSwapchain) {
skipCall |= LOG_ERROR_NULL_POINTER(VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,