From: Cort Date: Thu, 8 Dec 2016 17:59:47 +0000 (-0800) Subject: tests: InvalidImageLayout review feedback X-Git-Tag: sdk-1.0.37.0~45 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=34a24f155cdb85b876848e9afc44f3e07d5c301f;p=platform%2Fupstream%2FVulkan-LoaderAndValidationLayers.git tests: InvalidImageLayout review feedback - Follow variable name/case conventions - Removed unnecessary positive tests --- diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp index b85ff93..88efefd 100644 --- a/tests/layer_validation_tests.cpp +++ b/tests/layer_validation_tests.cpp @@ -10392,8 +10392,6 @@ TEST_F(VkLayerTest, InvalidImageLayout) { // * -1 Attempt to submit cmd buf w/ deleted image // * -2 Cmd buf submit of image w/ layout not matching first use w/ subresource // * -3 Cmd buf submit of image w/ layout not matching first use w/o subresource - m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT, - "Layout for input image should be TRANSFER_SRC_OPTIMAL instead of GENERAL."); ASSERT_NO_FATAL_FAILURE(InitState()); // Create src & dst images to use for copy operations @@ -10433,32 +10431,32 @@ TEST_F(VkLayerTest, InvalidImageLayout) { // Allocate memory VkMemoryRequirements img_mem_reqs = {}; - VkMemoryAllocateInfo memAlloc = {}; + VkMemoryAllocateInfo mem_alloc = {}; VkDeviceMemory src_image_mem, dst_image_mem, depth_image_mem; - memAlloc.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - memAlloc.pNext = NULL; - memAlloc.allocationSize = 0; - memAlloc.memoryTypeIndex = 0; + mem_alloc.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; + mem_alloc.pNext = NULL; + mem_alloc.allocationSize = 0; + mem_alloc.memoryTypeIndex = 0; vkGetImageMemoryRequirements(m_device->device(), src_image, &img_mem_reqs); - memAlloc.allocationSize = img_mem_reqs.size; - bool pass = m_device->phy().set_memory_type(img_mem_reqs.memoryTypeBits, &memAlloc, 0); + mem_alloc.allocationSize = img_mem_reqs.size; + bool pass = m_device->phy().set_memory_type(img_mem_reqs.memoryTypeBits, &mem_alloc, 0); ASSERT_TRUE(pass); - err = vkAllocateMemory(m_device->device(), &memAlloc, NULL, &src_image_mem); + err = vkAllocateMemory(m_device->device(), &mem_alloc, NULL, &src_image_mem); ASSERT_VK_SUCCESS(err); vkGetImageMemoryRequirements(m_device->device(), dst_image, &img_mem_reqs); - memAlloc.allocationSize = img_mem_reqs.size; - pass = m_device->phy().set_memory_type(img_mem_reqs.memoryTypeBits, &memAlloc, 0); + mem_alloc.allocationSize = img_mem_reqs.size; + pass = m_device->phy().set_memory_type(img_mem_reqs.memoryTypeBits, &mem_alloc, 0); ASSERT_VK_SUCCESS(err); - err = vkAllocateMemory(m_device->device(), &memAlloc, NULL, &dst_image_mem); + err = vkAllocateMemory(m_device->device(), &mem_alloc, NULL, &dst_image_mem); ASSERT_VK_SUCCESS(err); vkGetImageMemoryRequirements(m_device->device(), depth_image, &img_mem_reqs); - memAlloc.allocationSize = img_mem_reqs.size; - pass = m_device->phy().set_memory_type(img_mem_reqs.memoryTypeBits, &memAlloc, 0); + mem_alloc.allocationSize = img_mem_reqs.size; + pass = m_device->phy().set_memory_type(img_mem_reqs.memoryTypeBits, &mem_alloc, 0); ASSERT_VK_SUCCESS(err); - err = vkAllocateMemory(m_device->device(), &memAlloc, NULL, &depth_image_mem); + err = vkAllocateMemory(m_device->device(), &mem_alloc, NULL, &depth_image_mem); ASSERT_VK_SUCCESS(err); err = vkBindImageMemory(m_device->device(), src_image, src_image_mem, 0); @@ -10469,53 +10467,56 @@ TEST_F(VkLayerTest, InvalidImageLayout) { ASSERT_VK_SUCCESS(err); BeginCommandBuffer(); - VkImageCopy copyRegion; - copyRegion.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - copyRegion.srcSubresource.mipLevel = 0; - copyRegion.srcSubresource.baseArrayLayer = 0; - copyRegion.srcSubresource.layerCount = 1; - copyRegion.srcOffset.x = 0; - copyRegion.srcOffset.y = 0; - copyRegion.srcOffset.z = 0; - copyRegion.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - copyRegion.dstSubresource.mipLevel = 0; - copyRegion.dstSubresource.baseArrayLayer = 0; - copyRegion.dstSubresource.layerCount = 1; - copyRegion.dstOffset.x = 0; - copyRegion.dstOffset.y = 0; - copyRegion.dstOffset.z = 0; - copyRegion.extent.width = 1; - copyRegion.extent.height = 1; - copyRegion.extent.depth = 1; - m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, VK_IMAGE_LAYOUT_GENERAL, 1, ©Region); + VkImageCopy copy_region; + copy_region.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + copy_region.srcSubresource.mipLevel = 0; + copy_region.srcSubresource.baseArrayLayer = 0; + copy_region.srcSubresource.layerCount = 1; + copy_region.srcOffset.x = 0; + copy_region.srcOffset.y = 0; + copy_region.srcOffset.z = 0; + copy_region.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + copy_region.dstSubresource.mipLevel = 0; + copy_region.dstSubresource.baseArrayLayer = 0; + copy_region.dstSubresource.layerCount = 1; + copy_region.dstOffset.x = 0; + copy_region.dstOffset.y = 0; + copy_region.dstOffset.z = 0; + copy_region.extent.width = 1; + copy_region.extent.height = 1; + copy_region.extent.depth = 1; + + m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT, + "Layout for input image should be TRANSFER_SRC_OPTIMAL instead of GENERAL."); + m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, VK_IMAGE_LAYOUT_GENERAL, 1, ©_region); m_errorMonitor->VerifyFound(); // Now cause error due to src image layout changing m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, "Cannot copy from an image whose source layout is " "VK_IMAGE_LAYOUT_UNDEFINED and doesn't match the current " "layout VK_IMAGE_LAYOUT_GENERAL."); - m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_UNDEFINED, dst_image, VK_IMAGE_LAYOUT_GENERAL, 1, ©Region); + m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_UNDEFINED, dst_image, VK_IMAGE_LAYOUT_GENERAL, 1, ©_region); m_errorMonitor->VerifyFound(); // Final src error is due to bad layout type m_errorMonitor->SetDesiredFailureMsg( VK_DEBUG_REPORT_ERROR_BIT_EXT, "Layout for input image is VK_IMAGE_LAYOUT_UNDEFINED but can only be TRANSFER_SRC_OPTIMAL or GENERAL."); - m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_UNDEFINED, dst_image, VK_IMAGE_LAYOUT_GENERAL, 1, ©Region); + m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_UNDEFINED, dst_image, VK_IMAGE_LAYOUT_GENERAL, 1, ©_region); m_errorMonitor->VerifyFound(); // Now verify same checks for dst m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT, "Layout for output image should be TRANSFER_DST_OPTIMAL instead of GENERAL."); - m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, VK_IMAGE_LAYOUT_GENERAL, 1, ©Region); + m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, VK_IMAGE_LAYOUT_GENERAL, 1, ©_region); m_errorMonitor->VerifyFound(); // Now cause error due to src image layout changing m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, "Cannot copy from an image whose dest layout is " "VK_IMAGE_LAYOUT_UNDEFINED and doesn't match the current " "layout VK_IMAGE_LAYOUT_GENERAL."); - m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, VK_IMAGE_LAYOUT_UNDEFINED, 1, ©Region); + m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, VK_IMAGE_LAYOUT_UNDEFINED, 1, ©_region); m_errorMonitor->VerifyFound(); m_errorMonitor->SetDesiredFailureMsg( VK_DEBUG_REPORT_ERROR_BIT_EXT, "Layout for output image is VK_IMAGE_LAYOUT_UNDEFINED but can only be TRANSFER_DST_OPTIMAL or GENERAL."); - m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, VK_IMAGE_LAYOUT_UNDEFINED, 1, ©Region); + m_commandBuffer->CopyImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, VK_IMAGE_LAYOUT_UNDEFINED, 1, ©_region); m_errorMonitor->VerifyFound(); // Convert dst and depth images to TRANSFER_DST for subsequent tests @@ -10537,46 +10538,38 @@ TEST_F(VkLayerTest, InvalidImageLayout) { NULL, 0, NULL, 1, transfer_dst_image_barrier); // Cause errors due to clearing with invalid image layouts - VkClearColorValue clearValue = {}; - VkImageSubresourceRange clearRange; - clearRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - clearRange.baseMipLevel = 0; - clearRange.baseArrayLayer = 0; - clearRange.layerCount = 1; - clearRange.levelCount = 1; + VkClearColorValue color_clear_value = {}; + VkImageSubresourceRange clear_range; + clear_range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + clear_range.baseMipLevel = 0; + clear_range.baseArrayLayer = 0; + clear_range.layerCount = 1; + clear_range.levelCount = 1; // Fail due to explicitly prohibited layout for color clear (only GENERAL and TRANSFER_DST are permitted). // Since the image is currently not in UNDEFINED layout, this will emit two errors. m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, VALIDATION_ERROR_01086); m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, VALIDATION_ERROR_01085); - m_commandBuffer->ClearColorImage(dst_image, VK_IMAGE_LAYOUT_UNDEFINED, &clearValue, 1, &clearRange); + m_commandBuffer->ClearColorImage(dst_image, VK_IMAGE_LAYOUT_UNDEFINED, &color_clear_value, 1, &clear_range); m_errorMonitor->VerifyFound(); // Fail due to provided layout not matching actual current layout for color clear. m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, VALIDATION_ERROR_01085); - m_commandBuffer->ClearColorImage(dst_image, VK_IMAGE_LAYOUT_GENERAL, &clearValue, 1, &clearRange); + m_commandBuffer->ClearColorImage(dst_image, VK_IMAGE_LAYOUT_GENERAL, &color_clear_value, 1, &clear_range); m_errorMonitor->VerifyFound(); - // This one should work correctly - m_errorMonitor->ExpectSuccess(); - m_commandBuffer->ClearColorImage(dst_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clearValue, 1, &clearRange); - m_errorMonitor->VerifyNotFound(); - VkClearDepthStencilValue depthClearValue = {}; - clearRange.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT; + VkClearDepthStencilValue depth_clear_value = {}; + clear_range.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT; // Fail due to explicitly prohibited layout for depth clear (only GENERAL and TRANSFER_DST are permitted). // Since the image is currently not in UNDEFINED layout, this will emit two errors. m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, VALIDATION_ERROR_01101); m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, VALIDATION_ERROR_01100); - m_commandBuffer->ClearDepthStencilImage(depth_image, VK_IMAGE_LAYOUT_UNDEFINED, &depthClearValue, 1, &clearRange); + m_commandBuffer->ClearDepthStencilImage(depth_image, VK_IMAGE_LAYOUT_UNDEFINED, &depth_clear_value, 1, &clear_range); m_errorMonitor->VerifyFound(); // Fail due to provided layout not matching actual current layout for depth clear. m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, VALIDATION_ERROR_01100); - m_commandBuffer->ClearDepthStencilImage(depth_image, VK_IMAGE_LAYOUT_GENERAL, &depthClearValue, 1, &clearRange); + m_commandBuffer->ClearDepthStencilImage(depth_image, VK_IMAGE_LAYOUT_GENERAL, &depth_clear_value, 1, &clear_range); m_errorMonitor->VerifyFound(); - // This one should work correctly - m_errorMonitor->ExpectSuccess(); - m_commandBuffer->ClearDepthStencilImage(depth_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &depthClearValue, 1, &clearRange); - m_errorMonitor->VerifyNotFound(); // Now cause error due to bad image layout transition in PipelineBarrier VkImageMemoryBarrier image_barrier[1] = {};