aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Hayes <jeremy@lunarg.com>2016-03-01 16:51:02 -0700
committerJeremy Hayes <jeremy@lunarg.com>2016-03-01 17:03:45 -0700
commitffcd3cff874e42ce36db0440e56514d5fdf0fa91 (patch)
tree20ed38afac55c7c050bd75f8adb6fba0732c02bf
parentad4ead6be633f9fbe3e7c9da0aac8efad4a9dca0 (diff)
downloadusermoji-ffcd3cff874e42ce36db0440e56514d5fdf0fa91.tar.xz
layers: gllavl#77 validate layout during clear
Change-Id: I427cd1fcc6ecf115dbaf521387a909f117c13d07
-rw-r--r--layers/image.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/layers/image.cpp b/layers/image.cpp
index 5f354502..ecfcc38d 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -664,6 +664,16 @@ VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
{
VkBool32 skipCall = VK_FALSE;
layer_data *device_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map);
+
+ if (imageLayout != VK_IMAGE_LAYOUT_GENERAL ||
+ imageLayout != VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL)
+ {
+ skipCall |= log_msg(device_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
+ (uint64_t)commandBuffer, __LINE__, IMAGE_INVALID_LAYOUT, "IMAGE",
+ "vkCmdClearColorImage parameter, imageLayout, must be VK_IMAGE_LAYOUT_GENERAL or "
+ "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL");
+ }
+
// For each range, image aspect must be color only
for (uint32_t i = 0; i < rangeCount; i++) {
if (pRanges[i].aspectMask != VK_IMAGE_ASPECT_COLOR_BIT) {