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

Change-Id: I909eb1b0ad19d236b3cc70ea9bd9e99480977711
diff --git a/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDispatchTests.cpp b/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDispatchTests.cpp
index bacc1e2..0a594af 100644
--- a/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDispatchTests.cpp
+++ b/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDispatchTests.cpp
@@ -311,6 +311,21 @@
 		vk.cmdExecuteCommands(*cmdBuffer, 1, &secondaryCmdBuffer.get());
 	}
 
+	const vk::VkBufferMemoryBarrier outputBufferMemoryBarrier =
+	{
+		vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
+		DE_NULL,
+		vk::VK_ACCESS_SHADER_WRITE_BIT,
+		vk::VK_ACCESS_HOST_READ_BIT,
+		VK_QUEUE_FAMILY_IGNORED,
+		VK_QUEUE_FAMILY_IGNORED,
+		outputBuffer.get(),
+		0u,
+		VK_WHOLE_SIZE
+	};
+
+	vk.cmdPipelineBarrier(*cmdBuffer, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &outputBufferMemoryBarrier, 0u, DE_NULL);
+
 	endCommandBuffer(vk, *cmdBuffer);
 
 	submitCommandsAndWait(vk, device, queue, *cmdBuffer);
diff --git a/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawAndClearTests.cpp b/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawAndClearTests.cpp
index 0ce3e11..40124dd 100644
--- a/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawAndClearTests.cpp
+++ b/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawAndClearTests.cpp
@@ -773,6 +773,21 @@
 
 	copyResultImageToBuffer(m_testParams.m_testDepth ? VK_IMAGE_ASPECT_DEPTH_BIT : VK_IMAGE_ASPECT_COLOR_BIT, m_testParams.m_testDepth ? m_depthTargetImage->object() : m_colorTargetImage->object());
 
+	const vk::VkBufferMemoryBarrier bufferMemoryBarrier =
+	{
+		vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
+		DE_NULL,
+		vk::VK_ACCESS_TRANSFER_WRITE_BIT,
+		vk::VK_ACCESS_HOST_READ_BIT,
+		VK_QUEUE_FAMILY_IGNORED,
+		VK_QUEUE_FAMILY_IGNORED,
+		m_resultBuffer->object(),
+		0u,
+		VK_WHOLE_SIZE
+	};
+
+	m_vkd.cmdPipelineBarrier(*m_cmdBufferPrimary, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &bufferMemoryBarrier, 0u, DE_NULL);
+
 	endCommandBuffer(m_vkd, *m_cmdBufferPrimary);
 
 	submitCommandsAndWait(m_vkd, m_device, m_queue, *m_cmdBufferPrimary);
@@ -942,6 +957,21 @@
 
 	copyResultImageToBuffer(VK_IMAGE_ASPECT_COLOR_BIT, m_colorTargetImage->object());
 
+	const vk::VkBufferMemoryBarrier bufferMemoryBarrier =
+	{
+		vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
+		DE_NULL,
+		vk::VK_ACCESS_TRANSFER_WRITE_BIT,
+		vk::VK_ACCESS_HOST_READ_BIT,
+		VK_QUEUE_FAMILY_IGNORED,
+		VK_QUEUE_FAMILY_IGNORED,
+		m_resultBuffer->object(),
+		0u,
+		VK_WHOLE_SIZE
+	};
+
+	m_vkd.cmdPipelineBarrier(*m_cmdBufferPrimary, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &bufferMemoryBarrier, 0u, DE_NULL);
+
 	endCommandBuffer(m_vkd, *m_cmdBufferPrimary);
 
 	submitCommandsAndWait(m_vkd, m_device, m_queue, *m_cmdBufferPrimary);
@@ -1221,6 +1251,21 @@
 
 	copyResultImageToBuffer(VK_IMAGE_ASPECT_COLOR_BIT, m_colorTargetImage->object());
 
+	const vk::VkBufferMemoryBarrier bufferMemoryBarrier =
+	{
+		vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
+		DE_NULL,
+		vk::VK_ACCESS_TRANSFER_WRITE_BIT,
+		vk::VK_ACCESS_HOST_READ_BIT,
+		VK_QUEUE_FAMILY_IGNORED,
+		VK_QUEUE_FAMILY_IGNORED,
+		m_conditionalRenderingBuffer->object(),
+		0u,
+		VK_WHOLE_SIZE
+	};
+
+	m_vkd.cmdPipelineBarrier(*m_cmdBufferPrimary, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &bufferMemoryBarrier, 0u, DE_NULL);
+
 	endCommandBuffer(m_vkd, *m_cmdBufferPrimary);
 
 	submitCommandsAndWait(m_vkd, m_device, m_queue, *m_cmdBufferPrimary);
@@ -1232,7 +1277,7 @@
 
 	m_testParams ? prepareReferenceImageOneColor(reference, tcu::Vec4(0,1,0,1)) : prepareReferenceImageOneColor(reference, clearColorInitial);
 
-	flushMappedMemoryRange(m_vkd, m_device, m_conditionalRenderingBuffer->getBoundMemory().getMemory(), m_conditionalRenderingBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
+	invalidateMappedMemoryRange(m_vkd, m_device, m_conditionalRenderingBuffer->getBoundMemory().getMemory(), m_conditionalRenderingBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
 
 	if (!tcu::floatThresholdCompare(m_context.getTestContext().getLog(), "Comparison", "Comparison", reference, result, tcu::Vec4(0.01f), tcu::COMPARE_LOG_ON_ERROR))
 		return tcu::TestStatus::fail("Fail");
diff --git a/external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp b/external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp
index 39465fc..a1bc610 100644
--- a/external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp
+++ b/external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp
@@ -501,7 +501,7 @@
 			1u,
 			0u,
 		};
-		const Unique<VkDeviceMemory>			memory			(allocateMemory(vk, device, &allocInfo));
+		const Unique<VkDeviceMemory>			memory			(allocateMemory(vk, device, &allocInfo, callbackRecorder.getCallbacks()));
 		AllocationCallbackValidationResults		validateRes;
 
 		validateAllocationCallbacks(callbackRecorder, &validateRes);
diff --git a/external/vulkancts/modules/vulkan/memory/vktMemoryMappingTests.cpp b/external/vulkancts/modules/vulkan/memory/vktMemoryMappingTests.cpp
index 14c4921..221cea4 100644
--- a/external/vulkancts/modules/vulkan/memory/vktMemoryMappingTests.cpp
+++ b/external/vulkancts/modules/vulkan/memory/vktMemoryMappingTests.cpp
@@ -290,7 +290,7 @@
 			1u,
 			0u,
 		};
-		const Unique<VkDeviceMemory>			memory			(allocateMemory(vk, device, &allocInfo));
+		const Unique<VkDeviceMemory>			memory			(allocateMemory(vk, device, &allocInfo, callbackRecorder.getCallbacks()));
 		AllocationCallbackValidationResults		validateRes;
 
 		validateAllocationCallbacks(callbackRecorder, &validateRes);
diff --git a/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderUtil.cpp b/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderUtil.cpp
index 797da55..4fb0b55 100644
--- a/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderUtil.cpp
+++ b/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderUtil.cpp
@@ -269,7 +269,7 @@
 																			? VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
 																			: VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
 	const VkAccessFlags							srcAccessMask				= dsAttacmentAvailable
-																			? VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
+																			? VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
 																			: VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
 	vector <SubpassDep>							subpassDependencies;
 	for(deUint32 subpassNdx = 0u; subpassNdx < subpassCount; ++subpassNdx)