Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/vulkan-cts-1.2.8

Change-Id: I1c0a72196ea1fe9774e494d1b4dd204931e433a9
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-instruction-simplify-atanh-log-undefined.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-instruction-simplify-atanh-log-undefined.amber
index 267b7ff..52fe7d5 100644
--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-instruction-simplify-atanh-log-undefined.amber
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-instruction-simplify-atanh-log-undefined.amber
@@ -56,7 +56,6 @@
 #         _GLF_color.g = _float_0_0;
 #     }
 # }
-DEVICE_EXTENSION VK_KHR_shader_float_controls
 SHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
 ; SPIR-V
 ; Version: 1.0
@@ -64,13 +63,10 @@
 ; Bound: 57
 ; Schema: 0
                OpCapability Shader
-               OpCapability SignedZeroInfNanPreserve
-               OpExtension "SPV_KHR_float_controls"
           %1 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %4 "main" %9
                OpExecutionMode %4 OriginUpperLeft
-               OpExecutionMode %4 SignedZeroInfNanPreserve 32
                OpSource ESSL 310
                OpName %4 "main"
                OpName %9 "_GLF_color"
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index 76815c6..3409736 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -1813,10 +1813,21 @@
 
 struct CheckEnumeratePhysicalDeviceGroupsIncompleteResult : public CheckIncompleteResult<VkPhysicalDeviceGroupProperties>
 {
-	void getResult (Context& context, VkPhysicalDeviceGroupProperties* data)
+	CheckEnumeratePhysicalDeviceGroupsIncompleteResult (const InstanceInterface& vki, const VkInstance instance)
+		: m_vki			(vki)
+		, m_instance	(instance)
+		{}
+
+	void getResult (Context&, VkPhysicalDeviceGroupProperties* data)
 	{
-		m_result = context.getInstanceInterface().enumeratePhysicalDeviceGroups(context.getInstance(), &m_count, data);
+		for (uint32_t idx = 0u; idx < m_count; ++idx)
+			data[idx] = initVulkanStructure();
+		m_result = m_vki.enumeratePhysicalDeviceGroups(m_instance, &m_count, data);
 	}
+
+protected:
+	const InstanceInterface&	m_vki;
+	const VkInstance			m_instance;
 };
 
 struct CheckEnumerateInstanceLayerPropertiesIncompleteResult : public CheckIncompleteResult<VkLayerProperties>
@@ -1883,7 +1894,7 @@
 {
 	TestLog&											log				= context.getTestContext().getLog();
 	tcu::ResultCollector								results			(log);
-	const CustomInstance								instance		(createCustomInstanceWithExtension(context, "VK_KHR_device_group_creation"));
+	CustomInstance										instance		(createCustomInstanceWithExtension(context, "VK_KHR_device_group_creation"));
 	const InstanceDriver&								vki				(instance.getDriver());
 	const vector<VkPhysicalDeviceGroupProperties>		devicegroups	= enumeratePhysicalDeviceGroups(vki, instance);
 
@@ -1892,8 +1903,9 @@
 	for (size_t ndx = 0; ndx < devicegroups.size(); ndx++)
 		log << TestLog::Message << ndx << ": " << devicegroups[ndx] << TestLog::EndMessage;
 
-	CheckEnumeratePhysicalDeviceGroupsIncompleteResult()(context, results, devicegroups.size());
+	CheckEnumeratePhysicalDeviceGroupsIncompleteResult(vki, instance)(context, results, devicegroups.size());
 
+	instance.collectMessages();
 	return tcu::TestStatus(results.getResult(), results.getMessage());
 }
 
diff --git a/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageMemoryAliasing.cpp b/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageMemoryAliasing.cpp
index f465a93..e946c47 100755
--- a/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageMemoryAliasing.cpp
+++ b/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageMemoryAliasing.cpp
@@ -598,7 +598,7 @@
 				));
 			}
 
-			deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, static_cast<deUint32>(imageSparseShaderStorageBarriers.size()), imageSparseShaderStorageBarriers.data());
+			deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, static_cast<deUint32>(imageSparseShaderStorageBarriers.size()), imageSparseShaderStorageBarriers.data());
 		}
 
 		// Create descriptor set layout