Fix issues in pipeline.timestamp.transfer_tests
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / modules / vulkan / pipeline / vktPipelineBlendTests.cpp
index b92e355..93ca41b 100644 (file)
@@ -594,8 +594,8 @@ BlendTestInstance::BlendTestInstance (Context&                                                                      context,
                                0u,                                             // deUint32             writeMask;
                                0u                                              // deUint32             reference;
                        },
-                       -1.0f,                                                                                                          // float                        minDepthBounds;
-                       +1.0f                                                                                                           // float                        maxDepthBounds;
+                       0.0f,                                                                                                           // float                        minDepthBounds;
+                       1.0f                                                                                                            // float                        maxDepthBounds;
                };
 
                // The color blend attachment will be set up before creating the graphics pipeline.
@@ -735,9 +735,28 @@ BlendTestInstance::BlendTestInstance (Context&                                                                     context,
                        &attachmentClearValue                                                                   // const VkClearValue*  pClearValues;
                };
 
+               // Color image layout transition
+               const VkImageMemoryBarrier imageLayoutBarrier =
+               {
+                       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,                                                                 // VkStructureType            sType;
+                       DE_NULL,                                                                                                                                // const void*                pNext;
+                       (VkAccessFlags)0,                                                                                                               // VkAccessFlags              srcAccessMask;
+                       VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                                                   // VkAccessFlags              dstAccessMask;
+                       VK_IMAGE_LAYOUT_UNDEFINED,                                                                                              // VkImageLayout              oldLayout;
+                       VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,                                                               // VkImageLayout              newLayout;
+                       VK_QUEUE_FAMILY_IGNORED,                                                                                                // uint32_t                   srcQueueFamilyIndex;
+                       VK_QUEUE_FAMILY_IGNORED,                                                                                                // uint32_t                   dstQueueFamilyIndex;
+                       *m_colorImage,                                                                                                                  // VkImage                    image;
+                       { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u }                                                   // VkImageSubresourceRange    subresourceRange;
+               };
+
                m_cmdBuffer = allocateCommandBuffer(vk, vkDevice, &cmdBufferAllocateInfo);
 
                VK_CHECK(vk.beginCommandBuffer(*m_cmdBuffer, &cmdBufferBeginInfo));
+
+               vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, (VkDependencyFlags)0,
+                       0u, DE_NULL, 0u, DE_NULL, 1u, &imageLayoutBarrier);
+
                vk.cmdBeginRenderPass(*m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
 
                const VkDeviceSize quadOffset = (m_vertices.size() / BlendTest::QUAD_COUNT) * sizeof(Vertex4RGBA);