Fix 2d image views in fragment shading rate tests

If viewType is VK_IMAGE_VIEW_TYPE_2D then subresourceRange.layerCount
must be 1

Components: Vulkan

VK-GL-CTS issue: 4124

Affected tests:
dEQP-VK.fragment_shading_rate.*

Change-Id: I32db55ce0785a2d91c391625bfed312d5e7371f0
diff --git a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp
index 7c55857..ea676f3 100644
--- a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp
+++ b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp
@@ -1241,9 +1241,9 @@
 			VkFormat srFormat = srFillFormats[formatIdx];
 			deUint32 srFillBpp = tcu::getPixelSize(mapVkFormat(srFormat));
 
-			VkImageLayout srLayout = modeIdx == ATTACHMENT_MODE_LAYOUT_OPTIMAL ? VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR : VK_IMAGE_LAYOUT_GENERAL;
-			VkImageViewType srViewType = modeIdx == ATTACHMENT_MODE_2DARRAY ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
-			VkImageTiling srTiling = (modeIdx == ATTACHMENT_MODE_TILING_LINEAR) ? VK_IMAGE_TILING_LINEAR : VK_IMAGE_TILING_OPTIMAL;
+			VkImageLayout	srLayout	= modeIdx == ATTACHMENT_MODE_LAYOUT_OPTIMAL ? VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR : VK_IMAGE_LAYOUT_GENERAL;
+			VkImageViewType srViewType	= (modeIdx == ATTACHMENT_MODE_2DARRAY || numSRLayers > 1u) ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
+			VkImageTiling	srTiling	= (modeIdx == ATTACHMENT_MODE_TILING_LINEAR) ? VK_IMAGE_TILING_LINEAR : VK_IMAGE_TILING_OPTIMAL;
 
 			VkFormatProperties srFormatProperties;
 			m_context.getInstanceInterface().getPhysicalDeviceFormatProperties(m_context.getPhysicalDevice(), srFormat, &srFormatProperties);
@@ -1323,7 +1323,8 @@
 						0u,										// deUint32				baseMipLevel;
 						1u,										// deUint32				levelCount;
 						0u,										// deUint32				baseArrayLayer;
-						numSRLayers								// deUint32				layerCount;
+						srViewType == VK_IMAGE_VIEW_TYPE_2D ?
+						1 : numSRLayers,						// deUint32				layerCount;
 					}											// VkImageSubresourceRange	subresourceRange;
 				};
 				srImageView = createImageView(vk, device, &imageViewCreateInfo, NULL);
@@ -1553,7 +1554,7 @@
 					srUsage,													//  VkImageUsageFlags	usage;
 					srWidth,													//  deUint32			width;
 					srHeight,													//  deUint32			height;
-					numSRLayers,												//  deUint32			layerCount;
+					srViewType == VK_IMAGE_VIEW_TYPE_2D ? 1 : numSRLayers,		//  deUint32			layerCount;
 					1u,															//  deUint32			viewFormatCount;
 					&srFormat,													//  const VkFormat*		pViewFormats;
 				}