tests: Fix image creation with invalid initial layout
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 428ecfa..62e677e 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -723,19 +723,22 @@
     imageCreateInfo.extent.height = h;
     imageCreateInfo.mipLevels = mipCount;
     imageCreateInfo.tiling = tiling;
-    if (usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT)
-        imageCreateInfo.initialLayout =
-            VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
-    else if (usage & VK_IMAGE_USAGE_SAMPLED_BIT)
-        imageCreateInfo.initialLayout =
-            VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
-    else
-        imageCreateInfo.initialLayout = m_descriptorImageInfo.imageLayout;
+    imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
 
     layout(imageCreateInfo.initialLayout);
     imageCreateInfo.usage = usage;
 
     vk_testing::Image::init(*m_device, imageCreateInfo, reqs);
+
+    VkImageLayout newLayout;
+    if (usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT)
+        newLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+    else if (usage & VK_IMAGE_USAGE_SAMPLED_BIT)
+        newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+    else
+        newLayout = m_descriptorImageInfo.imageLayout;
+
+    SetLayout(VK_IMAGE_ASPECT_COLOR_BIT, newLayout);
 }
 
 VkResult VkImageObj::CopyImage(VkImageObj &src_image) {
@@ -834,6 +837,7 @@
     init(16, 16, tex_format,
          VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT,
          VK_IMAGE_TILING_OPTIMAL);
+    stagingImage.SetLayout(VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_LAYOUT_GENERAL);
 
     /* create image view */
     view.image = handle();
@@ -848,6 +852,7 @@
             row[x] = colors[(x & 1) ^ (y & 1)];
     }
     stagingImage.UnmapMemory();
+    stagingImage.SetLayout(VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
     VkImageObj::CopyImage(stagingImage);
 }