Merge branch '340-cube-corner-mustpass' into 'vulkan-cts-1.0'
authorPyry Haulos <phaulos@google.com>
Thu, 7 Apr 2016 20:47:36 +0000 (20:47 +0000)
committerPyry Haulos <phaulos@google.com>
Thu, 7 Apr 2016 20:47:36 +0000 (20:47 +0000)
Remove test affected by cube corner texel selection issue

See #340

See merge request !505

external/vulkancts/modules/vulkan/draw/vktDrawBaseClass.cpp
external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateBaseClass.cpp
external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateRSTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.hpp

index 7e18d9e..00623a5 100644 (file)
@@ -198,6 +198,18 @@ void DrawTestsBaseClass::beginRenderPass (void)
        m_vk.cmdClearColorImage(*m_cmdBuffer, m_colorTargetImage->object(),
                vk::VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
 
+       const vk::VkMemoryBarrier memBarrier =
+       {
+               vk::VK_STRUCTURE_TYPE_MEMORY_BARRIER,
+               DE_NULL,
+               vk::VK_ACCESS_TRANSFER_WRITE_BIT,
+               vk::VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
+       };
+
+       m_vk.cmdPipelineBarrier(*m_cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT,
+               vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+               0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
+
        const vk::VkRect2D renderArea = { { 0, 0 }, { WIDTH, HEIGHT } };
        const RenderPassBeginInfo renderPassBegin(*m_renderPass, *m_framebuffer, renderArea);
 
index 53f61ee..530a32b 100644 (file)
@@ -199,6 +199,18 @@ void DynamicStateBaseClass::beginRenderPassWithClearColor (const vk::VkClearColo
        m_vk.cmdClearColorImage(*m_cmdBuffer, m_colorTargetImage->object(),
                vk::VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
 
+       const vk::VkMemoryBarrier memBarrier =
+       {
+               vk::VK_STRUCTURE_TYPE_MEMORY_BARRIER,
+               DE_NULL,
+               vk::VK_ACCESS_TRANSFER_WRITE_BIT,
+               vk::VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
+       };
+
+       m_vk.cmdPipelineBarrier(*m_cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT,
+               vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+               0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
+
        const vk::VkRect2D renderArea = { { 0, 0 }, { WIDTH, HEIGHT } };
        const RenderPassBeginInfo renderPassBegin(*m_renderPass, *m_framebuffer, renderArea);
 
index 5012614..903a2eb 100644 (file)
@@ -295,6 +295,20 @@ protected:
                m_vk.cmdClearDepthStencilImage(*m_cmdBuffer, m_depthStencilImage->object(),
                                                                           vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &depthStencilClearValue, 2, subresourceRangeDepthStencil);
 
+               const vk::VkMemoryBarrier memBarrier =
+               {
+                       vk::VK_STRUCTURE_TYPE_MEMORY_BARRIER,
+                       DE_NULL,
+                       vk::VK_ACCESS_TRANSFER_WRITE_BIT,
+                       vk::VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+                               vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
+               };
+
+               m_vk.cmdPipelineBarrier(*m_cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT,
+                       vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT |
+                       vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+                       0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
+
                const vk::VkRect2D renderArea = { { 0, 0 }, { WIDTH, HEIGHT } };
                const RenderPassBeginInfo renderPassBegin(*m_renderPass, *m_framebuffer, renderArea);
 
index 0667e22..d799f42 100644 (file)
@@ -340,6 +340,7 @@ ImageSamplingInstance::ImageSamplingInstance (Context&                                                      context,
                                                                                          const std::vector<Vertex4Tex4>&       vertices)
        : vkt::TestInstance             (context)
        , m_imageViewType               (imageViewType)
+       , m_imageFormat                 (imageFormat)
        , m_imageSize                   (imageSize)
        , m_layerCount                  (layerCount)
        , m_componentMapping    (componentMapping)
@@ -988,16 +989,20 @@ tcu::TestStatus ImageSamplingInstance::verifyImage (void)
                const deUint32                          queueFamilyIndex                        = m_context.getUniversalQueueFamilyIndex();
                SimpleAllocator                         memAlloc                                        (vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
                MovePtr<tcu::TextureLevel>      result                                          = readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, memAlloc, *m_colorImage, m_colorFormat, m_renderSize);
+               tcu::UVec4                                      threshold                                       = tcu::UVec4(4, 4, 4, 4);
+
+               if ((m_imageFormat == vk::VK_FORMAT_EAC_R11G11_SNORM_BLOCK) || (m_imageFormat == vk::VK_FORMAT_EAC_R11_SNORM_BLOCK))
+                       threshold = tcu::UVec4(8, 8, 8, 8);
 
                compareOk = tcu::intThresholdPositionDeviationCompare(m_context.getTestContext().getLog(),
-                                                                                                                         "IntImageCompare",
-                                                                                                                         "Image comparison",
-                                                                                                                         refRenderer->getAccess(),
-                                                                                                                         result->getAccess(),
-                                                                                                                         tcu::UVec4(4, 4, 4, 4),
-                                                                                                                         tcu::IVec3(1, 1, 0),
-                                                                                                                         true,
-                                                                                                                         tcu::COMPARE_LOG_RESULT);
+                                                                     "IntImageCompare",
+                                                                     "Image comparison",
+                                                                     refRenderer->getAccess(),
+                                                                     result->getAccess(),
+                                                                     threshold,
+                                                                     tcu::IVec3(1, 1, 0),
+                                                                     true,
+                                                                     tcu::COMPARE_LOG_RESULT);
        }
 
        if (compareOk)
index f3ce713..32a47c8 100644 (file)
@@ -62,6 +62,7 @@ protected:
 
 private:
        const vk::VkImageViewType                                       m_imageViewType;
+       const vk::VkFormat                                                      m_imageFormat;
        const tcu::IVec3                                                        m_imageSize;
        const int                                                                       m_layerCount;