Remove VK_PIPELINE_CREATE_DERIVATIVE_BIT for pipeline libraries in util
authorziga-lunarg <ziga@lunarg.com>
Sat, 24 Sep 2022 20:09:24 +0000 (22:09 +0200)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 7 Oct 2022 18:00:24 +0000 (18:00 +0000)
vkPipelineConstructionUtil creates pipeline libraries with same flags as
the main pipeline, but base pipeline handle is never provided

Components: Vulkan, Framework

VK-GL-CTS issue: 3994

Affected tests:
dEQP-VK.pipeline.*

Change-Id: If30b3caebd00463587a00f9e82810b53a7b72eb6

external/vulkancts/framework/vulkan/vkPipelineConstructionUtil.cpp

index e25303b..b0ebcc7 100644 (file)
@@ -454,7 +454,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupVertexInputStete(const Vk
 
                VkGraphicsPipelineCreateInfo pipelinePartCreateInfo = initVulkanStructure();
                pipelinePartCreateInfo.pNext                            = firstStructInChain;
-               pipelinePartCreateInfo.flags                            = m_internalData->pipelineFlags | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR;
+               pipelinePartCreateInfo.flags                            = (m_internalData->pipelineFlags | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR) & ~VK_PIPELINE_CREATE_DERIVATIVE_BIT;
                pipelinePartCreateInfo.pVertexInputState        = pVertexInputState;
                pipelinePartCreateInfo.pInputAssemblyState      = pInputAssemblyState;
                pipelinePartCreateInfo.pDynamicState            = m_internalData->pDynamicState;
@@ -571,7 +571,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupPreRasterizationShaderSta
 
                VkGraphicsPipelineCreateInfo pipelinePartCreateInfo = initVulkanStructure();
                pipelinePartCreateInfo.pNext                            = firstStructInChain;
-               pipelinePartCreateInfo.flags                            = m_internalData->pipelineFlags | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR;
+               pipelinePartCreateInfo.flags                            = (m_internalData->pipelineFlags | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR) & ~VK_PIPELINE_CREATE_DERIVATIVE_BIT;
                pipelinePartCreateInfo.layout                           = layout;
                pipelinePartCreateInfo.renderPass                       = renderPass;
                pipelinePartCreateInfo.subpass                          = subpass;
@@ -650,7 +650,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupFragmentShaderState(const
 
                VkGraphicsPipelineCreateInfo pipelinePartCreateInfo = initVulkanStructure();
                pipelinePartCreateInfo.pNext                            = firstStructInChain;
-               pipelinePartCreateInfo.flags                            = m_internalData->pipelineFlags | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR;
+               pipelinePartCreateInfo.flags                            = (m_internalData->pipelineFlags | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR) & ~VK_PIPELINE_CREATE_DERIVATIVE_BIT;
                pipelinePartCreateInfo.layout                           = layout;
                pipelinePartCreateInfo.renderPass                       = renderPass;
                pipelinePartCreateInfo.subpass                          = subpass;
@@ -709,7 +709,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupFragmentOutputState(const
 
                VkGraphicsPipelineCreateInfo pipelinePartCreateInfo = initVulkanStructure();
                pipelinePartCreateInfo.pNext                            = firstStructInChain;
-               pipelinePartCreateInfo.flags                            = m_internalData->pipelineFlags | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR;
+               pipelinePartCreateInfo.flags                            = (m_internalData->pipelineFlags | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR) & ~VK_PIPELINE_CREATE_DERIVATIVE_BIT;
                pipelinePartCreateInfo.renderPass                       = renderPass;
                pipelinePartCreateInfo.subpass                          = subpass;
                pipelinePartCreateInfo.pColorBlendState         = pColorBlendState;