tests: Add CmdBlitImage format tests

Test two cases of mismatch of signed or unsigned int formats
in CmdBlitImage calls.
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 29fa2ba..76c0b09 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -3662,6 +3662,53 @@
     }
 }
 
+TEST_F(VkLayerTest, BlitImageFormats) {
+
+    // Image blit with mismatched formats
+    const char * expected_message =
+        "vkCmdBlitImage: If one of srcImage and dstImage images has signed/unsigned integer format,"
+        " the other one must also have signed/unsigned integer format";
+
+    ASSERT_NO_FATAL_FAILURE(InitState());
+
+    VkImageObj src_image(m_device);
+    src_image.init(64, 64, VK_FORMAT_A2B10G10R10_UINT_PACK32, VK_IMAGE_USAGE_TRANSFER_SRC_BIT, VK_IMAGE_TILING_LINEAR, 0);
+    VkImageObj dst_image(m_device);
+    dst_image.init(64, 64, VK_FORMAT_B8G8R8A8_UNORM, VK_IMAGE_USAGE_TRANSFER_DST_BIT, VK_IMAGE_TILING_LINEAR, 0);
+    VkImageObj dst_image2(m_device);
+    dst_image2.init(64, 64, VK_FORMAT_B8G8R8A8_SINT, VK_IMAGE_USAGE_TRANSFER_DST_BIT, VK_IMAGE_TILING_LINEAR, 0);
+
+    VkImageBlit blitRegion = {};
+    blitRegion.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
+    blitRegion.srcSubresource.baseArrayLayer = 0;
+    blitRegion.srcSubresource.layerCount = 1;
+    blitRegion.srcSubresource.mipLevel = 0;
+    blitRegion.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
+    blitRegion.dstSubresource.baseArrayLayer = 0;
+    blitRegion.dstSubresource.layerCount = 1;
+    blitRegion.dstSubresource.mipLevel = 0;
+
+    m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, expected_message);
+
+    // Unsigned int vs not an int
+    BeginCommandBuffer();
+    vkCmdBlitImage(m_commandBuffer->handle(), src_image.image(), src_image.layout(), dst_image.image(),
+                   dst_image.layout(), 1, &blitRegion, VK_FILTER_NEAREST);
+
+    m_errorMonitor->VerifyFound();
+
+    m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, expected_message);
+
+    // Unsigned int vs signed int
+    vkCmdBlitImage(m_commandBuffer->handle(), src_image.image(), src_image.layout(), dst_image2.image(),
+                   dst_image2.layout(), 1, &blitRegion, VK_FILTER_NEAREST);
+
+    m_errorMonitor->VerifyFound();
+
+    EndCommandBuffer();
+}
+
+
 TEST_F(VkLayerTest, DSImageTransferGranularityTests) {
     VkResult err;
     bool pass;