diff options
| author | Jeremy Hayes <jeremy@lunarg.com> | 2016-03-01 16:51:02 -0700 |
|---|---|---|
| committer | Jeremy Hayes <jeremy@lunarg.com> | 2016-03-01 17:03:45 -0700 |
| commit | ffcd3cff874e42ce36db0440e56514d5fdf0fa91 (patch) | |
| tree | 20ed38afac55c7c050bd75f8adb6fba0732c02bf /layers/image.cpp | |
| parent | ad4ead6be633f9fbe3e7c9da0aac8efad4a9dca0 (diff) | |
| download | usermoji-ffcd3cff874e42ce36db0440e56514d5fdf0fa91.tar.xz | |
layers: gllavl#77 validate layout during clear
Change-Id: I427cd1fcc6ecf115dbaf521387a909f117c13d07
Diffstat (limited to 'layers/image.cpp')
| -rw-r--r-- | layers/image.cpp | 10 |
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) { |
