Use the correct SPIR-V capabilities in shader_viewport_index tests If api version used is < 1.2 then te SPIR-V capability ShaderViewportIndexLayerEXT must be used, otherwise the SPIR-V capabilities shaderOutputLayer and shaderOutputViewportIndex must be used Components: Vulkan VK-GL-CTS issue: 4458 Affected tests: dEQP-VK.draw.renderpass.shader_viewport_index.* Change-Id: Ieb2102049f2cc45733f3a1554e5d7753f6b6d0da
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp index 5ecb994..ac25f10 100644 --- a/external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp +++ b/external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp
@@ -463,6 +463,7 @@ << "}\n"; programCollection.glslSources.add("vert") << glu::VertexSource(src.str()); + programCollection.glslSources.add("vert_1_2") << glu::VertexSource(src.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_5, 0u, true); } // Fragment shader @@ -502,6 +503,7 @@ << "}\n"; programCollection.glslSources.add("vert") << glu::VertexSource(src.str()); + programCollection.glslSources.add("vert_1_2") << glu::VertexSource(src.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_5, 0u, true); } // Fragment shader @@ -543,6 +545,7 @@ << "}\n"; programCollection.glslSources.add("vert") << glu::VertexSource(src.str()); + programCollection.glslSources.add("vert_1_2") << glu::VertexSource(src.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_5, 0u, true); } // Tessellation control shader @@ -596,6 +599,7 @@ << "}\n"; programCollection.glslSources.add("tese") << glu::TessellationEvaluationSource(src.str()); + programCollection.glslSources.add("tese_1_2") << glu::TessellationEvaluationSource(src.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_5, 0u, true); } // Fragment shader @@ -693,10 +697,10 @@ if (shader == TESSELLATION) { m_tessellationControlModule = createShaderModule (vk, device, context.getBinaryCollection().get("tesc"), 0u); - m_tessellationEvaluationModule = createShaderModule (vk, device, context.getBinaryCollection().get("tese"), 0u); + m_tessellationEvaluationModule = createShaderModule (vk, device, context.getBinaryCollection().get(context.contextSupports(VK_API_VERSION_1_2) ? "tese_1_2" : "tese"), 0u); } - m_vertexModule = createShaderModule (vk, device, context.getBinaryCollection().get("vert"), 0u); + m_vertexModule = createShaderModule (vk, device, context.getBinaryCollection().get(context.contextSupports(VK_API_VERSION_1_2) ? "vert_1_2" : "vert"), 0u); m_fragmentModule = createShaderModule (vk, device, context.getBinaryCollection().get("frag"), 0u); if (!m_useDynamicRendering)