tests: Get tests running and compiling on Windows
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 5a1da2b..ae0eceb 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -215,15 +215,36 @@
 
     for (i = 0; i < targets; i++) {
         VkImageObj *img = new VkImageObj(m_device);
-        img->init(m_width, m_height, m_render_target_fmt,
-                VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT);
+ 
+        VkFormatProperties props;
+        size_t size = sizeof(props);
+        VkResult err;
+
+        err = vkGetFormatInfo(m_device->obj(), m_render_target_fmt,
+            VK_FORMAT_INFO_TYPE_PROPERTIES,
+            &size, &props);
+        ASSERT_VK_SUCCESS(err);
+
+        if (props.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) {
+            img->init(m_width, m_height, m_render_target_fmt,
+            VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_TILING_LINEAR);
+        }
+        else if (props.optimalTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) {
+            img->init(m_width, m_height, m_render_target_fmt,
+            VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_TILING_OPTIMAL);
+        }
+        else {
+            FAIL() << "Neither Linear nor Optimal allowed for render target";
+        }
+        
+        m_renderTargets.push_back(img);
         m_colorBindings[i].view  = img->targetView();
         m_colorBindings[i].layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
-        m_renderTargets.push_back(img);
         load_ops.push_back(VK_ATTACHMENT_LOAD_OP_LOAD);
         store_ops.push_back(VK_ATTACHMENT_STORE_OP_STORE);
         clear_colors.push_back(m_clear_color);
     }
+
       // Create Framebuffer and RenderPass with color attachments and any depth/stencil attachment
     VkFramebufferCreateInfo fb_info = {};
     fb_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
@@ -493,6 +514,11 @@
                            VkImageLayout image_layout)
 {
     VkResult U_ASSERT_ONLY err;
+
+    if (image_layout == m_descriptorInfo.imageLayout) {
+        return;
+    }
+
     VkCommandBufferObj cmd_buf(m_device);
 
     /* Build command buffer to set image layout in the driver */