Use the correct SPIR-V capabilities for viewport index in fsr tests

If api version used is < 1.2 then the SPIR-V capability
ShaderViewportIndexLayerEXT must be used, otherwise the SPIR-V
capabilities shaderOutputLayer and shaderOutputViewportIndex must be
used

Components: Vulkan

VK-GL-CTS issue: 4413

Affected tests:
dEQP-VK.fragment_shading_rate.*

Change-Id: I5a5e3b5c7f51eeb9e534c9bc56c7c2ec28184a53
diff --git a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp
index 9f7e9d3..c68ad4b 100644
--- a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp
+++ b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp
@@ -370,6 +370,8 @@
 	vss << "}\n";
 
 	programCollection.glslSources.add("vert") << glu::VertexSource(vss.str());
+	programCollection.glslSources.add("vert_1_2") << glu::VertexSource(vss.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_5, 0u, true);
+
 
 	if (m_data.geometryShader)
 	{
@@ -1740,7 +1742,11 @@
 			};
 
 			Move<VkShaderModule> fragShader = createShaderModule(vk, device, m_context.getBinaryCollection().get("frag"), 0);
-			Move<VkShaderModule> vertShader = createShaderModule(vk, device, m_context.getBinaryCollection().get("vert"), 0);
+			Move<VkShaderModule> vertShader;
+			if (m_context.contextSupports(VK_API_VERSION_1_2))
+				vertShader = createShaderModule(vk, device, m_context.getBinaryCollection().get("vert_1_2"), 0);
+			else
+				vertShader = createShaderModule(vk, device, m_context.getBinaryCollection().get("vert"), 0);
 			Move<VkShaderModule> geomShader;
 			if (m_data.geometryShader)
 				geomShader = createShaderModule(vk, device, m_context.getBinaryCollection().get("geom"), 0);