diff --git a/external/fetch_sources.py b/external/fetch_sources.py
index b480098..625a39c 100644
--- a/external/fetch_sources.py
+++ b/external/fetch_sources.py
@@ -340,7 +340,7 @@
 	GitRepo(
 		"https://github.com/Igalia/vk_video_samples.git",
 		"git@github.com:Igalia/vk_video_samples.git",
-		"cts-integration-0.9.9-1",
+		"cts-integration-0.9.9-2",
 		"nvidia-video-samples"),
 	GitRepo(
 		"https://github.com/Igalia/ESExtractor.git",
diff --git a/external/vulkancts/modules/vulkan/video/vktVideoBaseDecodeUtils.cpp b/external/vulkancts/modules/vulkan/video/vktVideoBaseDecodeUtils.cpp
index 3da9904..c70334a 100644
--- a/external/vulkancts/modules/vulkan/video/vktVideoBaseDecodeUtils.cpp
+++ b/external/vulkancts/modules/vulkan/video/vktVideoBaseDecodeUtils.cpp
@@ -1396,6 +1396,10 @@
 	{
 		// For the Output Coincide, the DPB and destination output resources are the same.
 		pPicParams->decodeFrameInfo.dstPictureResource = pPicParams->dpbSetupPictureResource;
+
+		// Also, when we are copying the output we need to know which layer is used for the current frame.
+		// This is if a multi-layered image is used for the DPB and the output (since they coincide).
+		cachedParameters->decodedPictureInfo.imageLayerIndex = pPicParams->dpbSetupPictureResource.baseArrayLayer;
 	}
 	else if (pOutputPictureResourceInfo)
 	{
diff --git a/external/vulkancts/modules/vulkan/video/vktVideoDecodeTests.cpp b/external/vulkancts/modules/vulkan/video/vktVideoDecodeTests.cpp
index 2fe0b81..b8e595b 100644
--- a/external/vulkancts/modules/vulkan/video/vktVideoDecodeTests.cpp
+++ b/external/vulkancts/modules/vulkan/video/vktVideoDecodeTests.cpp
@@ -550,11 +550,12 @@
 	const VkExtent2D						 imageExtent{(deUint32)frame->displayWidth, (deUint32)frame->displayHeight};
 	const VkImage							 image	= frame->outputImageView->GetImageResource()->GetImage();
 	const VkFormat							 format = frame->outputImageView->GetImageResource()->GetImageCreateInfo().format;
+	const uint32_t							 videoImageLayerIndex = frame->imageLayerIndex;
 
 	MovePtr<vkt::ycbcr::MultiPlaneImageData> multiPlaneImageData(new vkt::ycbcr::MultiPlaneImageData(format, tcu::UVec2(imageExtent.width, imageExtent.height)));
 	const VkQueue							 queueDecode				   = getDeviceQueue(vkd, device, queueFamilyIndexDecode, 0u);
 	const VkQueue							 queueTransfer				   = getDeviceQueue(vkd, device, queueFamilyIndexTransfer, 0u);
-	const VkImageSubresourceRange			 imageSubresourceRange		   = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1);
+	const VkImageSubresourceRange			 imageSubresourceRange		   = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, videoImageLayerIndex, 1);
 	const VkImageMemoryBarrier2KHR			 imageBarrierDecode			   = makeImageMemoryBarrier2(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
 																				 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
 																				 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR,
@@ -646,7 +647,9 @@
 
 	VK_CHECK(vkd.waitForFences(device, DE_LENGTH_OF_ARRAY(fences), fences, DE_TRUE, ~0ull));
 
-	vkt::ycbcr::downloadImage(vkd, device, queueFamilyIndexTransfer, devctx.allocator(), image, multiPlaneImageData.get(), 0, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
+	vkt::ycbcr::downloadImage(vkd, device, queueFamilyIndexTransfer, devctx.allocator(), image,
+	                          multiPlaneImageData.get(), 0, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+	                          videoImageLayerIndex);
 
 	const VkImageMemoryBarrier2KHR imageBarrierTransfer2 = makeImageMemoryBarrier2(VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR,
 																				   VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR,
diff --git a/external/vulkancts/modules/vulkan/video/vktVideoFrameBuffer.cpp b/external/vulkancts/modules/vulkan/video/vktVideoFrameBuffer.cpp
index 4604aff..6b14413 100644
--- a/external/vulkancts/modules/vulkan/video/vktVideoFrameBuffer.cpp
+++ b/external/vulkancts/modules/vulkan/video/vktVideoFrameBuffer.cpp
@@ -618,6 +618,8 @@
 	if ((deUint32)pictureIndex < m_perFrameDecodeImageSet.size()) {
 		pDecodedFrame->pictureIndex = pictureIndex;
 
+		pDecodedFrame->imageLayerIndex = m_perFrameDecodeImageSet[pictureIndex].m_picDispInfo.imageLayerIndex;
+
 		pDecodedFrame->decodedImageView = m_perFrameDecodeImageSet[pictureIndex].GetFrameImageView();
 		pDecodedFrame->outputImageView = m_perFrameDecodeImageSet[pictureIndex].GetDisplayImageView();
 
diff --git a/external/vulkancts/modules/vulkan/video/vktVideoFrameBuffer.hpp b/external/vulkancts/modules/vulkan/video/vktVideoFrameBuffer.hpp
index 179c070..b3d913a 100644
--- a/external/vulkancts/modules/vulkan/video/vktVideoFrameBuffer.hpp
+++ b/external/vulkancts/modules/vulkan/video/vktVideoFrameBuffer.hpp
@@ -152,6 +152,7 @@
 struct DecodedFrame
 {
 	int32_t								 pictureIndex;
+	uint32_t							 imageLayerIndex; // The layer of a multi-layered images. Always "0" for single layered images
 	int32_t								 displayWidth;
 	int32_t								 displayHeight;
 	VkSharedBaseObj<VkImageResourceView> decodedImageView;
@@ -176,6 +177,7 @@
 	void								 Reset()
 	{
 		pictureIndex				= -1;
+		imageLayerIndex				= 0;
 		displayWidth				= 0;
 		displayHeight				= 0;
 		decodedImageView			= nullptr;
diff --git a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.cpp b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.cpp
index 8e1e7e6..341379d 100644
--- a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.cpp
+++ b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.cpp
@@ -562,7 +562,8 @@
 					VkImage					image,
 					MultiPlaneImageData*	imageData,
 					VkAccessFlags			prevAccess,
-					VkImageLayout			initialLayout)
+					VkImageLayout			initialLayout,
+					uint32_t			baseArrayLayer)
 {
 	const VkQueue					queue			= getDeviceQueue(vkd, device, queueFamilyNdx, 0u);
 	const Unique<VkCommandPool>		cmdPool			(createCommandPool(vkd, device, (VkCommandPoolCreateFlags)0, queueFamilyNdx));
@@ -597,7 +598,7 @@
 					static_cast<vk::VkImageAspectFlags>(aspect),
 					0u,
 					1u,
-					0u,
+					baseArrayLayer,
 					1u
 				}
 			};
@@ -621,7 +622,7 @@
 				0u,		// bufferOffset
 				0u,		// bufferRowLength
 				0u,		// bufferImageHeight
-				{ (VkImageAspectFlags)aspect, 0u, 0u, 1u },
+				{ (VkImageAspectFlags)aspect, 0u, baseArrayLayer, 1u },
 				makeOffset3D(0u, 0u, 0u),
 				planeExtent
 			};
diff --git a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.hpp b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.hpp
index 7de80ed..780dd83 100644
--- a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.hpp
+++ b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.hpp
@@ -124,7 +124,8 @@
 																		 vk::VkImage				image,
 																		 MultiPlaneImageData*		imageData,
 																		 vk::VkAccessFlags			prevAccess,
-																		 vk::VkImageLayout			initialLayout);
+																		 vk::VkImageLayout			initialLayout,
+																		 uint32_t				baseArrayLayer = 0);
 
 void										readImageMemory				(const vk::DeviceInterface&							vkd,
 																		 vk::VkDevice										device,
