Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
authorAlexander Galazin <alexander.galazin@arm.com>
Fri, 8 Sep 2017 08:12:41 +0000 (10:12 +0200)
committerAlexander Galazin <alexander.galazin@arm.com>
Fri, 8 Sep 2017 08:12:41 +0000 (10:12 +0200)
Change-Id: I480177a05de5faeb43cf9602554d636ede456bec

external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
external/vulkancts/modules/vulkan/image/vktImageTranscodingSupportTests.cpp
external/vulkancts/modules/vulkan/memory/vktMemoryBindingTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelinePushConstantTests.cpp
external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp

index 26098eb..af8c011 100644 (file)
@@ -2314,8 +2314,7 @@ tcu::TestStatus imageFormatProperties (Context& context, const VkFormat format,
                                results.check(imageType != VK_IMAGE_TYPE_3D || properties.maxArrayLayers == 1, "Invalid maxArrayLayers for 3D image");
 
                                if (tiling == VK_IMAGE_TILING_OPTIMAL && imageType == VK_IMAGE_TYPE_2D && !(curCreateFlags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT) &&
-                                        ((supportedFeatures & (VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT)) ||
-                                        ((supportedFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) && deviceFeatures.shaderStorageImageMultisample)))
+                                        (supportedFeatures & (VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT)))
                                {
                                        const VkSampleCountFlags        requiredSampleCounts    = getRequiredOptimalTilingSampleCounts(deviceLimits, format, curUsageFlags);
                                        results.check((properties.sampleCounts & requiredSampleCounts) == requiredSampleCounts, "Required sample counts not supported");
index 4cabe98..ab46dab 100644 (file)
@@ -450,7 +450,7 @@ VkImageCreateInfo GraphicsAttachmentsTestInstance::makeCreateImageInfo (const Vk
 {
        const VkImageType                       imageType                               = mapImageType(type);
        const VkImageCreateFlags        imageCreateFlagsBase    = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT;
-       const VkImageCreateFlags        imageCreateFlagsAddOn   = extendedImageCreateFlag ? VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR | VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR : 0;
+       const VkImageCreateFlags        imageCreateFlagsAddOn   = extendedImageCreateFlag ? VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR : 0;
        const VkImageCreateFlags        imageCreateFlags                = imageCreateFlagsBase | imageCreateFlagsAddOn;
 
        const VkImageCreateInfo createImageInfo =
index b1ad7b2..6e47e24 100644 (file)
@@ -757,7 +757,7 @@ void                                                                        readUpResource                                          (Move<VkImage>&                 source,
 
        VK_CHECK(vk.beginCommandBuffer(*cmdBuffer, &cmdBufferBeginInfo));
        vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &srcImageBarrier);
-       vk.cmdCopyImageToBuffer(*cmdBuffer, *source, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, *target, 1, (&copyRegion));
+       vk.cmdCopyImageToBuffer(*cmdBuffer, *source, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *target, 1, (&copyRegion));
        vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &dstBufferBarrier, 1, &postImageBarrier);
        VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
 
index d49b7ae..dddf31b 100644 (file)
@@ -1549,6 +1549,8 @@ tcu::TestStatus PushConstantComputeTestInstance::iterate (void)
        VK_CHECK(vk.queueSubmit(queue, 1, &submitInfo, *m_fence));
        VK_CHECK(vk.waitForFences(vkDevice, 1, &m_fence.get(), true, ~(0ull) /* infinity*/));
 
+       invalidateMappedMemoryRange(vk, vkDevice, m_outBufferAlloc->getMemory(), m_outBufferAlloc->getOffset(), (size_t)(sizeof(tcu::Vec4) * 8));
+
        // verify result
        std::vector<tcu::Vec4>  expectValue(8, tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f));
        if (deMemCmp((void*)(&expectValue[0]), m_outBufferAlloc->getHostPtr(), (size_t)(sizeof(tcu::Vec4) * 8)))
index 874489a..7560867 100644 (file)
@@ -2111,29 +2111,10 @@ tcu::TestStatus SSBOLayoutCaseInstance::iterate (void)
                        mappedBlockPtrs = blockLocationsToPtrs(m_refLayout, blockLocations, mapPtrs);
                        copyData(m_refLayout, mappedBlockPtrs, m_refLayout, m_initialData.pointers);
 
-                       if (m_bufferMode == SSBOLayoutCase::BUFFERMODE_PER_BLOCK)
+                       for (size_t allocNdx = 0; allocNdx < m_uniformAllocs.size(); allocNdx++)
                        {
-                               DE_ASSERT(m_uniformAllocs.size() == bufferSizes.size());
-                               for (size_t allocNdx = 0; allocNdx < m_uniformAllocs.size(); allocNdx++)
-                               {
-                                       const int size = bufferSizes[allocNdx];
-                                       vk::Allocation* alloc = m_uniformAllocs[allocNdx].get();
-                                       flushMappedMemoryRange(vk, device, alloc->getMemory(), alloc->getOffset(), size);
-                               }
-                       }
-                       else
-                       {
-                               DE_ASSERT(m_bufferMode == SSBOLayoutCase::BUFFERMODE_SINGLE);
-                               DE_ASSERT(m_uniformAllocs.size() == 1);
-                               int totalSize = 0;
-                               for (size_t bufferNdx = 0; bufferNdx < bufferSizes.size(); bufferNdx++)
-                               {
-                                       totalSize += bufferSizes[bufferNdx];
-                               }
-
-                               DE_ASSERT(totalSize > 0);
-                               vk::Allocation* alloc = m_uniformAllocs[0].get();
-                               flushMappedMemoryRange(vk, device, alloc->getMemory(), alloc->getOffset(), totalSize);
+                               vk::Allocation* alloc = m_uniformAllocs[allocNdx].get();
+                               flushMappedMemoryRange(vk, device, alloc->getMemory(), alloc->getOffset(), VK_WHOLE_SIZE);
                        }
                }
        }
@@ -2266,6 +2247,8 @@ tcu::TestStatus SSBOLayoutCaseInstance::iterate (void)
                const int refCount = 1;
                int resCount = 0;
 
+               invalidateMappedMemoryRange(vk, device, acBufferAlloc->getMemory(), acBufferAlloc->getOffset(), acBufferSize);
+
                resCount = *((const int*)acBufferAlloc->getHostPtr());
 
                counterOk = (refCount == resCount);
@@ -2275,6 +2258,12 @@ tcu::TestStatus SSBOLayoutCaseInstance::iterate (void)
                }
        }
 
+       for (size_t allocNdx = 0; allocNdx < m_uniformAllocs.size(); allocNdx++)
+       {
+               vk::Allocation *alloc = m_uniformAllocs[allocNdx].get();
+               invalidateMappedMemoryRange(vk, device, alloc->getMemory(), alloc->getOffset(), VK_WHOLE_SIZE);
+       }
+
        // Validate result
        const bool compareOk = compareData(m_context.getTestContext().getLog(), m_refLayout, m_writeData.pointers, m_refLayout, mappedBlockPtrs);