From d48a55d0b9dd03141cc2900539d0df34271f1f69 Mon Sep 17 00:00:00 2001 From: Piers Daniell Date: Wed, 27 Apr 2022 13:35:06 -0600 Subject: [PATCH] Modify pipeline library tests to always specify the layout A recent Vulkan spec change for the VK_KHT_graphics_pipeline_library extension now requires the VkGraphicsPipelineCreateInfo.layout field to always be valid for final-link pipelines and never NULL. Several tests were still using a NULL layout for either the fast link or optimized link. This CL updates all tests to now specify a valid layout and also removes a test variant that explicitly tested the NULL case. Affects: dEQP-VK.pipeline.* Components: Vulkan VK-GL-CTS Issue: 3661 Change-Id: I5471a9381c3be6e110106004bc3a22110b144864 --- android/cts/main/vk-master-2022-03-01/pipeline.txt | 1 - android/cts/main/vk-master/pipeline.txt | 1 - .../framework/vulkan/vkPipelineConstructionUtil.cpp | 1 + .../vulkan/dynamic_state/vktDynamicStateBaseClass.cpp | 1 + .../vulkan/dynamic_state/vktDynamicStateCBTests.cpp | 1 + .../vulkan/dynamic_state/vktDynamicStateDSTests.cpp | 3 +++ .../dynamic_state/vktDynamicStateGeneralTests.cpp | 2 ++ .../dynamic_state/vktDynamicStateInheritanceTests.cpp | 1 + .../vulkan/dynamic_state/vktDynamicStateRSTests.cpp | 1 + .../vulkan/dynamic_state/vktDynamicStateVPTests.cpp | 1 + .../vktFragmentShadingRateBasic.cpp | 2 ++ .../vulkan/pipeline/vktPipelineBindPointTests.cpp | 1 + .../pipeline/vktPipelineBlendOperationAdvancedTests.cpp | 3 +++ .../modules/vulkan/pipeline/vktPipelineBlendTests.cpp | 3 +++ .../modules/vulkan/pipeline/vktPipelineCacheTests.cpp | 1 + .../pipeline/vktPipelineColorWriteEnableTests.cpp | 2 ++ .../pipeline/vktPipelineCreationFeedbackTests.cpp | 7 +++++++ .../pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp | 1 + .../modules/vulkan/pipeline/vktPipelineDepthTests.cpp | 2 ++ .../vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp | 3 ++- .../vulkan/pipeline/vktPipelineEarlyDestroyTests.cpp | 1 + .../pipeline/vktPipelineExecutablePropertiesTests.cpp | 1 + .../pipeline/vktPipelineExtendedDynamicStateTests.cpp | 2 ++ .../pipeline/vktPipelineFramebufferAttachmentTests.cpp | 1 + .../vulkan/pipeline/vktPipelineInputAssemblyTests.cpp | 1 + .../pipeline/vktPipelineInterfaceMatchingTests.cpp | 1 + .../modules/vulkan/pipeline/vktPipelineLibraryTests.cpp | 17 ++++++++--------- .../pipeline/vktPipelineMatchedAttachmentsTests.cpp | 1 + .../vulkan/pipeline/vktPipelineMaxVaryingsTests.cpp | 1 + .../pipeline/vktPipelineMultisampleBaseResolve.cpp | 1 + ...tPipelineMultisampleBaseResolveAndPerSampleFetch.cpp | 2 ++ .../pipeline/vktPipelineMultisampleImageTests.cpp | 1 + ...ktPipelineMultisampleMixedAttachmentSamplesTests.cpp | 1 + .../vktPipelineMultisampleResolveRenderAreaTests.cpp | 1 + .../vktPipelineMultisampleSampleLocationsExtTests.cpp | 1 + .../vktPipelineMultisampleShaderBuiltInTests.cpp | 2 ++ .../vktPipelineMultisampleShaderFragmentMaskTests.cpp | 3 +++ .../vulkan/pipeline/vktPipelineMultisampleTests.cpp | 4 ++++ .../vulkan/pipeline/vktPipelineNoPositionTests.cpp | 1 + .../vulkan/pipeline/vktPipelinePushConstantTests.cpp | 3 +++ .../vulkan/pipeline/vktPipelinePushDescriptorTests.cpp | 1 + .../vulkan/pipeline/vktPipelineRenderToImageTests.cpp | 1 + .../pipeline/vktPipelineSamplerBorderSwizzleTests.cpp | 1 + .../modules/vulkan/pipeline/vktPipelineSamplerTests.cpp | 1 + .../vulkan/pipeline/vktPipelineSpecConstantTests.cpp | 1 + .../vulkan/pipeline/vktPipelineStencilExportTests.cpp | 1 + .../modules/vulkan/pipeline/vktPipelineStencilTests.cpp | 1 + .../vulkan/pipeline/vktPipelineTimestampTests.cpp | 2 ++ .../vulkan/pipeline/vktPipelineVertexInputTests.cpp | 1 + .../vulkancts/mustpass/main/vk-default/pipeline.txt | 1 - 50 files changed, 82 insertions(+), 13 deletions(-) diff --git a/android/cts/main/vk-master-2022-03-01/pipeline.txt b/android/cts/main/vk-master-2022-03-01/pipeline.txt index 494ec02..10bd417 100644 --- a/android/cts/main/vk-master-2022-03-01/pipeline.txt +++ b/android/cts/main/vk-master-2022-03-01/pipeline.txt @@ -276158,7 +276158,6 @@ dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.1_1_1_1 dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.0_1_1_1_1 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.fast_linked dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_union_handle -dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_null_handle dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.1 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.11 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.01 diff --git a/android/cts/main/vk-master/pipeline.txt b/android/cts/main/vk-master/pipeline.txt index 48f4e3f..5b6aee3 100644 --- a/android/cts/main/vk-master/pipeline.txt +++ b/android/cts/main/vk-master/pipeline.txt @@ -440847,7 +440847,6 @@ dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.1_1_1_1 dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.0_1_1_1_1 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.fast_linked dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_union_handle -dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_null_handle dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.1 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.11 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.01 diff --git a/external/vulkancts/framework/vulkan/vkPipelineConstructionUtil.cpp b/external/vulkancts/framework/vulkan/vkPipelineConstructionUtil.cpp index 75eba56..e25303b 100644 --- a/external/vulkancts/framework/vulkan/vkPipelineConstructionUtil.cpp +++ b/external/vulkancts/framework/vulkan/vkPipelineConstructionUtil.cpp @@ -757,6 +757,7 @@ void GraphicsPipelineWrapper::buildPipeline(const VkPipelineCache pipelineC linkedCreateInfo.pNext = &linkingInfo; linkedCreateInfo.flags = m_internalData->pipelineFlags; + linkedCreateInfo.layout = m_internalData->monolithicPipelineCreateInfo.layout; pointerToCreateInfo = &linkedCreateInfo; if (m_internalData->pipelineConstructionType == PIPELINE_CONSTRUCTION_TYPE_LINK_TIME_OPTIMIZED_LIBRARY) diff --git a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateBaseClass.cpp b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateBaseClass.cpp index c309014..312a645 100644 --- a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateBaseClass.cpp +++ b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateBaseClass.cpp @@ -191,6 +191,7 @@ void DynamicStateBaseClass::initPipeline (const vk::VkDevice device) static_cast(&rasterizerState)) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&depthStencilState)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateCBTests.cpp b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateCBTests.cpp index 1b2e55a..55b5020 100644 --- a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateCBTests.cpp +++ b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateCBTests.cpp @@ -88,6 +88,7 @@ public: static_cast(&rasterizerState)) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&depthStencilState)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateDSTests.cpp b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateDSTests.cpp index e312f4a..d430b63 100644 --- a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateDSTests.cpp +++ b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateDSTests.cpp @@ -259,6 +259,7 @@ protected: static_cast(&rasterizerState)) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&m_depthStencilState_1)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); m_pipeline_2.setDefaultTopology(m_topology) @@ -274,6 +275,7 @@ protected: static_cast(&rasterizerState)) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&m_depthStencilState_2)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); std::vector attachments(2); @@ -643,6 +645,7 @@ void DepthBoundsTestInstance::initPipeline (const vk::VkDevice device) static_cast(&rasterizerState)) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&depthStencilState)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateGeneralTests.cpp b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateGeneralTests.cpp index 2b5b93d..ca31b2a 100644 --- a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateGeneralTests.cpp +++ b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateGeneralTests.cpp @@ -290,6 +290,7 @@ public: static_cast(&rasterizerState)) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&depthStencilState)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); m_pipelineAdditional.setDefaultTopology(vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST) @@ -305,6 +306,7 @@ public: static_cast(&rasterizerState)) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&depthStencilState)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateInheritanceTests.cpp b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateInheritanceTests.cpp index 4bc2b1a..618933c 100644 --- a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateInheritanceTests.cpp +++ b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateInheritanceTests.cpp @@ -644,6 +644,7 @@ void InheritanceTestInstance::startRenderCmds(const TestGeometry& geometry) *m_fragModule, &pipelinestate::depthStencil) .setupFragmentOutputState(*m_renderPass, 0u, &pipelinestate::blend) + .setMonolithicPipelineLayout(*m_rectanglePipelineLayout) .buildPipeline(); } const VkPipeline graphicsPipeline = m_rectanglePipelines[staticViewportCount].getPipeline(); diff --git a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateRSTests.cpp b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateRSTests.cpp index 3685471..5257a20 100644 --- a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateRSTests.cpp +++ b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateRSTests.cpp @@ -249,6 +249,7 @@ protected: static_cast(&rasterizerState)) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&m_depthStencilState)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); diff --git a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateVPTests.cpp b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateVPTests.cpp index c480fb5..95ecacd 100644 --- a/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateVPTests.cpp +++ b/external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateVPTests.cpp @@ -264,6 +264,7 @@ public: *gs) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast(&depthStencilState)) .setupFragmentOutputState(*m_renderPass, 0u, static_cast(&colorBlendState)) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp index 954bb68..70f7349 100644 --- a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp +++ b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp @@ -1977,6 +1977,7 @@ tcu::TestStatus FSRTestInstance::iterate (void) &multisampleStateCreateInfo, &shadingRateStateCreateInfo) .setupFragmentOutputState(*renderPass, 0u, DE_NULL, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.back().getPipeline()); } @@ -2097,6 +2098,7 @@ tcu::TestStatus FSRTestInstance::iterate (void) &multisampleStateCreateInfo, &shadingRateStateCreateInfo) .setupFragmentOutputState(*renderPass, 0u, DE_NULL, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.back().getPipeline()); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBindPointTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBindPointTests.cpp index a149ca9..bca98fe 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBindPointTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBindPointTests.cpp @@ -528,6 +528,7 @@ tcu::TestStatus BindPointInstance::iterate (void) *vertShader) .setupFragmentShaderState(*graphicsPipelineLayout, *renderPass, 0u, *fragShader) .setupFragmentOutputState(*renderPass, 0u) + .setMonolithicPipelineLayout(*graphicsPipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendOperationAdvancedTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendOperationAdvancedTests.cpp index 94ef02d..3f9c7c0 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendOperationAdvancedTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendOperationAdvancedTests.cpp @@ -1131,6 +1131,7 @@ void BlendOperationAdvancedTestInstance::buildPipeline (VkBool32 srcPremultiplie .setupPreRasterizationShaderState(viewport, scissor, *m_pipelineLayout, *m_renderPass, 0u, m_shaderModules[0].get()) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, m_shaderModules[1].get(), &depthStencilStateParams, &multisampleStateParams) .setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams, &multisampleStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } @@ -1807,6 +1808,7 @@ void BlendOperationAdvancedTestCoherentInstance::buildPipeline () .setupPreRasterizationShaderState(viewport, scissor, *m_pipelineLayout, m_renderPasses[0].get(), 0u, m_shaderModules[0].get()) .setupFragmentShaderState(*m_pipelineLayout, m_renderPasses[0].get(), 0u, m_shaderModules[1].get(), &depthStencilStateParams, &multisampleStateParams) .setupFragmentOutputState(m_renderPasses[0].get(), 0u, &colorBlendStateParams[0], &multisampleStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); // Create second pipeline @@ -1818,6 +1820,7 @@ void BlendOperationAdvancedTestCoherentInstance::buildPipeline () .setupPreRasterizationShaderState(viewport, scissor, *m_pipelineLayout, m_renderPasses[1].get(), 0u, m_shaderModules[0].get()) .setupFragmentShaderState(*m_pipelineLayout, m_renderPasses[1].get(), 0u, m_shaderModules[1].get(), &depthStencilStateParams, &multisampleStateParams) .setupFragmentOutputState(m_renderPasses[1].get(), 0u, &colorBlendStateParams[1], &multisampleStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp index 3db5179..4b7d9df 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp @@ -781,6 +781,7 @@ BlendTestInstance::BlendTestInstance (Context& context, *m_vertexShaderModule) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *m_fragmentShaderModule) .setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } } @@ -1380,6 +1381,7 @@ DualSourceBlendTestInstance::DualSourceBlendTestInstance (Context& conte *m_vertexShaderModule) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *m_fragmentShaderModule) .setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } } @@ -1918,6 +1920,7 @@ tcu::TestStatus ClampTestInstance::iterate (void) *vertexShaderModule) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragmentShaderModule) .setupFragmentOutputState(*renderPass, 0u, &colorBlendStateParams) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); // Vertex buffer diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineCacheTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineCacheTests.cpp index a7eb185..fc5cd35 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineCacheTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineCacheTests.cpp @@ -757,6 +757,7 @@ void GraphicsCacheTestInstance::preparePipelineWrapper(GraphicsPipelineWrapper& *geomShaderModule) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fragShaderModule, &defaultDepthStencilState) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(cache); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineColorWriteEnableTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineColorWriteEnableTests.cpp index 16f6a68..535b7dd 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineColorWriteEnableTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineColorWriteEnableTests.cpp @@ -811,6 +811,7 @@ tcu::TestStatus ColorWriteEnableInstance::iterate (void) &depthStencilStateCreateInfo, &multisampleStateCreateInfo) .setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } @@ -832,6 +833,7 @@ tcu::TestStatus ColorWriteEnableInstance::iterate (void) &depthStencilStateCreateInfo, &multisampleStateCreateInfo) .setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); // Command buffer. diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp index 4b18556..c35b23e 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp @@ -619,6 +619,12 @@ void GraphicsCacheTestInstance::preparePipelineWrapper (GraphicsPipelineWrapper& pipelineCreationFeedbackCreateInfo[1].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks; pipelineCreationFeedbackCreateInfo[2].pipelineStageCreationFeedbackCount = 1u; pipelineCreationFeedbackCreateInfo[2].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks + geometryStages; + + if (m_param->getPipelineConstructionType() == PIPELINE_CONSTRUCTION_TYPE_LINK_TIME_OPTIMIZED_LIBRARY) + { + pipelineCreationFeedbackCreateInfo[4].pipelineStageCreationFeedbackCount = 1u + geometryStages; + pipelineCreationFeedbackCreateInfo[4].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks; + } } gpw.setDefaultTopology((tescShaderModule == DE_NULL) ? VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST : VK_PRIMITIVE_TOPOLOGY_PATCH_LIST) @@ -652,6 +658,7 @@ void GraphicsCacheTestInstance::preparePipelineWrapper (GraphicsPipelineWrapper& *m_cache, &pipelineCreationFeedbackCreateInfo[2]) .setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams, DE_NULL, *m_cache, &pipelineCreationFeedbackCreateInfo[3]) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(*m_cache, basePipelineHandle, basePipelineHandle != DE_NULL ? -1 : 0, &pipelineCreationFeedbackCreateInfo[4]); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp index 23072c1..0be45cc 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp @@ -660,6 +660,7 @@ void DepthRangeUnrestrictedTestInstance::preparePipelineWrapper (GraphicsPipelin &rasterStateParams) .setupFragmentShaderState(*m_pipelineLayout, renderpass, 0u, *m_fragModule, &depthStencilStateParams) .setupFragmentOutputState(renderpass, 0u, &colorBlendStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthTests.cpp index b480a31..75386b1 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthTests.cpp @@ -687,6 +687,7 @@ DepthTestInstance::DepthTestInstance (Context& context, *m_fragmentShaderModule, &depthStencilStateParams) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); if (useAltGraphicsPipelines) @@ -709,6 +710,7 @@ DepthTestInstance::DepthTestInstance (Context& context, *m_fragmentShaderModule, &depthStencilStateParams) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp index c4dd7f0..a4239d7 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp @@ -602,7 +602,8 @@ void DynamicOffsetGraphicsTestInstance::init (void) const vector scissors { makeRect2D(m_renderSize) }; m_graphicsPipelines.emplace_back(vk, vkDevice, m_params.pipelineConstructionType); - m_graphicsPipelines.back().setDefaultRasterizationState() + m_graphicsPipelines.back().setMonolithicPipelineLayout(*m_pipelineLayout) + .setDefaultRasterizationState() .setDefaultDepthStencilState() .setDefaultColorBlendState() .setDefaultMultisampleState() diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineEarlyDestroyTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineEarlyDestroyTests.cpp index 0d085d2..a5ecb97 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineEarlyDestroyTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineEarlyDestroyTests.cpp @@ -195,6 +195,7 @@ tcu::TestStatus testEarlyDestroy (Context& context, const TestParams& params, bo &rasterizationStateCreateInfo) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragmentShaderModule) .setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(params.usePipelineCache ? *pipelineCache : DE_NULL); const deUint32 framebufferWidth = 32; diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineExecutablePropertiesTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExecutablePropertiesTests.cpp index 5b27bc1..1d35510 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineExecutablePropertiesTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExecutablePropertiesTests.cpp @@ -1093,6 +1093,7 @@ void GraphicsExecutablePropertiesTestInstance::preparePipelineWrapper(GraphicsPi geomShaderModule) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, fragShaderModule, &depthStencilStateParams) .setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(*m_cache); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp index 26446e3..9886775 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp @@ -2211,6 +2211,7 @@ tcu::TestStatus ExtendedDynamicStateInstance::iterate (void) *geomModule) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragModule, &depthStencilStateCreateInfo, &multisampleStateCreateInfo) .setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } @@ -2263,6 +2264,7 @@ tcu::TestStatus ExtendedDynamicStateInstance::iterate (void) *geomModule) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragModule, &depthStencilStateCreateInfo, &multisampleStateCreateInfo) .setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineFramebufferAttachmentTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineFramebufferAttachmentTests.cpp index 8a81e62..e2c361c 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineFramebufferAttachmentTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineFramebufferAttachmentTests.cpp @@ -255,6 +255,7 @@ void preparePipelineWrapper(GraphicsPipelineWrapper& gpw, vertexModule) .setupFragmentShaderState(pipelineLayout, renderPass, subpass, fragmentModule, DE_NULL, &pipelineMultisampleStateInfo) .setupFragmentOutputState(renderPass, subpass, &pipelineColorBlendStateInfo, &pipelineMultisampleStateInfo) + .setMonolithicPipelineLayout(pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineInputAssemblyTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineInputAssemblyTests.cpp index d8c8f89..43ba94e 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineInputAssemblyTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineInputAssemblyTests.cpp @@ -1371,6 +1371,7 @@ InputAssemblyInstance::InputAssemblyInstance (Context& context, *m_fragmentShaderModule, &depthStencilStateParams) .setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineInterfaceMatchingTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineInterfaceMatchingTests.cpp index 630f338..80b0ea2 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineInterfaceMatchingTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineInterfaceMatchingTests.cpp @@ -322,6 +322,7 @@ tcu::TestStatus InterfaceMatchingTestInstance::iterate(void) *m_geomShaderModule) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *m_fragShaderModule) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); // create vertex buffer diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineLibraryTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineLibraryTests.cpp index 584fc47..c108b6d 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineLibraryTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineLibraryTests.cpp @@ -881,7 +881,10 @@ bool PipelineLibraryTestInstance::runTest (RuntimePipelineTreeConfiguration& run appendStructurePtrToVulkanChain(&graphicsPipelineCreateInfo.pNext, &graphicsPipelineLibraryCreateInfo); if (linkingInfo.libraryCount != 0) + { appendStructurePtrToVulkanChain(&graphicsPipelineCreateInfo.pNext, &linkingInfo); + graphicsPipelineCreateInfo.layout = *pipelineLayoutSame; + } node.pipeline = createGraphicsPipeline(vk, device, DE_NULL, &graphicsPipelineCreateInfo); @@ -1209,7 +1212,6 @@ enum class MiscTestMode { INDEPENDENT_PIPELINE_LAYOUT_SETS_FAST_LINKED = 0, INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_UNION_HANDLE, - INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_NULL_HANDLE, BIND_NULL_DESCRIPTOR_SET, COMPARE_LINK_TIMES }; @@ -1234,7 +1236,7 @@ public: protected: tcu::TestStatus runNullDescriptorSet (void); - tcu::TestStatus runIndependentPipelineLayoutSets (bool useLinkTimeOptimization = false, bool useNullLayout = false); + tcu::TestStatus runIndependentPipelineLayoutSets (bool useLinkTimeOptimization = false); tcu::TestStatus runCompareLinkTimes (void); struct VerificationData @@ -1299,8 +1301,6 @@ tcu::TestStatus PipelineLibraryMiscTestInstance::iterate (void) return runIndependentPipelineLayoutSets(); else if (m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_UNION_HANDLE) return runIndependentPipelineLayoutSets(true); - else if (m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_NULL_HANDLE) - return runIndependentPipelineLayoutSets(true, true); else if (m_testParams.mode == MiscTestMode::COMPARE_LINK_TIMES) return runCompareLinkTimes(); @@ -1529,7 +1529,7 @@ tcu::TestStatus PipelineLibraryMiscTestInstance::runNullDescriptorSet(void) return verifyResult(verificationData, colorPixelAccess); } -tcu::TestStatus PipelineLibraryMiscTestInstance::runIndependentPipelineLayoutSets (bool useLinkTimeOptimization, bool useNullLayout) +tcu::TestStatus PipelineLibraryMiscTestInstance::runIndependentPipelineLayoutSets (bool useLinkTimeOptimization) { const DeviceInterface& vk = m_context.getDeviceInterface(); const VkDevice device = m_context.getDevice(); @@ -1573,7 +1573,7 @@ tcu::TestStatus PipelineLibraryMiscTestInstance::runIndependentPipelineLayoutSet // for the link time opt (and when null handle is used) use total pipeline layout recreated without the INDEPENDENT SETS bit deUint32 allLayoutsFlag = deUint32(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT); - if (useLinkTimeOptimization && !useNullLayout) + if (useLinkTimeOptimization) allLayoutsFlag = 0u; // Pre-rasterization stage library has sets 0, 1, 2 @@ -1659,7 +1659,7 @@ tcu::TestStatus PipelineLibraryMiscTestInstance::runIndependentPipelineLayoutSet VkGraphicsPipelineCreateInfo finalPipelineInfo = initVulkanStructure(); finalPipelineInfo.flags = finalPipelineFlag; - finalPipelineInfo.layout = useNullLayout ? DE_NULL : *allLayouts; + finalPipelineInfo.layout = *allLayouts; appendStructurePtrToVulkanChain(&finalPipelineInfo.pNext, &linkingInfo); Move pipeline = createGraphicsPipeline(vk, device, DE_NULL, &finalPipelineInfo); @@ -1795,6 +1795,7 @@ tcu::TestStatus PipelineLibraryMiscTestInstance::runCompareLinkTimes (void) VkPipelineLibraryCreateInfoKHR linkingInfo = makePipelineLibraryCreateInfo(pipelinesToLink); VkGraphicsPipelineCreateInfo finalPipelineInfo = initVulkanStructure(); + finalPipelineInfo.layout = layout; appendStructurePtrToVulkanChain(&finalPipelineInfo.pNext, &linkingInfo); @@ -1958,7 +1959,6 @@ void PipelineLibraryMiscTestCase::initPrograms(SourceCollections& programCollect "}\n"); } else if ((m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_FAST_LINKED) || - (m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_NULL_HANDLE) || (m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_UNION_HANDLE)) { programCollection.glslSources.add("vert") << glu::VertexSource( @@ -2182,7 +2182,6 @@ tcu::TestCaseGroup* createPipelineLibraryTests(tcu::TestContext& testCtx) de::MovePtr independentLayoutSetsTests(new tcu::TestCaseGroup(testCtx, "independent_pipeline_layout_sets", "")); independentLayoutSetsTests->addChild(new PipelineLibraryMiscTestCase(testCtx, "fast_linked", { MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_FAST_LINKED, 0u, 0u })); independentLayoutSetsTests->addChild(new PipelineLibraryMiscTestCase(testCtx, "link_opt_union_handle", { MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_UNION_HANDLE, 0u, 0u })); - independentLayoutSetsTests->addChild(new PipelineLibraryMiscTestCase(testCtx, "link_opt_null_handle", { MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_NULL_HANDLE, 0u, 0u })); miscTests->addChild(independentLayoutSetsTests.release()); de::MovePtr bindNullDescriptorCombinationsTests(new tcu::TestCaseGroup(testCtx, "bind_null_descriptor_set", "")); diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMatchedAttachmentsTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMatchedAttachmentsTests.cpp index 06dc375..771f3e4 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMatchedAttachmentsTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMatchedAttachmentsTests.cpp @@ -233,6 +233,7 @@ tcu::TestStatus testMatchedAttachments (Context& context, const MatchedAttachmen *vertexShaderModule) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragmentShaderModule) .setupFragmentOutputState(*renderPass, 0u) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(params.usePipelineCache ? *pipelineCache : DE_NULL); // Passes as long as createGraphicsPipeline didn't crash. diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMaxVaryingsTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMaxVaryingsTests.cpp index 8e36974..d8f156a 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMaxVaryingsTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMaxVaryingsTests.cpp @@ -1067,6 +1067,7 @@ tcu::TestStatus test(Context& context, const MaxVaryingsParam param) &pSpecInfo) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragShaderModule) .setupFragmentOutputState(*renderPass) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); // Draw commands diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp index 91870a0..72c5850 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp @@ -292,6 +292,7 @@ tcu::TestStatus MSInstanceBaseResolve::iterate (void) *vsModule) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fsModule, DE_NULL, &multisampleStateInfo) .setupFragmentOutputState(*renderPass, 0, DE_NULL, &multisampleStateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); // Create command buffer for compute and transfer oparations diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp index 768f25d..ace5a30 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp @@ -436,6 +436,7 @@ tcu::TestStatus MSInstanceBaseResolveAndPerSampleFetch::iterate (void) .setupPreRasterizationShaderState(viewports, scissors, *pipelineLayoutMSPass, *renderPass, 0u, *vsMSPassModule) .setupFragmentShaderState(*pipelineLayoutMSPass, *renderPass, 0u, *fsMSPassModule, DE_NULL, &multisampleStateInfo) .setupFragmentOutputState(*renderPass, 0u, DE_NULL, &multisampleStateInfo) + .setMonolithicPipelineLayout(*pipelineLayoutMSPass) .buildPipeline(); std::vector graphicsPipelinesPerSampleFetch; @@ -486,6 +487,7 @@ tcu::TestStatus MSInstanceBaseResolveAndPerSampleFetch::iterate (void) .setupPreRasterizationShaderState(viewports, scissors, *pipelineLayoutPerSampleFetchPass, *renderPass, subpass, *vsPerSampleFetchPassModule) .setupFragmentShaderState(*pipelineLayoutPerSampleFetchPass, *renderPass, subpass, *fsPerSampleFetchPassModule) .setupFragmentOutputState(*renderPass, subpass) + .setMonolithicPipelineLayout(*pipelineLayoutPerSampleFetchPass) .buildPipeline(); } } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleImageTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleImageTests.cpp index fb224dd..e21e9cd 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleImageTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleImageTests.cpp @@ -410,6 +410,7 @@ void preparePipelineWrapper (GraphicsPipelineWrapper& gpw, vertexModule) .setupFragmentShaderState(pipelineLayout, renderPass, subpassNdx, fragmentModule, DE_NULL, &pipelineMultisampleStateInfo) .setupFragmentOutputState(renderPass, subpassNdx, &pipelineColorBlendStateInfo, &pipelineMultisampleStateInfo) + .setMonolithicPipelineLayout(pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleMixedAttachmentSamplesTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleMixedAttachmentSamplesTests.cpp index c75bbae..57cf5c4 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleMixedAttachmentSamplesTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleMixedAttachmentSamplesTests.cpp @@ -313,6 +313,7 @@ void preparePipelineWrapper(GraphicsPipelineWrapper& gpw, &pipelineMultisampleStateInfo, (useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL)) .setupFragmentOutputState(renderPass, subpassNdx, &pipelineColorBlendStateInfo, &pipelineMultisampleStateInfo) + .setMonolithicPipelineLayout(pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleResolveRenderAreaTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleResolveRenderAreaTests.cpp index d4dc9ea..db5e90d 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleResolveRenderAreaTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleResolveRenderAreaTests.cpp @@ -238,6 +238,7 @@ void MultisampleRenderAreaTestInstance::preparePipelineWrapper (GraphicsPipeline DE_NULL, &multisampleStateCreateInfo) .setupFragmentOutputState(renderPass, 0u, DE_NULL, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleSampleLocationsExtTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleSampleLocationsExtTests.cpp index cd83b79..daacb21 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleSampleLocationsExtTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleSampleLocationsExtTests.cpp @@ -706,6 +706,7 @@ void preparePipelineWrapper (GraphicsPipelineWrapper& gpw, &pipelineMultisampleStateInfo, (useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL)) .setupFragmentOutputState(renderPass, subpassIndex, &colorBlendStateCreateInfoDefault, &pipelineMultisampleStateInfo) + .setMonolithicPipelineLayout(pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp index 0922520..7452233 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp @@ -1988,6 +1988,7 @@ tcu::TestStatus WriteSampleMaskTestInstance::iterate (void) .setupPreRasterizationShaderState(viewport, scissor, *emptyPipelineLayout, *renderPass, 0u, *vertModule) .setupFragmentShaderState(*emptyPipelineLayout, *renderPass, 0u, *writeModule, &depthStencilInfo, &multisampleInfo) .setupFragmentOutputState(*renderPass, 0u, &colorBlendInfo, &multisampleInfo) + .setMonolithicPipelineLayout(*emptyPipelineLayout) .buildPipeline(); // Pipeline for the second subpass. @@ -1998,6 +1999,7 @@ tcu::TestStatus WriteSampleMaskTestInstance::iterate (void) .setupPreRasterizationShaderState(viewport, scissor, *checkPipelineLayout, *renderPass, 1u, *vertModule) .setupFragmentShaderState(*checkPipelineLayout, *renderPass, 1u, *checkModule, &depthStencilInfo, &multisampleInfo) .setupFragmentOutputState(*renderPass, 1u, &colorBlendInfo, &multisampleInfo) + .setMonolithicPipelineLayout(*checkPipelineLayout) .buildPipeline(); // Command pool and command buffer. diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderFragmentMaskTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderFragmentMaskTests.cpp index 3d37c5e..d698b21 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderFragmentMaskTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderFragmentMaskTests.cpp @@ -714,6 +714,7 @@ void drawAndSampleInputAttachment (Context& context, const TestParams& params, W *vertexModuleDraw) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragmentModuleDraw, DE_NULL, &multisampleStateInfo) .setupFragmentOutputState(*renderPass, 0u, &colorBlendStateInfo, &multisampleStateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } @@ -742,6 +743,7 @@ void drawAndSampleInputAttachment (Context& context, const TestParams& params, W *vertexModuleSample) .setupFragmentShaderState(*pipelineLayout, *renderPass, 1u, *fragmentModuleSample, DE_NULL, &multisampleStateInfo) .setupFragmentOutputState(*renderPass, 1u, &colorBlendStateInfo, &multisampleStateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } @@ -977,6 +979,7 @@ void draw (Context& context, const TestParams& params, WorkingData& wd) *vertexModuleDraw) .setupFragmentShaderState(*pipelineLayout, *renderPass, layerNdx, *fragmentModuleDraw, DE_NULL, &multisampleStateInfo) .setupFragmentOutputState(*renderPass, layerNdx, &colorBlendStateInfo, &multisampleStateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp index 18e427c..1cf4418 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp @@ -4148,6 +4148,7 @@ void MultisampleRenderer::initialize (Context& context, &m_multisampleStateParams, m_useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL) .setupFragmentOutputState(*m_renderPass, subpassIdx, &colorBlendStateParams, &m_multisampleStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } } @@ -4205,6 +4206,7 @@ void MultisampleRenderer::initialize (Context& context, subpassIdx, *m_copySampleFragmentShaderModule) .setupFragmentOutputState(*m_renderPass, subpassIdx, &colorBlendStateParams) + .setMonolithicPipelineLayout(*m_copySamplePipelineLayout) .buildPipeline(); } } @@ -4921,6 +4923,7 @@ tcu::TestStatus VariableRateTestInstance::iterate (void) *vertModule) .setupFragmentShaderState(*pipelineLayout, *renderPassSingleSubpass, 0u, *fragModule) .setupFragmentOutputState(*renderPassSingleSubpass, 0u, DE_NULL, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } @@ -4946,6 +4949,7 @@ tcu::TestStatus VariableRateTestInstance::iterate (void) *vertModule) .setupFragmentShaderState(*pipelineLayout, *renderPassMultiplePasses, subpass, *fragModule) .setupFragmentOutputState(*renderPassMultiplePasses, subpass, DE_NULL, &multisampleStateCreateInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineNoPositionTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineNoPositionTests.cpp index 6f62fb9..24eea12 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineNoPositionTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineNoPositionTests.cpp @@ -570,6 +570,7 @@ tcu::TestStatus NoPositionInstance::iterate (void) *geom) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *frag) .setupFragmentOutputState(*renderPass) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); // Descriptor set and output SSBO if needed. diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelinePushConstantTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelinePushConstantTests.cpp index f51116b..31d2d60 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelinePushConstantTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelinePushConstantTests.cpp @@ -2370,6 +2370,7 @@ void PushConstantLifetimeTestInstance::init (void) *m_vertexShaderModule) .setupFragmentShaderState(*(m_pipelineLayout[0]), *m_renderPass, 0u, *m_fragmentShaderModule) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*(m_pipelineLayout[0])) .buildPipeline(); m_graphicsPipeline[1].setDefaultRasterizationState() @@ -2386,6 +2387,7 @@ void PushConstantLifetimeTestInstance::init (void) *m_vertexShaderModule) .setupFragmentShaderState(*(m_pipelineLayout[1]), *m_renderPass, 0u, *m_fragmentShaderModule) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*(m_pipelineLayout[1])) .buildPipeline(); } @@ -2926,6 +2928,7 @@ tcu::TestStatus OverwriteTestInstance::iterate (void) *vertModule) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragModule) .setupFragmentOutputState(*renderPass) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelinePushDescriptorTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelinePushDescriptorTests.cpp index b5baf65..5dd6fe7 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelinePushDescriptorTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelinePushDescriptorTests.cpp @@ -491,6 +491,7 @@ void PushDescriptorBufferGraphicsTestInstance::init (void) *m_vertexShaderModule) .setupFragmentShaderState(*m_fragmentStatePipelineLayout, *m_renderPass, 0u, *m_fragmentShaderModule) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*m_preRasterizationStatePipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineRenderToImageTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineRenderToImageTests.cpp index 5c065b2..e2cdc57 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineRenderToImageTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineRenderToImageTests.cpp @@ -340,6 +340,7 @@ void preparePipelineWrapper(GraphicsPipelineWrapper& gpw, vertexModule) .setupFragmentShaderState(pipelineLayout, renderPass, subpass, fragmentModule, &pipelineDepthStencilStateInfo) .setupFragmentOutputState(renderPass, subpass, &pipelineColorBlendStateInfo) + .setMonolithicPipelineLayout(pipelineLayout) .buildPipeline(DE_NULL, basePipeline, -1); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerBorderSwizzleTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerBorderSwizzleTests.cpp index e0011a8..abe1f09 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerBorderSwizzleTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerBorderSwizzleTests.cpp @@ -925,6 +925,7 @@ tcu::TestStatus BorderSwizzleInstance::iterate (void) DE_NULL, &specializationInfo) .setupFragmentOutputState(*renderPass, 0u, &colorBlendInfo) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); // Framebuffer. diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp index d781947..005a0ec 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp @@ -1709,6 +1709,7 @@ tcu::TestStatus ExactSamplingInstance::iterate (void) *vertexModule) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragModule) .setupFragmentOutputState(*renderPass) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); // Command pool and command buffer. diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp index d7ca7a2..4e015cc 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp @@ -725,6 +725,7 @@ tcu::TestStatus GraphicsTestInstance::iterate (void) pSpecInfo) .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragShaderModule, DE_NULL, DE_NULL, DE_NULL, pSpecInfo) .setupFragmentOutputState(*renderPass) + .setMonolithicPipelineLayout(*pipelineLayout) .buildPipeline(); // Draw commands diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilExportTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilExportTests.cpp index 647554a..0491c8c 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilExportTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilExportTests.cpp @@ -342,6 +342,7 @@ void preparePipelineWrapper(GraphicsPipelineWrapper& gpw, vertexModule) .setupFragmentShaderState(pipelineLayout, renderPass, subpass, fragmentModule, &pipelineDepthStencilStateInfo) .setupFragmentOutputState(renderPass, subpass, &pipelineColorBlendStateInfo) + .setMonolithicPipelineLayout(pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilTests.cpp index 0e7ddbe..c2f6cf7 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilTests.cpp @@ -622,6 +622,7 @@ StencilTestInstance::StencilTestInstance (Context& context, &rasterizationStateParams) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *m_fragmentShaderModule, &depthStencilStateParams) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp index 9177edb..41a9749 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp @@ -1685,6 +1685,7 @@ void BasicGraphicsTestInstance::buildPipeline(void) *vertexShaderModule) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fragmentShaderModule, &defaultDepthStencilStateParams) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } @@ -1966,6 +1967,7 @@ void AdvGraphicsTestInstance::buildPipeline(void) *geomShaderModule) .setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fragShaderModule, &defaultDepthStencilStateParams) .setupFragmentOutputState(*m_renderPass) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexInputTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexInputTests.cpp index 1be7672..dca9abd 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexInputTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexInputTests.cpp @@ -1164,6 +1164,7 @@ VertexInputInstance::VertexInputInstance (Context& context, 0u, *m_fragmentShaderModule) .setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams) + .setMonolithicPipelineLayout(*m_pipelineLayout) .buildPipeline(); } diff --git a/external/vulkancts/mustpass/main/vk-default/pipeline.txt b/external/vulkancts/mustpass/main/vk-default/pipeline.txt index fa13595..dace40f 100644 --- a/external/vulkancts/mustpass/main/vk-default/pipeline.txt +++ b/external/vulkancts/mustpass/main/vk-default/pipeline.txt @@ -440929,7 +440929,6 @@ dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.1_1_1_1 dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.0_1_1_1_1 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.fast_linked dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_union_handle -dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_null_handle dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.1 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.11 dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.01 -- 2.7.4