Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I8224a74ae64ae8aafa4e0edbaab5aa7c5f2b322d
diff --git a/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp b/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp
index fb1d586..6063a9d 100644
--- a/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp
+++ b/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp
@@ -1590,7 +1590,13 @@
 		}
 
 		if (x == NUM_SUBMITS - 1)
+		{
 			vk.cmdCopyBuffer(*cmdBuffer, **buffers[2], **copyBuffer, 1, &copyParams);
+			memBarrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
+			memBarrier.dstAccessMask = VK_ACCESS_HOST_READ_BIT;
+			vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT,
+				0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
+		}
 
 		endCommandBuffer(vk, *cmdBuffer);
 
diff --git a/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp b/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
index 173dc2b..e199808 100644
--- a/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
+++ b/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
@@ -1106,7 +1106,17 @@
 		// set hand picked sizes
 		m_lineWidths.push_back(5.0f);
 		m_lineWidths.push_back(10.0f);
-		m_lineWidths.push_back(range[1]);
+
+		// Do not pick line width with 0.5 fractional value as rounding direction is not defined.
+		if (deFloatFrac(range[1]) == 0.5f)
+		{
+			m_lineWidths.push_back(range[1] - context.getDeviceProperties().limits.lineWidthGranularity);
+		}
+		else
+		{
+			m_lineWidths.push_back(range[1]);
+		}
+
 		DE_ASSERT((int)m_lineWidths.size() == m_iterationCount);
 
 		m_maxLineWidth = range[1];